2017-08-03 4 views
1

msal.jsを使用してユーザーを認証するSPAが、Application Registration Portalに登録されたアプリに対して作成されています。それは正常にトークンを取得し、これまでのところすべて正常です。SPAでMicrosoft Graphを認証し、Web APIでトークンを使用する

次に、ユーザーの代わりにMicrosoft Graphへの要求を行うためにSPAからのトークンを使用する必要があるASP.NET Web APIセットアップがあります。これが問題になる場所です。

これまで私はAPIにOWINミドルウェアを設定しましたが、グラフにリクエストする前にトークンを検証する必要がありますが、試しても何も問題はありません。私はUseOpenIdConnectAuthenticationUseOAuthBearerAuthenticationUseJwtBearerAuthenticationを試しましたが、まだ成功していません。 SPAとAPIは同じクライアントIDを使用し、発行者はhttps://login.microsoftonline.com/common/v2.0に設定されています。

私はMSからの多くのSOの質問とサンプルを読んだことがありますが、この特定の設定には何も触れていないようです。 thisによると、少なくともそれは可能だと思いますか?ここで

は、私が使用しているnugetパッケージです:私は正しいパッケージを使用して

<package id="Owin" version="1.0" targetFramework="net452" /> 
    <package id="Microsoft.Owin" version="3.1.0" targetFramework="net452" /> 
    <package id="Microsoft.Owin.Security" version="3.1.0" targetFramework="net452" /> 
    <package id="Microsoft.Owin.Security.Jwt" version="3.1.0" targetFramework="net452" /> 
    <package id="Microsoft.Owin.Security.OAuth" version="3.1.0" targetFramework="net452" /> 
    <package id="Microsoft.Owin.Security.OpenIdConnect" version="3.1.0" targetFramework="net452" /> 

アム、それはこのようにそれを設定することは可能でもありますか?私が間違っていることについていくつかの指針を愛するだろう。

ありがとうございます!

答えて

1

この問題は、「OAuth 2 On-Behalf-Of flow」によって正確に解決されます。これは、AAD V2 App Model hereについて文書化されています。

OAuth 2.0のオン代理-の流れ アプリケーションが順番に 別のサービス/ Web APIを呼び出す必要があるサービス/ Web APIを呼び出すユースケースを提供しています。アイデアは、委任されたユーザー のIDとアクセス許可を要求チェーンを通じて伝播することです。 中間層サービスがダウンストリーム サービスに認証された要求を行うには、ユーザーに代わってAzure Active ディレクトリ(Azure AD)からのアクセストークンを保護する必要があります。

+1

APIでトークンの検証がうまくいかなかったことがわかりましたが、あなたのリンクはオン - 代償フローを正しく設定する上で大きな助けになりました!どうもありがとう! – awnton

関連する問題