Ich versuche, eine Anwendung mit einer SPA-Benutzeroberfläche und einer Web-API zu erstellen, die JWT-Bearer-Tokens für die Zugriffssteuerung verwendet. Ich kann den Benutzer authentifizieren und das Bearer-Token an die Webanforderung senden, aber wenn ich dies tue, erhalte ich den folgenden Fehler:Azure AD JWT Bearer Token
Bearer wurde nicht authentifiziert. Fehlermeldung: IDX10500: Signatur Validierung fehlgeschlagen. Zur Validierung der Signatur wurden keine Sicherheitsschlüssel bereitgestellt.
Ich mag an die Middleware den Schlüsselsatz bei
https://login.microsoftonline.com/common/discovery/keys
gefunden zu verwenden, aber ich fehle eindeutig etwas. Unten ist der Codeschnipsel in meinem Start, um das Bearer-Token zu konfigurieren. Kann jemand darauf hinweisen, wo ich falsch liege?
var clientId = Configuration["AzureAd:ClientId"];
var tenantId = Configuration["AzureAd:TenantId"];
var issuer = $"https://sts.windows.net/{tenantId}/";
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
options.RequireHttpsMetadata = false;
options.SaveToken = true;
options.Authority = "https://login.microsoftonline.com/common/";
options.TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = true,
ValidIssuer = issuer,
ValidateAudience = true,
ValidAudiences = new string[] { clientId },
ValidateLifetime = true
};
});
Haben genau das gleiche Problem. –
Blick auf den gleichen Fehler, ich. –