2017-03-09 14 views
1

私はマルチテナントアプリケーションを用意しています。 Azure API Managementを使用して公開したいと思います。ほとんど私は非常に便利であると思う開発ポータルを私たちの顧客に提供するために、そしておそらくいくつかの他の機能を使用します。マルチテナントAPIのAzure API管理を設定する方法

私が正しく理解している場合、お客様は認証用の独自のサブスクリプションキーを設定します。このサブスクリプションキーは、API管理プロキシが検証します。

質問:このテナントのデータのみが返されるように、アプリケーションのテナントへのユーザー/サブスクリプションをリンクして識別するにはどうすればよいですか。

私が見ることができる方向の1つは、テナントへのサブスクリプションのリンクに役立つと思われる委任サインアップを使用することです。しかし、それでも問題は私のバックエンドAPIでユーザーIDを取得する方法ですか?

ドキュメントやサンプルを任意の方向は非常にあなたのテナントを表現するためにAPIMで別々のグループを作成し、委任フックアップを使用して、それらのユーザーをグループに入れることができ

答えて

3

を高く評価しています。式でAPIMポリシーを使用すると、context.User.Groupsを参照することができます。グループをリストするユーザは、コールを行うユーザを所属させ、その情報をバックエンドに転送します。

また、メモフィールドを使用してテナント名を保存し、context.User.Noteとしてアクセスすることもできます。または、あなたの側にマッピングを保存したい場合は、idコンテキストを取得します。ユーザー.Id。すべてのシナリオが作成したすべての新しいユーザーのために自動的にこの情報を埋めるために委任セットアップを持っているあなたを必要とする

<set-header name="userId"> 
    <value>@(context.User.Id)</value> 
</set-user> 

上記のすべては次のように設定され、ヘッダのポリシーを使用してヘッダーとして渡すことができます。

+0

ありがとう、コンテキストを使用しています。私が探索すべき方向のようなユーザーの音。私はもっ​​とデータを収集するので、ちょっと後で回答としてマークします。 –

関連する問題