0

私自身とサードパーティのAzure Active Directoriyをアプリケーションアクセスフローで検索しようとしています 有効なトークンを取得します。私は与えられた名前を持つユーザーを検索するには、このメソッドを使用しAuthorization_RequestDenied:操作を完了するための十分な権限がありません "アプリケーションでエラーが発生しました(サードパーティの場合のみ)

string authority = string.Format(CultureInfo.InvariantCulture, "https://login.microsoftonline.com/{0}", "<AD>.onmicrosoft.com"); 
AuthenticationContext authContext = new AuthenticationContext(authority); 
ClientCredential clientCredential = new ClientCredential(<clientId>, <appKey>); 

AuthenticationResult result = await authContext.AcquireTokenAsync("https://graph.windows.net" , clientCredential); 
string TokenForApplication = result.AccessToken; 

public async Task<List<IUser>> UsersSearch(IActiveDirectoryClient client, string searchString) 
{ 
    List<IUser> usersList = null; 
    IPagedCollection<IUser> searchResults = null; 

    IUserCollection userCollection = client.Users; 
    searchResults = await userCollection.Where(user => 
     user.UserPrincipalName.StartsWith(searchString) || 
     user.GivenName.StartsWith(searchString)).Take(10).ExecuteAsync(); 
    usersList = searchResults.CurrentPage.ToList(); 

    return usersList; 
} 

このすべては私最初のセットアップのAzure ADをアプリ上で正常に動作します。

しかし、私は別のAzure Active Directory内のアプリを使用しようとすると、私はエラーを取得する:私の元Azureの私は、グラフAPIにアクセスすることをアプリに必要なすべての権限を設定しているADと検索でAuthorization_RequestDenied: Insufficient privileges to complete the operation."

私は管理者の流れを経てアプリに必要なすべての権限を付与している第三者のAzure ADに

permissions on my own AAD

Permissions for app on Third party AAD

ユーザーのための

私が見る限り、各Azure ADに有効なトークンを取得しますが、サードパーティのAzure ADにアクセスしようとするたびに同じエラーが発生します。

私がアクセスしようとしていますどのようなAD変更する方法は、私が同じ他のすべてを保つ

string authority = string.Format(CultureInfo.InvariantCulture, "https://login.microsoftonline.com/{0}", "<AD>.onmicrosoft.com"); 

<AD>を変更することです。あなたのスクリーンショットから

答えて

1

は、選択された権限は、MicrosoftグラフAPI(https://graph.microsoft.com)のためですが、あなたのコードによると、あなたは、AzureのADグラフAPI(https://graph.windows.net)のトークンを取得しています。

Azure AD Graph apiを使用する場合は、マルチテナントアプリのRequired permissionsブレードにWindows Azure Active Directoryの権限を追加し、他のAADでは管理者の同意を得てください。

Microsoft Graph APIを使用する場合は、https://graph.windows.netの代わりにhttps://graph.microsoft.comを使用してコードを修正する必要があります。

+0

本当にAzure AD Graph APIを実際に使用していたことはわかりませんでした。 エンドポイントを変更すると「BadRequest」が表示されます。「無効なバージョン」とは、別の呼び出しを使用するためにコードを変更する必要があるということですか? – Jeppe

+0

Azure AD Graph APIまたはMicrosoft Graph APIを使用しますか?あなたのSDKは紺色の広告グラフAPIを使用しているようです。 –

+0

はい、私はあなたの答えから私が現在Azure ADグラフAPIを使用していることを理解しました。私はMicrosoftグラフAPIを使用したいと思います。 – Jeppe

関連する問題