2017-08-08 26 views
0

我有一個EWS應用程序,爲此我應該實現訪問EWS託管API的oauth。我試圖按照這裏發佈的代碼:Authenticate an EWS application by using OAuth,但無法弄清楚如何獲取像authority/clientId/clientAppUri和serverName這樣的參數。我已經在Azure門戶上註冊了我的應用程序,但沒有看到與我的應用程序相關的任何此類信息。 此外,我無法在Azure管理門戶網站上看到「通過Exchange Web服務將郵箱作爲登錄用戶訪問郵箱」的權限。如何獲取EWS應用程序的oauth參數

回答

0

在SO張貼引用這個問題的MSDN物品,其具有section解釋這些價值觀應該是什麼:

Azure的AD認證庫.NET簡化正從Azure的Active Directory中 認證令牌以便您可以在應用程序中使用 令牌。您需要提供四條 信息獲得令牌:

  1. 令牌服務器的URI。令牌服務器是對用戶進行身份驗證並返回您的應用程序可用於訪問EWS的令牌的權限。

  2. 當您使用Azure Active Directory註冊應用程序時創建的應用程序客戶端ID。

  3. 當您使用Azure Active Directory註冊您的應用程序時創建的應用程序客戶端URI。

  4. EWS服務器的URI和EWS端點的URI。作爲Office 365的一部分,Exchange將爲https:///ews/exchange.asmx。

以下代碼顯示如何使用Azure AD Authentication 庫來獲取身份驗證令牌。它假定使得認證請求所需的 信息存儲在 應用程序的app.config文件

string authority = ConfigurationManager.AppSettings["authority"]; 
string clientID = ConfigurationManager.AppSettings["clientID"]; 
Uri clientAppUri = new Uri(ConfigurationManager.AppSettings["clientAppUri"]; 
string serverName = ConfigurationManager.AppSettings["serverName"]; 

AuthenticationContext authenticationContext = new AuthenticationContext(authority, false); 

AuthenticationResult authenticationResult = authenticationContext.AcquireToken(serverName, clientId, clientAppUri); 
+0

我嘗試下面的MSDN文章,但依然沒能弄清楚的權威網址,所以在我現在我知道servername是https://outlook.office365.com/,因爲那是作爲用戶自動發現的一部分返回的url。但我仍然不確定休息,對於權威,我應該繼續前進,並使用文章中提到的相同內容:http://login.windows.net/.onmicrosoft.com devaccountname是電子郵件地址的用戶? – tavier

+0

和客戶端應用程序uri我想我需要使用我在Azure上註冊我的應用程序時輸入的相同url。我現在知道客戶端ID :) – tavier

+0

Authority密鑰應該將其值設置爲組織帳戶的Azure域(some_domain.onmicrosoft.com)。 因此,例如,如果組織帳戶是[email protected]。然後,權限是http://login.windows.net/contoso.onmicrosoft.com – MadDev

相關問題