Получение ошибки при запросе разрешений на граф через Microsoft.Identity.Web - PullRequest
0 голосов
/ 06 марта 2020

Я получаю следующий стек ошибок в моем приложении, основанный на WebApp-graph-user sample . Я просто пытаюсь войти в систему и получить токен для User.ReadBasi c. Все графические разрешения. Я проверил все параметры, входящие в AcquireTokenByAuthorizationCode, и все это выглядело хорошо (без нулевых значений). Приложение - это MVC веб-приложение, использующее. net core 3.1.

stack:

NullReferenceException: Ссылка на объект не установлена ​​для экземпляра объекта. Microsoft.Identity.Client.Internal.ClientCredentialWrapper.get_Thumbprint () учетные данные, bool sendCertificate). Microsoft.Identity.Client.Internal.JsonWebToken.Encode (учетные данные ClientCredentialWrapper, bool sendCertificate). .ClientCredentialHelper.CreateClientCredentialBodyParameters (ICoreLogger регистратор, ICryptographyManager cryptographyManager, ClientCredentialWrapper clientCredential, строка ClientID, AuthorityEndpoints конечные точки, BOOL sendX5 C) Microsoft.Identity.Client.OAuth2.TokenClient.SendTokenRequestAsyn c (IDictionary additionalBodyParameters, строка scopeOverride, строка tokenEndpointOverride, CancellationToken cancellationToken) Microsoft. .Identity.Client.Internal.Requests.RequestBase.RunAsyn c (CancellationToken cancellationToken) Microsoft.Identity.Client.ApiConfig. .TokenAcquisition. d.MoveNext () в WebAppServiceCollectionExtensions.cs + await tokenAcquisition.AddAccountToCacheFromAuthorizationCodeAsyn c (context, options.Scope) .ConfigureAwait (false); Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler.RunAuthorizationCodeReceivedEventAsyn c (OpenIdConnectMessage authorizationResponse, ClaimsPrincipal пользователь, AuthenticationProperties свойства, JwtSecurityToken JWT) Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler.HandleRemoteAuthenticateAsyn c ()

код : Из TokenAcquisition.cs - строка 127

                // Do not share the access token with ASP.NET Core otherwise ASP.NET will cache it and will not send the OAuth 2.0 request in
                // case a further call to AcquireTokenByAuthorizationCodeAsync in the future is required for incremental consent (getting a code requesting more scopes)
                // Share the ID Token though
                var result = await application
                    .AcquireTokenByAuthorizationCode(scopes.Except(_scopesRequestedByMsal), context.ProtocolMessage.Code)
                    .ExecuteAsync()
                    .ConfigureAwait(false);
                context.HandleCodeRedemption(null, result.IdToken);

1 Ответ

0 голосов
/ 07 марта 2020

Решено: Это оказалось нулевым секретным значением клиента из-за неправильной конфигурации, как обсуждалось здесь: https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/1476

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...