2016-07-05 302 views
0

我对Office 365 API非常陌生 - 我正在寻找以编程方式进行身份验证,但我一直在测试的示例需要通过登录页面。这是可能的,如果是的话,有人能够指出我的一些例子(我主要是用这个日历)。谢谢。Office 365 API编程式身份验证

+1

询问代码/软件/文档/示例/ etc ..是明显偏离主题。 –

回答

1

Azure AD有两种基本的OAuth2.0认证流程。

第一个是授权码授权流程它用于通过本地客户端和Azure Active Directory(Azure AD)中的网站访问Web API。在这个流程中,用户委托访问客户端应用程序。

第二个是客户端证书授权流程允许Web服务(机密客户端)在调用其他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/[email protected]/messages").Result; 

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

,并使用Office 365的REST API,我们需要注册应用程序第一。有关详细信息,请参阅here

+0

我不确定这是否可行 - 我读过的所有内容都表明您需要在客户端凭证流中使用X.509证书。 [请参阅此页获取更多信息](https://blogs.msdn.microsoft.com/exchangedev/2015/01/21/building-daemon-or-service-apps-with-office-365-mail-calendar-and -contacts -apis-oauth2-client-credential-flow /) – Ben

+0

客户端凭证流支持两种方式。一个使用秘密,另一个使用证书。 –