2017-04-19 15 views
2

Graph APIを使用してAzure ADアプリケーション(servicePrincipal)にユーザーを割り当てるスクリプトを作成しようとしています。私はこれを私のサンドボックスでテストしています。そこでは、私がアプリを定義し、ユーザを割り当てています。しかし、私がservicePrincipalに問い合わせると、ユーザーは応答のどこにも表示されません。グラフAPIを使用してAzure ADアプリケーションにプログラムを割り当てる

質問:documentationに基づいて

  1. appRoleAssignmentはすべきではありませんか?

  2. ドキュメントには、このフィールドは読み取り専用であるため、どのようにユーザーを割り当てることになっていますか?

答えて

3

グラフAPIを照会するときは、ナビゲーションプロパティを介してユーザのappRoleAssignmentsを取得することができます:

https://graph.windows.net/tenant-id/users/user-id/appRoleAssignments?api-version=1.6 

あなたはへのHTTP POSTを行うことによって割り当てを作成することができます

https://graph.windows.net/tenant-id/users/user-id/appRoleAssignments?api-version=1.6 

送信する必要があるオブジェクトは次のようになります。

{ 
    "id": "id-of-role", 
    "principalId": "objectId-of-user", 
    "resourceId": "objectId-of-service-principal" 
} 
0あなたのアプリがどんな役割はありませんが、あなたはまだユーザーを割り当てる場合

は、あなただけですべてゼロにIDを設定することができそうです:

するリソースが何らかの権限を宣言していません、デフォルトのID(ゼロのGUID)を指定する必要があります。だから、

のようなもの:

{ 
    "id":"00000000-0000-0000-0000-000000000000", 
    "resourceId": "a27d8321-3dc6-44a1-bf19-2546a9f2806e", 
    "principalId": "c4f810b8-2ea1-4580-9595-30275a28c2a2" 
} 
+0

はどうもありがとうございました。新しいMSFTグラフAPIを使用して複製できるかどうかを確認しようとしていました。https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/resources/directoryobject – babakh

+1

私はこれに苦労しています。テナントからアプリケーションのオブジェクトIDまたはアプリケーションIDを取得した場合、私はいつもエラーリソースが存在しません。 – Sentinel

+0

アプリケーションではなく必要なサービスプリンシパルのオブジェクトIDです。 AzureポータルのAzure ADブレードのエンタープライズアプリケーションでサービスプリンシパルを見つけることができます。そのプロパティでは、オブジェクトIDを見つけることができます。 – juunas

関連する問題