WebAPI と通信する Angular アプリケーションがあり、ユーザーは Azure Active Directory に対して認証されます
https://github.com/Azure-Samples/active-directory-angularjs-singlepageapp-dotnet-webapiのサンプルに従い、AD に対してユーザーを認証し、それを Web API に渡すことができました。
ただし、Web API で Graph API にアクセスし、現在のユーザー プロファイル情報を取得したいと考えています。どうすれば設定できますか?
セットアップに関するより多くのコンテキストを提供するために更新されました。
私は、SPA アプリケーションを作成する html および javascript ファイルをホストする Web サイト (site.domain1.com) を持っています。api.domain2.com で Web API をホストしています。認証は、ADAL.js と angular-adal を使用した OAuth 暗黙的フローを使用して Azure AD に対して行われます。API の accessToken を取得するために SPA で認証したいと考えています。そして、現在ログインしているユーザーに関する詳細情報を取得するために、Graph API をクエリするリクエストの一部として API を使用したいと考えています。
API の accessToken を取得でき、現在クレーム プリンシパルを生成しています。問題は、Web API にある現在の ID で Graph API をクエリすることです。
アップデート:
Web API に管理者権限を付与したくありませんが、ブラウザーから Web サイトと Web API に、"ユーザー プロファイルの読み取り" のみに対するユーザーの同意を転送したいと考えています。
ここにある On Behalf Of サンプルと同様のアプローチを使用しましたhttps://github.com/Azure-Samples/active-directory-dotnet-webapi-onbehalfof
私のテストADでは機能し、本番ADでは機能しなかったという問題。ユーザーはGraph APIを使用する前にアプリを集中させる必要があると言っています。 )。最終的に、Web サイトと Web API 用の Azure AD アプリケーションをマージすることになり、Bootstrap トークンを使用した同じ On Behalf Of アプローチで機能しました。しかし、2つのアプリケーションで正しく動作させる方法を知りたいです。