2017-05-05 11 views
0

Agere2プロジェクトでADALライブラリを使用して、REST呼び出しを使用して情報を取得するためにWebAPIを呼び出して認証した後、Azure ADに対してユーザーを認証します。これらはすべてAngularJS-AzureAD-WebAPIのシナリオでうまくいきます。ADAL Angular2 appidがJWTトークンにありません(無許可の応答)

は、サンプルプロジェクトを作成するために、MSの記事に続く呼び出しを受けhttps://blogs.msdn.microsoft.com/premier_developer/2017/04/26/using-adal-with-angular2

WebAPIのはAngular2プロジェクトをsfromますが、要求は匿名として認証トークンを持っています。 JWTがappid値を失っていることと、aud属性がアプリケーションIDであるGUIDを保持していることが判明しました。

ワーキングコールJWT:(WebAPIのにAngularJS)

APPID:someone.onmicrosoft.com/CortanaWebAPI

コールJWTを動作していない:Azureの
AUDを登録してネイティブアプリケーションのGUID (Angular2 to webAPI)

appid:このプロパティのエントリなし
AUD:Azureの

に登録ネイティブアプリケーションアダル設定のGUIDは

const endpoints = { 
 
“https://localhost:44383/”: “http://someone.onmicrosoft.com/CortanaWebAPI” 
 
}; 
 
public get getAdalConfig(): any { 
 
return { 
 
tenant: ‘someone.onmicrosoft.com’, 
 
clientId: ‘9d9cd8dd-087a-4e87-b3f9-6e7ded2b5e82’, 
 
redirectUri: window.location.origin + ‘/’, 
 
postLogoutRedirectUri: window.location.origin + ‘/’, 
 
endpoints: endpoints 
 
}; 
 
}

なぜこれが起こっているわからない、すべてのヘルプは大歓迎します。

答えて

0

問題は開発しているクライアントのタイプに関連していません。これは、開発中のトークン(id_tokenまたはaccess_token)によって異なります。

AFAIK、appidクレームはaccess_tokenでのみ発行されます。この問題を解決するには、id_tokenの代わりにaccess_tokenを取得する必要があります。 audの請求は、トークンの要求を送信するときにリソースまたはスコープパラメータに依存します。ウェブAPIプロジェクトに対応するaudを設定してください。

+0

Web APIはAzureにAPiアプリケーションとして、Angular2はネイティブアプリとして登録されています。私は、Angal2プロジェクトでそれを行う方法がわからない、adalサービスにHTTPサービスを注入することに悩まされていると思います。または、Adalサービスに追加しない "ProtectedResourceInterceptor"に関連する可能性があります。私はこのサンプルコードを使用しています。https://github.com/vsaroopchand/angular2-seed –

+1

はい、リンクのコードサンプルはアクセストークンを注入しません。 Azure AD Graphを呼び出すコードサンプル[here](https://github.com/VitorX/angular2-adaljs-graph)を参照できます。問題があればお気軽に教えてください。 –

関連する問題