【发布时间】:2015-06-26 17:35:37
【问题描述】:
使用 ADAL,我有两个 AuthenticationContext,使用 SQL 中持久化的令牌缓存。
使用AcquireTokenByAuthorizationCode 它将令牌写入数据库,但是使用AcquireTokenSilent 时我总是得到
静默获取令牌失败。调用方法 AcquireToken
以下是复制问题的详细信息:
我创建了一个上下文
AuthenticationContext authContext = new AuthenticationContext(_authority, new AzureAdalCache(companyId, _entries, _unitOfWork));
然后我通过授权获取Token
authContext.AcquireTokenByAuthorizationCode(authorizationCode, new Uri(redirectUri), _clientCredential);
此时,它在数据库中保存了一个条目
如果我调用它,我会得到一个异常。
authContext.AcquireTokenSilent(_authority, _clientCredential, new UserIdentifier(companyId.ToString(), UserIdentifierType.UniqueId)).AccessToken;
我也试过同样的结果:
authContext.AcquireTokenSilent(_authority, _clientId).AccessToken;
authContext.AcquireTokenSilent(_authority, _clientCredential, UserIdentifier.AnyUser).AccessToken;
我在this Gist 中发布我的AzureAdalCache 实现。
缓存的每个条目都是like this。
我错过了什么?
更新
根据@vibronet cmets 的回答,我有这个
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;
【问题讨论】:
标签: azure oauth azure-active-directory azure-webjobs adal