AcquireTokenSilent a toujours échoué à acquérir le jeton en mode silencieux

À l'aide de ADAL j'ai deux AuthenticationContext à l'aide d'un Jeton Cache persisté dans SQL.

À l'aide de AcquireTokenByAuthorizationCode il écrit le Jeton dans la base de données, mais lors de l'utilisation de AcquireTokenSilent je reçois toujours

Échoué à acquérir jeton en silence. Appel de la méthode AcquireToken

Voici les détails pour la réplication de la question:

- Je créer un Contexte

AuthenticationContext authContext = new AuthenticationContext(_authority, new AzureAdalCache(companyId, _entries, _unitOfWork));

Puis Je AcquireToken Par Autorisation

authContext.AcquireTokenByAuthorizationCode(authorizationCode, new Uri(redirectUri), _clientCredential);

À ce point, il enregistre une entrée dans la base de données

Si je peux appeler cela j'obtiens une exception.

authContext.AcquireTokenSilent(_authority, _clientCredential, new UserIdentifier(companyId.ToString(), UserIdentifierType.UniqueId)).AccessToken;

J'ai aussi essayé avec le même résultat:

authContext.AcquireTokenSilent(_authority, _clientId).AccessToken;
authContext.AcquireTokenSilent(_authority, _clientCredential, UserIdentifier.AnyUser).AccessToken;

Je Poste mon AzureAdalCache mise en œuvre dans ce Gist.

Chaque entrée du Cache est comme ceci.

Ce qui me manque?

Mise à jour

Basé sur la réponse de commentaires de @vibronet j'ai cette

AuthenticationContext authContext = new AuthenticationContext(_authority, new AzureAdalCache(companyId, _entries, _unitOfWork));
authContext.AcquireTokenByAuthorizationCode(authorizationCode, new Uri(redirectUri), _clientCredential, _eWSResource);
string result = authContext.AcquireTokenSilent(_eWSResource, _clientId, UserIdentifier.AnyUser).AccessToken;

source d'informationauteur Ricardo Polo