2016-12-13 6 views
1

私はAzure Activeディレクトリにマルチテナントアプリケーションを持っています。私たちはssoのためにそれを使用しています(顧客が紺色の広告資格情報を使ってアプリケーションにログインできるようにします)。アプリケーションのAzure拡張プロパティの作成

さらに詳しい情報をユーザープロファイルに追加します。 Azure ADからすべてのユーザーのプロパティの値を読み取る必要があります(管理者はAzure広告のすべてのユーザーに対してこのプロパティを設定できます)。

このプロパティは "hair_color"です。このプロパティは、Azureユーザオブジェクトには存在しません。

POST https://graph.windows.net/mydomain.com/applications/my_app_id/extensionProperties?api-version=1.21-preview { “name”: “hair_color”, “dataType”: “String”, “targetObjects”: [“User”] }

しかし、私はこの拡張機能を作成するために問題を抱えている:

  • 私がアクセス・トークンを必要とするAzureのドキュメントによると、私が使用して(https://azure.microsoft.com/en-us/resources/samples/active-directory-dotnet-graphapi-directoryextensions-web/)拡張機能を作成することができますこの要求を実行します。だから私は私の管理者の資格情報でログインし、このaccessTokenを取得する必要があります。今、私のアプリは管理者権限を持っていません。私は単純な拡張機能を追加するために私のアプリケーションの権限を変更したくない。また、これは私が一度だけ実行する操作です。

  • 私はそれを行うためのツールが見つかりません。私は、ポータル、azure-cliとグラフエクスプローラ(https://graphexplorer.cloudapp.net/ - 私の拡張機能を見ることができますが、私は拡張機能を作成するためにPOSTを行うことはできません)を使って拡張機能を追加しようとしました。

私のアプリのextensionPropertiesを作成するツールはありますか?またはこれを行うための少なくとも簡単な方法です。理想的には、extensionPropertyを追加して、実際のアプリケーション構成(パーミッションと他のすべてを保持)を残したいと思います。

PSは:

  • この拡張は、グラフAPIに表示されます。また、私はわからないんだけど?
  • 管理者はこのプロパティをWebブラウザから変更できますか?またはローカルの紺碧の広告を同期させて変更する必要がありますか?少なくとも部分的に、あなたの質問に答えるために
+0

あなたのアプリに対して委任権限を使用することができます。そのため、管理者権限を持つユーザーのみがこの変更を行うことができます。 – Thomas

答えて

0

アプリの拡張、そしてあなたのアプリに他のテナントの同意から管理者を作成した後、属性は同様に彼らのテナントに追加されます。次に、ユーザーがGraph APIから取得され、そのユーザーのそのプロパティの値が登録されている場合、拡張プロパティがそこにあります。

+0

「あなたのアプリに同意した別のテナントの管理者」とはどういう意味ですか?彼らはそれを受け入れる必要がありますか?私はそれが自動であることを期待していた。したがって、属性は表示されますが、管理者がAzure広告で値を設定しない場合は空です。 –

+0

管理者があなたのアプリにサインアップするときは、あなたのアプリからリクエストされたアクセス許可に同意する必要があります。これは最初にログインしようとしたときに発生します。アプリが必要とする権限を受け入れることを選択した場合、ユーザーは同意します。これは、マルチテナントアプリがAzure ADで動作する方法です。 – juunas

+0

したがって、管理者の代わりに、別のテナントの通常のユーザーが自分のアプリケーションにサインアップします。その後、私のアプリから要求されたアクセス許可に同意します(管理者の許可は必要ありません)。プロパティが表示されますか? –

0

& prompt = admin_consentクエリーストリングパラメータの承諾URLを使用して、第三者テナントの管理者にテナントでのアプリの使用を承認するように依頼すると、AADのすべてのユーザーの同意を受けて、同意する必要はありません。顧客管理者にこのリンクを提供するだけです。
https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=YOUR_APP_GUID&prompt=admin_consent

:「属性が表示されますが、管理者がAzureのADに値を設定していない場合は空であるので、」 はい、正しいです。拡張属性は、AAD管理者が手動で設定することはできません。これは、アプリケーションによってのみ設定できます。あなたのアプリは基本的にその属性データを所有しており、それを読み書きできる唯一のクライアントです。したがって、あなたのアプリにサインオン時に、(例えば)髪の色の属性がない場所では、それを尋ねる必要があります。

関連する問題