2016-09-08 16 views
0

現在、Microsoft Graph APIを使用してメンバのOffice 365「メタデータ」を監視および分析するマルチテナントAzure ADアプリケーションを実装しようとしていますテナントドメインのたとえば、アプリケーションは1つのドライブのユーザースペースを時間の経過とともに監視する可能性があります。このアプリケーションのアーキテクチャには、AngularJS SPAクライアントとWebアプリケーションバックエンドが含まれます。アイデアは、ウェブアプリケーションが、Azure AD認証に加えて、ローカル登録(例えば、電子メールアドレスとパスワードを使用した従来のサインアップ)の両方を可能にすることである。ローカル登録の場合、ユーザは、例えば、Azure ADテナントを将来的にローカルアカウントと関連付けることができるかもしれない。マルチテナントADAL JS SPAとAzure AD Webアプリケーションバックエンド

さまざまな認証メカニズムがどのように機能するかを理解するのは難しいです。たとえば、私は、Azure ADの場合、クライアントSPAのユーザーに対して1つの認証と、Microsoft APIへの連続呼び出しを行うためにバックエンドによって使用される別の認証の2つのレベルの認証が必要であると考えていますトークンなど

  • various Azure AD authentication scenariosを使用してこのアーキテクチャを実装する方法マイクロソフトでは既に例を示していますか?
  • Azure ADに登録されている2つのアプリケーション(たとえば、SPAがネイティブアプリケーションとして登録されているとし、Webアプリケーションがそれ自体で登録されている)を持っているという私の最初の傾向がある場合、このワークフローはどのように見えますか?さらに、ユーザー要求の流れはどのように見えますか? SPAは、Azure ADトークンを使用してバックエンドに要求しますが、バックエンドはその認証トークンを受け取り、Microsoft APIを呼び出すために何を行いますか?
  • Azure AD認証とローカル登録をアプリケーションに組み込むにはどうすればよいですか?

答えて

0

一般に、バックエンドサーバー/データベースのAzure ADテナントで各ユーザーをエンティティに関連付けることができます。 Azure ADのすべてのユーザーは、エンティティオブジェクトにいくつかの一意のプロパティを持っています。ユーザーのemailまたはobjectIdを、Claims in Azure AD Security Tokensに記載されているように、ユーザーテーブルの外部列として使用できます。

ユーザーがADAL.JSでサイトを認証すると、Authenticationヘッダーを介してバックエンドサーバーのアクセストークンを取得できます。アクセストークンを使用して、Azure ADによって保護されているリソースを要求することができます。また、アクセストークンはJWTトークンです。前述のように、ユーザーの基本的なクレームを直接取得するためにデコードすることができます。ユーザーテーブルに格納されているクレームを取得し、自己が保護しているリソースを要求するためにサーバーに登録されている特別なユーザーと照合することができます。

関連する問題