2017-03-02 13 views
1

私はテナント/ディレクトリにAADアプリケーションを登録しており、グラフ専用APIをアプリケーション専用コンテキストで呼びたいと思っています。 (クライアント資格フローを使用して)テナントのAAD Graph APIへのアプリケーションのフルアクセスを許可するにはどうすればよいですか?

特定のAADグラフAPI呼び出しを行うとき、私はエラーを取得する:

"odata.error":{ 
    "code":"Authorization_RequestDenied", 
    "message":{ 
     "lang":"en","value":"Insufficient privileges to complete the operation." 
    } 
} 

私は、このアプリケーションに私のテナントのコンテキストでグラフAPIへのフルアクセス権を与えたいです。

それとも

私は現在、AADグラフAPIによって公開された権限でサポートされていません。私のテナントに、このアプリケーションのアクセス許可を付与します。

答えて

1

Company Administratorディレクトリロールにそのアプリケーションのサービスプリンシパルを追加することで、テナント内のアプリケーションのアクセスレベルを上げることができます。これにより、アプリケーションには、何でもできる管理者権限と同じレベルの権限が与えられます。このアプリケーションに与えるアクセスレベルに応じて、任意の種類のディレクトリロールに対して同じ手順を実行できます。

これは、あなたのアプリがあなたのテナントのアクセス権にのみ影響することに注意してください。

また、これらの指示に従うには、すでにテナントの会社管理者である必要があります。

変更を加えるには、Azure Active Directory PowerShell Moduleをインストールする必要があります。

あなたはモジュールがインストールされたら、管理者アカウントを使用してテナントへの認証:

Connect-MSOLService 

その後、我々は我々が昇格したいサービスプリンシパル、および会社の管理者の役割の両方のオブジェクトIDを取得する必要がありますあなたのテナントのために。アプリケーションID GUIDによってサービスプリンシパル用

検索:名前

$role = Get-MsolRole -RoleName "Company Administrator" 

によってDirectoryの役割について

$sp = Get-MsolServicePrincipal -AppPrincipalId <App ID GUID> 

が検索今、私たちはサービスプリンシパルにこの役割を追加するAdd-MsolRoleMemberコマンドを使用することができます。

Add-MsolRoleMember -RoleObjectId $role.ObjectId -RoleMemberType ServicePrincipal -RoleMemberObjectId $sp.ObjectId 

すべてが動作している確認するには、会社の管理者ロールのすべてのメンバーを取り戻すことができます:

Get-MsolRoleMember -RoleObjectId $role.ObjectId 

あなたはRoleMemberTypeServicePrincipalDisplayNameでそのリスト内のアプリケーションが、名前で表示されるはずですあなたのアプリケーションの。

これで、アプリケーションは、クライアントの資格フローを使用して、ユーザーがサインインしなくても、すべてのGraph APIコールを企業管理者が実行できるはずです。

これが役立つ場合はお知らせください。

関連する問題