2017-02-18 10 views
1

私は一般的にエンタープライズ用のWebアプリケーションを開発することを考えています。私が考えているのは、以下のシナリオです:Webアプリケーションを再度認証する複数の紺碧の広告?

アプリケーションは、複数の顧客に対応できる必要があります(マルチテナントと呼ばれますか?)。つまり、複数の企業が従業員にこのソフトウェアを使用することができます。

それぞれに独自の紺碧の広告がある場合もあれば、そうでない場合もあります。したがって、私はそれが複数/異なる紺碧の広告に対して認証することが可能かどうかを知りたいですか?

ユーザーが自分のメールアドレス[email protected]を入力したとしたら、誰かが[email protected]でログインしようとしたときにcompanyA.com広告の背後に設定された広告に対して彼を認証しようとします私はcompanyB.comのために設定されている紺碧の広告に対して認証しようとします。

これは可能ですか?どうすればいい?

答えて

4

これは、マルチテナントアプリケーションが存在する正確な理由です。したがって、Azure ADのユーザーがアプリケーションにサインインすることができます。

それが動作する方法は、このようなものです:

  1. あなたはそれが(必要を通じてAzureのADグラフ/アクセスユーザーのOneDriveからデータを読み取る能力のような可能性のあるアクセス許可を含め、あなたのAzure ADテナントでアプリケーションを定義しますMicrosoft Graphなど)
  2. アプリケーションを定義するときは、マルチテナントとして設定します。
  3. 他の組織のユーザーがあなたのアプリにサインインしようとすると、同意画面が表示されます。この画面では、アプリケーションとディレクトリに必要な権限について説明します。 (最初に登録するユーザーは、そのディレクトリの管理者である必要があります
  4. アプリが必要とするアクセス許可に同意すると、サービスプリンシパルがそのディレクトリに作成されます。このプリンシパルは、アプリケーションのアカウントのようなもので、現在はのディレクトリに存在しています。
  5. その後、アプリに転送されます。

、アプリケーションの側で注意すべきいくつ重要なことがあります。

  1. は、あなたが代わりにテナント固有のエンドポイントのhttps://login.microsoftonline.com/common/oauth2/authorizeでログインするユーザーをリダイレクトする必要があります。マルチ対単一程度
  2. ASP.NET MVCでOpenIDConnectミドルウェアを使用すると、発行者の検証をオフにして、(あなたはテナントが実際に前にサインアップしています確認する必要があります)少し手動で行う必要があります

詳細テナント:http://www.andrewconnell.com/blog/azure-ad-what%E2%80%99s-the-difference-between-single-vs-multi-tenant

例マルチテナントアプリ(ASP.NET MVC):https://github.com/Azure-Samples/active-directory-dotnet-webapp-multitenant-openidconnect

関連する問題