我想通過微軟的Graph API從Azure Active Directory中讀取用戶的數據。使用圖形瀏覽器,我可以獲得所有用戶,但使用獨立應用程序後,我收到令牌後最終會收到「未經授權」的響應。我顯然錯過了一些步驟,但對我而言,這不是很明顯。任何有識之士將不勝感激Microsoft Graph Api令牌無效或未經授權?
下面的代碼是基於斷MSFT樣本:
// config values
// authority = "https://login.microsoftonline.com/{ TENANT ID }/oauth2/"
// resource uri = "https:// APP NAME .azurewebsites.net";
// graph uri = https://graph.windows.net/TENANT ID/ also tried https://graph.windows.net/v1.0/
// short form
public async void GetUsers(ADConfiguration config)
{
_authContext = new AuthenticationContext(config.GetAuthority());
_clientCredential = new ClientCredential(config.ClientId, config.ClientSecret);
AuthenticationResult result = null;
// obtain the token, this part is still successful
result = await _authContext.AcquireTokenAsync(config.ResourceUri, _clientCredential);
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
string address = config.GetGraphiUri() + "users?api-version=1.6";
// this response is always unauthorized
HttpResponseMessage response = await _httpClient.GetAsync(address);
}
感謝您的回答。建議將錯誤消息從「未授權」更改爲「禁止」。一個橫向移動我猜... 我相信資源uri是指Azure上的AD服務器。無論哪種方式,我嘗試過任何變化沒有太多的成功。 – Mark
禁止表示您的應用程序沒有必要的權限。檢查是否已將它們添加到Azure AD Graph。 – juunas
我們有兩個可以訪問的API:'Windows Azure Active Directory'和'Microsoft Graph',它們都有權限執行所有操作。我已經在尋找'Azure AD Graph'來添加API訪問權限,但是這不會作爲選項提供。 – Mark