【发布时间】:2016-08-30 11:59:43
【问题描述】:
我是否可以使用 Office 365 邮件 API 访问公司内所有人的电子邮件?我知道我可以访问个人,但帽子要求我有权访问他们的电子邮件并获取他们的访问令牌。我希望能够拥有管理员访问令牌并能够访问每个人的电子邮件。任何想法是否可能?
【问题讨论】:
标签: azure oauth-2.0 azure-active-directory office365api
我是否可以使用 Office 365 邮件 API 访问公司内所有人的电子邮件?我知道我可以访问个人,但帽子要求我有权访问他们的电子邮件并获取他们的访问令牌。我希望能够拥有管理员访问令牌并能够访问每个人的电子邮件。任何想法是否可能?
【问题讨论】:
标签: azure oauth-2.0 azure-active-directory office365api
这是可能的。我们可以注册一个 Web 应用程序和/或 Web API(默认,在 OAuth2 用语中称为机密客户端)并构建一个守护程序服务来检索所有消息以供组织使用。
这是一个使用客户端凭据请求令牌并从不同用户获取消息的示例:
string authority = "https://login.microsoftonline.com/msdnofficedev.onmicrosoft.com";
string resource = "https://Graph.microsoft.com";
string clientID = "";
string clientSecret = "";
AuthenticationContext ac = new AuthenticationContext(authority);
AuthenticationResult ar = ac.AcquireToken(resource, new ClientCredential(clientID, clientSecret));
HttpClient hc = new HttpClient();
hc.DefaultRequestHeaders.Add("Authorization", "Bearer " + ar.AccessToken);
HttpResponseMessage hrm = await hc.GetAsync("https://Graph.microsoft.com/v1.0/users/fx@msdnofficedev.onmicrosoft.com/messages/");
string content=await hrm.Content.ReadAsStringAsync();
MessageBox.Show(content);
HttpResponseMessage hrm2 = await hc.GetAsync("https://Graph.microsoft.com/v1.0/users/user1@msdnofficedev.onmicrosoft.com/messages/");
content = await hrm2.Content.ReadAsStringAsync();
MessageBox.Show(content);
有关在 Azure AD 中注册应用程序的更多详细信息,您可以点击以下链接: https://azure.microsoft.com/en-us/documentation/articles/active-directory-integrating-applications/#BKMK_Native
【讨论】: