Office365 REST API。使用 ADAL 获取 401(未经授权)
Office365 REST API. Getting a 401 (Unauthorized) using ADAL
我正在尝试使用 ADAL 库访问 Office365 REST API,但收到 401(未授权),并且无法弄清楚原因。我已经在我们的 Azure AD 中注册了一个应用程序,获得了一个 ID,为它获取了一个密钥并授予它读取 Windows Azure Active Directory 的权限。
我可以获取 OAuth 令牌,但它无法与 Office365 一起使用 API。
这是我失败的尝试之一:
AuthenticationContext auth = new AuthenticationContext("https://login.windows.net/" + myTenant);
AuthenticationResult authenticationResult = auth.AcquireToken("http://Rest", new ClientCredential(myId, myKey));
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authenticationResult.AccessToken);
HttpResponseMessage msg = await client.GetAsync("https://outlook.office365.com/api/v1.0/me/events");
// => Bam. 401. :(
有什么想法吗?
您传递给 AcquireToken
的资源 ID 无效。那应该是"https://outlook.office365.com/"
。看看是否有帮助。如果没有,请尝试解析您的令牌并查找问题:https://github.com/jasonjoh/office365-azure-guides/blob/master/ValidatingYourToken.md
我正在尝试使用 ADAL 库访问 Office365 REST API,但收到 401(未授权),并且无法弄清楚原因。我已经在我们的 Azure AD 中注册了一个应用程序,获得了一个 ID,为它获取了一个密钥并授予它读取 Windows Azure Active Directory 的权限。
我可以获取 OAuth 令牌,但它无法与 Office365 一起使用 API。
这是我失败的尝试之一:
AuthenticationContext auth = new AuthenticationContext("https://login.windows.net/" + myTenant);
AuthenticationResult authenticationResult = auth.AcquireToken("http://Rest", new ClientCredential(myId, myKey));
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authenticationResult.AccessToken);
HttpResponseMessage msg = await client.GetAsync("https://outlook.office365.com/api/v1.0/me/events");
// => Bam. 401. :(
有什么想法吗?
您传递给 AcquireToken
的资源 ID 无效。那应该是"https://outlook.office365.com/"
。看看是否有帮助。如果没有,请尝试解析您的令牌并查找问题:https://github.com/jasonjoh/office365-azure-guides/blob/master/ValidatingYourToken.md