Wenn ClaimsIdentity durch JwtBearerAuthentication Middleware gesetzt leider nicht genug Rollen, um durchJwtBearerAuthentication tut 403 Forbidden zurückkehren, kehrt immer 401 Unauthorized
[Authorize(Roles="whateverrole")]
es 401 gibt statt 403.
ich mit diesem in asp habe Schwierigkeiten .net Core Web API die ganze Nacht. Ich habe auch diese Frage auf stackoverflow gesehen, aber ich habe keine Lösung gesehen, die ich Arbeit machen könnte. Die Reihenfolge der Registrierung von Middleware und der Einstellung von AutomaticChallange hat die Aufgabe erfüllt.
Ich weiß nicht, ob ich etwas vermisse, aber es scheint schockierend, dass dies seit Jahren nicht richtig gelöst wurde. Es ist so nervig.
Gibt es eine normale, normale, non-workaround, non-hack Möglichkeit, dies zu lösen?
UPDATE (in Antwort von @juunas Kommentar)
habe ich versucht, dass Rollen und richtig aus Ansprüchen kartiert. Wenn ich also die Rollenanforderung aus dem Attribut lösche, gibt User.IsInRole (x) für alle Rollen, denen dieser Benutzer zugewiesen ist (im JWT-Token), true zurück. Das Mapping funktioniert also gut.
Über das Verschieben von rollenbasierter Autorisierung zu Richtlinien ... können Sie einige Links zu Best Practices, Empfehlungen oder etwas, auf dem Sie diese Aussage aufbauen, bereitstellen? Ich sage nicht, dass es nicht etwas zu tun ist, aber ich möchte es einfach verstehen.
Haben Sie versucht, die Rollenanforderung zu entfernen und zu sehen, ob 'User.IsInRole (" whateverrole ")' true zurückgibt? In ASP.NET Core sollten Sie versuchen, sich von der rollenbasierten Autorisierung zu entfernen, da Sie in der Middleware definieren müssen, welchen Anspruch sie als Rollen berücksichtigen soll. Es ist einfacher, eine Richtlinie zu erstellen, die das Vorhandensein dieses Anspruchs erfordert, und den Richtliniennamen für AuthorizeAttribute anzugeben. – juunas
Danke für Ihren Kommentar. Ich habe darauf in Frage UPDATE geantwortet. –
Nun, die offizielle ASP.NET Core-Dokumentation ist ziemlich gut für das Verständnis, wie die Autorisierung erfolgen kann: https://docs.microsoft.com/en-us/aspnet/core/security/authorization/claims – juunas