2017-10-15 11 views
0

以下のシナリオをサポートするための情報を探しています。シングルテナントアプリケーションのAzure ADまたはGraphへのゲストアカウントクエリ

Azure ADのゲストとして他のAzure ADのユーザーを招待し、特定の目的のためにグループに入れ、Azure ADのゲストユーザーmemberofグループを取得できるようにする必要があります。グラフを使用しようとすると、ゲストアカウントの継ぎ目としてグラフに接続することができず、常に自分のグラフに尋ねることができます。長い時間Webを検索し、見た目にはシナリオをサポートできるように見えるが、それまでのところ運がないようなサンプルアプリケーションをたくさん試しました。

1つのテナントアプリを登録する理由の1つは、アプリケーションのライセンス部分を管理し、顧客のITにプロセスの参加を要求するのではなく、アプリケーションへのアクセスを管理するためですマルチテナントソリューションの一部をセットアップし、維持します。

私は今、すべての方向を失っており、どのように進むべきかについてのある方向のプッシュが必要です。

+2

私はAADがあなたのシナリオをサポートすべきだと信じていますが、現在何をしようとしているのか、現在失敗している場所が明確ではありません。現在の認証方法、特定のエラーメッセージ、または受信している動作に関する詳細を共有できる場合は、コミュニティが問題の解決に役立つと確信しています。 –

+0

Shawn下記のコメントを参照してください。 –

答えて

0

Shawn Tabriziが述べたように、Microsoft Graphはゲストユーザーのメンバーを他のテナントから取得する機能をサポートしています。ここにあなたの参照のための例です。この残りの部分について

GET: https://graph.microsoft.com/v1.0/groups/{groupId}/members 
authorization: bearer {access_token} 

結果 enter image description here

より詳細には、以下のリンクを参照することができます。このRESTについてまだ問題がある場合は、お気軽にお知らせください。

List members

+0

私たちのグループのゲストメンバーは働いていますが、ゲストが私たちのテナントのメンバーであるグループを見つけることができますようにお願いします。カントはこれを支持している。 すべてのグループのユーザーが縫い目を少し探しています。私は、テナントがテナントにクエリを指す方法を見つけることができないというアプリケーションuser memberOfを見つけることができるようにしたいと考えています。ユーザーにログオンすると、常に自分のmemberOfが家のテナントに表示されます。 Enterprizeアプリケーションは、自宅のテナントで私を所有していないと働くことができるゲストと一緒に使用する必要があります。 –

+0

Shawn Tabriziが返信したユーザーのメンバシップを取得するには、[GetUsersMemberships](https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/users-operations#GetUsersMemberships)を呼び出す必要があります。 )。 Microsoft GraphもこれらのRESTを提供しています。[List memberOf](https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/user_list_memberof)と[getMemberGroups]( –

0

さんはそれを見てみましょう!

私はテナントを持っている:shawntest.onmicrosoft.com

私はAzureのポータルを使用して、このテナントの新しいゲストユーザー作成:私は「+新しいゲストユーザ」ボタンをクリックすると、ゲストのGmailを作成し enter image description here

を上記のアカウントを参照してください。私は、さらにまた、ポータルでは、いくつかのグループにこのユーザーを追加しました: enter image description here

それでは、このユーザーに署名しましょう

はまず、それはあなたがしたいテナントを指定するには、このような状況で重要です。複数のテナントに関連付けられている可能性があり、最終決定を下すためにAADに任せることができるので、これらの種類のアカウントにはcommonエンドポイントを使用しないでください。代わりに、特定のテナントIDを持つ特定の認証コンテキストを指定します。

https://login.microsoftonline.com/shawntest.onmicrosoft.com

今すぐお好みのユーザーのログインフローを使用してトークンを取得します。私はjust 13 lines of PowerShellで簡単にシミュレートできるNative Clientフローを使用しています。

GET https://graph.windows.net/me?api-version=1.6

{ 
    "odata.metadata": "https://graph.windows.net/myorganization/$metadata#directoryObjects/Microsoft.DirectoryServices.User/@Element", 
    "odata.type": "Microsoft.DirectoryServices.User", 
    "objectType": "User", 
    ... 
    "displayName": "Shawn Tabrizi", 
    ... 
    "userPrincipalName": "xxxxxx_gmail.com#EXT#@shawntest.onmicrosoft.com", 
    "userType": "Guest" 
} 

は、私にはよさそうだ:私は私のトークンを持っていたら

は、私は外部のユーザーと働いていた証拠を示すために、/meエンドポイントを呼び出します。次に、memberOfクエリを使用して、ユーザーが所属するグループを取得しましょう。このクエリはすぐに実行できますが、最後のクエリのデータに依存しないことに注意してください。

GET https://graph.windows.net/me/memberOf?api-version=1.6

{ 
    "odata.metadata": "https://graph.windows.net/myorganization/$metadata#directoryObjects", 
    "value": [{ 
     "odata.type": "Microsoft.DirectoryServices.Group", 
     "objectType": "Group", 
     ... 
     "displayName": "TestGroup", 
     ... 
     "securityEnabled": true 
    }, { 
     "odata.type": "Microsoft.DirectoryServices.Group", 
     "objectType": "Group", 
     ... 
     "displayName": "MyTestGroup", 
     ... 
     "securityEnabled": true 
    }] 
} 

そしてそれは、すべての人々です!

+0

申し訳ありませんが、@ Shawn Tabriziさん、PowershellがAについて不平を言っているように動作させることができませんでした。引数 'Code'を受け入れる位置パラメータを見つけることができません。おそらくは $ authorzationUrl =( "{0}/{1}/oauth2/authorize?レスポンスタイプ=コード&クライアントID = {2}&redirect_uri = {3}&リソース= {4}&prompt =同意" PowerShellのモジュール –

+0

これをテストするためのサンプルプロジェクトが見つかりました https://github.com/microsoftgraph/aspnet-snippets-sample 変更についてのあなたの理論をテストしました Authority = "https://login.microsoftonline .com/common/v2.0 " To Authority =" https://login.microsoftonline.com/ /v2.0 " まだ、ユーザーは実際に私のテナントに/ me /以外の質問をしていません。 th eユーザーはAzure ADからゲストアカウントの正しいUPNを取得します。しかし、Live.comのIDはもうサポートされていません! –

+0

グループクエリには引き続きAdminの承認が必要です。管理者がAzure ADで承認したとしても、テナントの管理者承認についてはクエリを受け取ります。その管理者にはAzure ADの管理者はいません。これは大きな問題です。私はAzure ADのゲストユーザーmemberOfを取得したい。 –

関連する問題