1

私は、ユーザーのためにいくつかのWeb APIを呼び出すバックエンドとしてのWeb APIを持つ単一ページアプリケーションを開発するつもりです。しかし、私はこれをどうやって行うのか苦労しています。Azure AD:委任されたユーザーIDシナリオを伴うSPAの混在

私はMSからこのlist of Azure AD scenariosを見ましたが、私の場合には当てはまりません。私のシナリオは、そのリンクからSPAと「WebアプリケーションからWeb APIへ」シナリオが混在していると思います。

SPA-ClientがまずAzure AD Auth Endpointから認証コードとIDトークンを取得してバックエンドに送信する必要があることを理解しています。その後、バックエンドは必要なアクセストークンのAzure ADトークンエンドポイントを要求します。

これは間違いありませんか?しかし、どうすればこれを行うことができますか(adal.jsで)?暗黙的なフローを使用しているクライアントの例だけが見つかり、認証コードの取得はスキップされ、アクセストークンで直接終了します。これはまったく可能ですか?

答えて

1

あなたはかなり近いと思います。 Azure Portalでシナリオを設定した後(シナリオの設定については、code sampleを参照してください)、ユーザにログインしてWeb APIのアクセストークンを要求します。 Web APIがこのアクセストークンを受け取ると、下流のWeb APIへのアクセスを要求するAzure ADにOn-Behalf-Of requestを実行できます。成功すると、Azure ADはWeb APIに下流のAPIに使用できる新しいアクセストークンを発行します。

サポートの面では、シングルページアプリケーションはADAL.jsを使用してユーザーにログインし、アクセストークンを取得する必要があります。 Web API側では、Azure ADはOn-Behalf-Of flowをADAL .NETとADAL Javaでサポートしています。 Azure ADは、.NET用のOWINミドルウェアを構築していますが、Java Web APIに相当するオープンソースを必要とします。

Hereは、実際の動作中の大量のサンプルです。これは、単一のページのアプリケーションとネイティブのアプリケーションは、両方の.NET Web APIを呼び出しています。

+0

私はそれが私が必要としていたものだと思います。ありがとう、ダニエル! – Jer

関連する問題