#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