Office 365 Mail API:管理员访问令牌,用于访问每个人的电子邮件

时间:2016-03-21 00:57:03

标签: azure oauth-2.0 azure-active-directory office365api

我是否可以使用Office 365 Mail API访问公司内的所有电子邮件?我知道我可以访问个人,但是帽子要求我被允许访问他们的电子邮件并获得他们的访问权限。我希望能够拥有管理员访问令牌,并能够访问每个人的电子邮件。是否可能有任何想法?

1 个答案:

答案 0 :(得分:1)

有可能。我们可以注册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