Office 365 API编程身份验证

时间:2016-07-05 21:12:00

标签: api authentication office365

我对Office 365 API很陌生 - 我希望以编程方式进行身份验证,但我一直在测试的示例需要通过登录页面。这是否可能,如果是这样,有人能够指出我的一些例子(我将主要用于日历)。感谢。

1 个答案:

答案 0 :(得分:4)

Azure AD的OAuth2.0有两种基本身份验证流程。

第一个是授权代码授予流程,用于访问Azure Active Directory(Azure AD)中的本机客户端和网站的Web API。在此流程中,用户委派对客户端应用程序的访问权限。

第二个是客户端凭据授权流程,它允许Web服务(机密客户端)在调用其他Web服务时使用自己的凭据进行身份验证,而不是模拟用户。在这种情况下,客户端通常是中间层Web服务,守护程序服务或网站。

以下示例使用客户端凭据授予流程来获取特定用户的消息供您参考:

    string clientId = "";
    string clientsecret = "";
    string tenant = "yourdomain.onmicrosoft.com";

    var authUri = "https://login.microsoftonline.com/"+tenant+"/oauth2/token";
    var RESOURCE_URL = "https://outlook.office.com";

    HttpClient client = new HttpClient();
    var authContext = new AuthenticationContext(authUri);
    var credential = new ClientCredential(clientId: clientId, clientSecret: clientsecret);
    var result = authContext.AcquireTokenAsync(RESOURCE_URL, credential).Result;
    client.DefaultRequestHeaders.Add("Authorization", "bearer " + result.AccessToken);


     var response = client.GetAsync("https://outlook.office.com/api/v2.0/users/user1@yourdomain.onmicrosoft/messages").Result;

    Console.WriteLine(response.Content.ReadAsStringAsync().Result);

要使用Office 365 REST API,我们需要先注册该应用。您可以参考here了解详细信息。