【发布时间】:2015-01-17 10:49:41
【问题描述】:
在 OIDC 中间件中将代码交换为图形令牌时,我遇到了 invalid_grant 错误:
我以前有过这样的工作,但似乎无法从这个和样本中找到差异。这是尝试获取 azure AD Graph api 令牌的代码:
AuthorizationCodeReceived = async context =>
{
try
{
string userObjectID = context.AuthenticationTicket.Identity.FindFirst("oid").Value;
string tenantID = context.AuthenticationTicket.Identity.FindFirst("tid").Value;
var credential = GetCredential();
var authContext = new AuthenticationContext(string.Format("https://login.windows.net/{0}", tenantID));
Uri redirectUri = new Uri(context.Request.Uri.GetLeftPart(UriPartial.Path));
Logger.InfoFormat("redirect {0}", redirectUri);
AuthenticationResult result = authContext.AcquireTokenByAuthorizationCode(
context.Code, redirectUri, credential, graphResourceID);
}catch(Exception ex)
{
Logger.ErrorException("oidc", ex);
}
}
但是得到了一个
1/17/2015 4:22:42 AM: a0e69d43-1c91-4069-8d1f-4b03103dc227 - AsyncMethodBuilderCore: Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException: AADSTS70002: Error validating credentials. AADSTS70000: The provided access grant is invalid or malformed.
Trace ID: 2112568f-fbe6-4ac6-bd67-de5904a9b9f5
Correlation ID: a0e69d43-1c91-4069-8d1f-4b03103dc227
Timestamp: 2015-01-17 04:22:42Z
应用程序权限设置为读取数据。 委派权限设置为读取用户配置文件。
我说得对吗,以上还不够,我还需要在用户登录后为图形资源创建授权请求。
【问题讨论】:
标签: azure