プロジェクトを1.1.0にアップグレードした後、私のazure ADオープンID認証に対して認証エラーが発生しました。netcoreアップグレード1.0.0から1.1.0へのアップグレード後にAzure認証が失敗する
フィドラーのようにエラーを示している。
WWW認証:ベアラエラー= "INVALID_REQUEST"、error_codes = "[90010]"、ましたerror_description = "AADSTS90010:JWTトークンのUserInfoエンドポイントで使用することはできません%。 0D%で0aTrace。
これは、400エラーにBadRequestを相関し、ユーザーがログインすることはできません。
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
ClientId = Configuration["Authentication:AzureAd:ClientId"],
Authority = Configuration["Authentication:AzureAd:AADInstance"] + Configuration["Authentication:AzureAd:TenantId"],
ClientSecret = Configuration["Authentication:AzureAd:ClientSecret"],
CallbackPath = Configuration["Authentication:AzureAd:CallbackPath"],
ResponseType = OpenIdConnectResponseType.CodeIdToken,
GetClaimsFromUserInfoEndpoint = true,
Events = new OpenIdConnectEvents
{
OnAuthenticationFailed = OnAuthenticationFailed,
OnAuthorizationCodeReceived = OnAuthorizationCodeReceived,
OnMessageReceived = OnMessageReceived,
OnTicketReceived = OnTicketRecieved,
OnTokenValidated = OnTokenValidated,
OnUserInformationReceived = OnUserInformationReceived,
OnTokenResponseReceived = OnTokenResponseRecieved,
OnRemoteFailure = OnRemoteFailure
}
private async Task OnAuthorizationCodeReceived(AuthorizationCodeReceivedContext context)
{
var aadInstance = "https://login.microsoftonline.com/";
var graphResourceId = "https://graph.windows.net";
string userObjectId = (context.Ticket.Principal.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier"))?.Value;
ClientCredential clientCred = new ClientCredential(clientId, clientSecret);
AuthenticationContext authContext = new AuthenticationContext(aadInstance + tenant);
AuthenticationResult authResult = await authContext.AcquireTokenByAuthorizationCodeAsync(
context.ProtocolMessage.Code, new Uri(context.Properties.Items[OpenIdConnectDefaults.RedirectUriForCodePropertiesKey]), clientCred, graphResourceId);
context.HandleCodeRedemption(authResult.AccessToken, authResult.IdToken);
}
は私がCodeIdTokenを使用してしようとしているので、私は今、異なるユーザークレームを処理する必要がありますかGetClaimsFromuserInfoEndpointオプションを使用しますか?
編集:あなたは、他のカスタムコードを、私はGetClaimsFromUserInfoEndpointをコメントアウトした場合、これは罰金