ユーザーのグループを読み取る必要があるアプリケーションを作成しました。私はAsp.netコアを使用しています。ぼんやりしたポータル内にアプリケーションを作成し、すべて GraphAPIのアプリケーション権限を与え、[許可]ボタンをクリックしました。それから私は、ユーザーのグループを取得するためにWebApp-GroupClaims-DotNetに似たいくつかのコードを使用:getMemberGroups "操作を完了するための十分な権限がありません"
public async Task<IEnumerable<string>> GetGroupIdsFromGraphApiAsync(string userId)
{
var groupObjectIds = new List<string>();
// Acquire the Access Token
var credential = new ClientCredential(_configHelper.ClientId, _configHelper.AppKey);
var authContext = new AuthenticationContext(_configHelper.Authority);
var result = await authContext.AcquireTokenAsync(_configHelper.GraphResourceId, credential);
var accessToken = result.AccessToken;
var requestUrl =
$"{_configHelper.GraphResourceId}/{_configHelper.Domain}/users/{userId}/getMemberGroups?api-version=1.6";
// Prepare and Make the POST request
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, requestUrl);
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
var content = new StringContent("{\"securityEnabledOnly\":false}");
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
request.Content = content;
var response = await client.SendAsync(request);
// Endpoint returns JSON with an array of Group ObjectIDs
if (response.IsSuccessStatusCode)
{
var responseContent = await response.Content.ReadAsStringAsync();
var groupsResult = (Json.Decode(responseContent)).value;
foreach (string groupObjectId in groupsResult)
groupObjectIds.Add(groupObjectId);
}
else
{
var responseContent = await response.Content.ReadAsStringAsync();
throw new WebException(responseContent);
}
return groupObjectIds;
}
残念ながら、私はいつも次の応答を得るのです:
{"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."}}}
このためADを照会するためのアプリケーションのための方法はありません情報?
「_configHelper.GraphResourceId」の値は何ですか。紺碧の広告グラフapiを使用しているようですが、紺碧のポータルでWindows Azure Active Directory(紺色広告グラフAPI)の許可を与えていますか? –
'_configHelper.GraphResourceId'は' https:// graph.windows.net'です – david
あなたは誰に許可を与える青空のポータルでですか? Azure Active DirectoryまたはMicrosoft Graph?どのアプリケーションの許可? –