2017-11-01 5 views
1

バックグラウンドサービスのAPIアクセスを有効にする必要があり、手動のユーザーログインが不要になります。アプリケーションはJavascript(Angular)で書かれています。クライアントクレデンシャル要求中に 'Access-Control-Allow-Origin'ヘッダーエラーが発生しない

私は以下のthis articleの同意プロセス/アクセストークンの手順に従っていますが、CORSエラーが発生しています。

管理者の同意の確認 - ワーキング

enter image description here

アクセストークンの要求 -

を失敗同意が私は次のステップ

let payload = { 
    client_id: 'CLIENT_ID_HERE', 
    scope: 'https://graph.microsoft.com/.default', 
    client_secret: 'CLIENT_SECRET_HERE', 
    grant_type: 'client_credentials' 
}; 
$http.post('https://login.microsoftonline.com/' + tenant + '/oauth2/v2.0/token', payload); 

に使用するテナントを返します。 Failed request

ご協力いただければ幸いです。

答えて

2

まず、は、クライアントの秘密をフロントエンドのJavaScriptに入れません。

クライアントクレデンシャルの許可フローは、フロントエンドからは使用されません。だからあなたはCORSエラーを取得します。

アプリの暗黙的な許可フローを有効にする必要があります。ここをクリック:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-implicit

次に、AADからの最初の応答でアクセストークンを取得できます。または、非表示のiframe経由でリクエストすることもできます。 Msal.jsはここでたくさんお手伝いします:https://github.com/AzureAD/microsoft-authentication-library-for-js

関連する問題