私自身とサードパーティの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に有効なトークンを取得しますが、サードパーティのAzure ADにアクセスしようとするたびに同じエラーが発生します。
私がアクセスしようとしていますどのようなAD変更する方法は、私が同じ他のすべてを保つ
string authority = string.Format(CultureInfo.InvariantCulture, "https://login.microsoftonline.com/{0}", "<AD>.onmicrosoft.com");
で<AD>
を変更することです。あなたのスクリーンショットから
本当にAzure AD Graph APIを実際に使用していたことはわかりませんでした。 エンドポイントを変更すると「BadRequest」が表示されます。「無効なバージョン」とは、別の呼び出しを使用するためにコードを変更する必要があるということですか? – Jeppe
Azure AD Graph APIまたはMicrosoft Graph APIを使用しますか?あなたのSDKは紺色の広告グラフAPIを使用しているようです。 –
はい、私はあなたの答えから私が現在Azure ADグラフAPIを使用していることを理解しました。私はMicrosoftグラフAPIを使用したいと思います。 – Jeppe