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

Office 365 Mail API: Admin access token to access everyone's emails

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

有可能。我们可以注册一个 Web 应用程序 and/or 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注册申请的详情,可以关注下方link: https://azure.microsoft.com/en-us/documentation/articles/active-directory-integrating-applications/#BKMK_Native