2016-07-05 159 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

客戶端憑證流支持兩種方式。一個使用祕密,另一個使用證書。 –

相關問題