Microsoft утверждает, что TenantId удален, изменен или недоступен - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть веб-сайт, на котором я вхожу через OAuth и AzureAD.Я получаю OAuth AuthenticationToken следующим образом:

Claim tenantClaim = ClaimsPrincipal.Current.FindFirst(TenantIdClaimType);
if (tenantClaim != null)
{
    string tenantId = tenantClaim.Value;
    string userObjectID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value;
    AuthenticationContext authContext = new AuthenticationContext(Startup.Authority, new NaiveSessionCache(userObjectID));
    ClientCredential credential = new ClientCredential(clientId, appKey);
    AuthenticationResult authenticationResult = await authContext.AcquireTokenSilentAsync(dynamicsUrl, credential, new UserIdentifier(userObjectID, UserIdentifierType.UniqueId));
    return authenticationResult.CreateAuthorizationHeader();
}

Он работал хорошо все время.Я потерял связь с сайтом около 3 месяцев, и он больше не работает.Я отлаживал свой код и пытался сделать это «вручную».Зашел на http://schemas.microsoft.com/identity/claims/tenantid и увидел это сообщение:

Требуемый ресурс был удален, изменилось его имя или временно недоступен.

Это удалено, переименовано или что-то?Я проверил AzureAD, все еще действует (не просрочен) Я даже создал новый appKey и попробовал его, но он все еще не работает.

Извините за мой плохой английский.спрашиваю и о чем я говорю.Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Спасибо, что нашли время, я ценю вашу помощь.

С уважением, Нико ака.Myridor

1 Ответ

0 голосов
/ 01 февраля 2019

Я нашел решение.

Это не имело ничего общего с утверждениями, проблема заключалась в NaiveSessionCache, потому что ADAL обновил метод так, чтобы он запускал новый поток ..

Нашел мойответ здесь: HttpContext.Current является нулевым для TokenCache.BeforeAccess

...