Die Herausforderung: Wie können wir den API-Zugriff von mehreren externen Diensten mithilfe verschiedener JWT-Token-Aussteller in ASP.NET Core 2 ermöglichen? Insbesondere müssen wir die Authentifizierung sowohl von Firebase als auch von einem benutzerdefinierten JWT-Anbieter unterstützen.
Die Lösung: Die Flexibilität von ASP.NET Core ermöglicht die Konfiguration mehrerer Authentifizierungsschemata und ermöglicht so die Authentifizierung aus verschiedenen JWT-Quellen. So geht's:
Der häufigste Fehler besteht darin, AddAuthentication
ohne Parameter aufzurufen. Für mehrere Authentifizierungsschemata müssen Sie die Überladung verwenden, die einen Zeichenfolgenparameter akzeptiert, der den Schemanamen darstellt.
Mehrmals AddJwtBearer
verwenden, einmal für jedes Authentifizierungsschema (z. B. „Firebase“ und „Benutzerdefiniert“). Geben Sie in jedem Aufruf die Authority
und TokenValidationParameters
an, die für jeden JWT-Aussteller spezifisch sind.
Die Standardauthentifizierungsrichtlinie muss aktualisiert werden, um die verschiedenen Schemata zu berücksichtigen. Verwenden Sie AddAuthorization
, um Richtlinien zu konfigurieren, einschließlich DefaultPolicy
. Stellen Sie sicher, dass sowohl das „Firebase“- als auch das „Benutzerdefiniert“-Schema im DefaultPolicy
.
Dieses Beispiel zeigt die richtige Konfiguration:
<code class="language-csharp">services .AddAuthentication() .AddJwtBearer("Firebase", options => { // Configure Firebase JWT authentication settings here }) .AddJwtBearer("Custom", options => { // Configure Custom JWT authentication settings here }); services .AddAuthorization(options => { options.DefaultPolicy = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .AddAuthenticationSchemes("Firebase", "Custom") .Build(); });</code>
Für komplizierte Autorisierungsanforderungen nutzen Sie die richtlinienbasierte Autorisierung. Auf diese Weise können Sie Richtlinien erstellen, die Authentifizierungsschemata und Anspruchsanforderungen festlegen.
Neuere .NET Core-Versionen erfordern die Angabe eines Standardauthentifizierungsschemas in AddAuthentication
.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere JWT-Bearer-Authentifizierungsschemata in ASP.NET Core 2 implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!