У меня есть служба, использующая токены доступа Azure, которые мы получаем с помощью ADAL. У нас несколько сотен клиентов, но по какой-то причине двое из них периодически генерируют эту ошибку, когда мы пытаемся получить для них AuthenticationResult
:
multiple_matching_tokens_detected: кеш содержит несколько токенов, удовлетворяющих требованиям. Вызовите AcquireToken еще раз, указав дополнительные требования (например, UserId).
Я понятия не имею, почему только у этих двух человек из сотен есть эта проблема, и они действительно не могут найти много об этом в сети. Наш код для получения токена выглядит так (упрощенно):
AuthenticationContext authContext = new AuthenticationContext(authority, new MyCustomTokenCache());
ClientCredential credential = new ClientCredential(myClientId, myPassword);
authContext.AcquireTokenSilent(resourceUri, credential, UserIdentifier.AnyUser);
Почему возникает эта ошибка и каково «предлагаемое» решение ее устранения? Я склонялся к тому, чтобы попытаться исправить это путем получения такого токена, но действительно хотел бы знать, в чем на самом деле ошибка:
authContext.AcquireTokenSilent(mr.ResourceUri, credential, new UserIdentifier("[email protected]", UserIdentifierType.UniqueId));