Проблема с MSAL 4.16.0 при использовании встроенной проверки подлинности Windows

#c# #azure #azure-active-directory #msal #kerberos-delegation

#c# #azure #azure-active-directory #azure-ad-msal #kerberos-делегирование

Вопрос:

Я пишу консольное приложение dotnet core, которое использует библиотеку MSAL для генерации токена доступа. Я использую встроенную проверку подлинности Windows, поскольку все ограничения, упомянутые в этой ссылке, выполняются организацией, в которой я нахожусь. Кажется, это нормально работает с версией библиотеки MSAL 4.15.0. Но как только я начинаю использовать версию MSAL 4.16.0, я в конечном итоге получаю следующее исключение.

 Inner Excception: MSAL.NetCore.4.16.0.0.MsalServiceException:
        ErrorCode: federated_service_returned_error
Microsoft.Identity.Client.MsalServiceException: Federated service at <URL> returned error:
   at Microsoft.Identity.Client.WsTrust.WsTrustWebRequestManager.GetWsTrustResponseAsync(WsTrustEndpoint wsTrustEndpoint, String wsTrustRequest, RequestContext requestContext)
   at Microsoft.Identity.Client.WsTrust.CommonNonInteractiveHandler.GetWsTrustResponseAsync(UserAuthType userAuthType, String cloudAudienceUrn, WsTrustEndpoint endpoint, String username, SecureString securePassword)
        StatusCode: 401
        ResponseBody:
        Headers: Date: Mon, 10 Aug 2020 20:24:54 GMT
Cache-Control: no-cache, no-store
Pragma: no-cache
WWW-Authenticate: Negotiate
Set-Cookie: PF=QSEPNWjNTF0s1lakkLKluT;Path=/;Secure;HttpOnly;SameSite=None
Transfer-Encoding: chunked
<---
  

Вот простой код, который я написал:

             app = PublicClientApplicationBuilder.Create(clientId).WithTenantId(tenant).WithAuthority(authority).Build();
            try
            {
                Task<AuthenticationResult> result = app.AcquireTokenByIntegratedWindowsAuth(scopes).WithUsername(username).ExecuteAsync();
                Console.Write(result.Result.AccessToken);
                Console.ReadLine();
            }
  

Просто для дальнейшего уточнения, это работает нормально до MSAL 4.15.0. Сбой начинается с версии MSAL 4.16.0 и выше.

Есть идеи, почему?

Ответ №1:

Для людей, которые сталкиваются с этой проблемой, это известная ошибка, и она расследуется. Проверьте это на Github