2016-11-23 55 views
0

我有一個Azure Api REST,可通過輸入用戶名/密碼進行訪問。 我怎樣才能從C#訪問這個API?C#使用用戶名/密碼連接到Azure AD

經過一番搜索,我發現有關使用AuthenticationContext ..但它不能爲我工作Authenticationcontext .AcquireToken(resource,clientId,credential);

我在哪裏可以獲得'資源'參數和客戶ID

非常感謝

回答

0

我大部分基於我對this post的工作,奠定了一些基礎的。

您需要先在Azure AD中創建本機應用程序並添加Windows Azure服務管理API權限。

Creating AD App

的客戶端ID 從該應用程序獲得的。

這是我目前使用獲得令牌可以與管理SDK中使用的代碼:

string userName = "yourUserName"; 
string password = "yourPassword"; 
string directoryName = "yourDirectory.onmicrosoft.com"; 
string clientId = "{ClientId obtained by creating an App in the Active Directory}"; 
var credentials= new UserPasswordCredential(string.Format("{0}@{1}", userName, directoryName), password); 
var authenticationContext = new AuthenticationContext("https://login.windows.net/" + directoryName); 
var result = await authenticationContext.AcquireTokenAsync("https://management.core.windows.net/", clientID, credentials); 
var jwtToken = result.AccessToken; 
//Example accesing Azure Cdn Management API 
string subscriptionId = "xxxx-xxxxxx-xxxx-xxxxxxx"; 
using (var cdn = new CdnManagementClient(new TokenCredentials(jwtToken)) { SubscriptionId = subscriptionId }) 
{ 
    //do something... 
} 

你的目錄名可以在Azure門戶可以獲得> Azure的AD部分,上域名

Domain name

+0

我的應用程序是在蔚藍的網站託管:https://AppHostedName.azurewebsites.net/ 我的例子目錄名稱將是「AppHopstedName」? –

+0

您可以在Azure上看到目錄名稱,轉到Azure AD服務並檢查**域名**。我編輯了包含屏幕截圖的答案。 –

+0

謝謝Matias,你幫了我很多 –

相關問題