2016-12-14 22 views
2

以下のPOSTコールが必要です。しかし、正しいクライアントIDとシークレットIDを提供しても、私の呼び出しは拒否されています。Microsoft Graph REST API無効なクライアントシークレット

curl POST https://login.microsoftonline.com/f02....e3/oauth2/token 
-H 'Content-Type: application/x-www-form-urlencoded' --data 'grant_type=authorization_code&redirect_uri=https://requestb.in/ac& 
source=https://graph.microsoft.com&client_id=1e1....-913d9 
&client_secret=YmbSFYz.....4Uk=&scope=mail.read&code=AaAAA........on0a569' 

これは私が受け取るエラーです:

curl: (6) Could not resolve host: POST 
    {"error":"invalid_client","error_description":"AADSTS70002: 
Error validating credentials. AADSTS50012: Invalid client secret is 
provided.\r\nTrace ID: 78d...a2b\r\nCorrelation ID: 
01....ab2\r\nTimestamp: 2016-12-14 01:46:47Z","error_codes":[70002,50012],"timestamp":"2016-12-14 01:46:47Z","trace_id":"78d....a2b","correlation_id":"018.....ab2"} 

どのように私はこの問題を解決するだろうか?

EDIT:私はthis documentation

+0

あなたのアプリケーションを登録したときに入力したものと同じ 'redirect_uri'がありますか? –

+0

はいです。彼らが違うなら、それは問題ですか? – WowBow

答えて

4

にあなたが提供ポストは、AAD V2エンドポイントを活用している第二のセクション(すなわちトークンの取得)を達成しようとしています。しかし、コードスニペットによれば、V1エンドポイントhttps://login.microsoftonline.com/f02....e3/oauth2/tokenを使用していました。 V1エンドポイント経由でアクセストークンを取得する場合は、https://graph.microsoft.io/en-us/docs/authorization/app_authorizationを参照してください。 V2の認可エンドポイントについては

、あなたが使用しているエンドポイントをチェックアウトすることがあります。

GET https://login.microsoftonline.com/common/oauth2/v2.0/authorize?...

POST https://login.microsoftonline.com/common/oauth2/v2.0/token

そしてまた、それはv2.0の広告アプリケーションが必要です:

この記事はv2.0の登録を前提としているため、Application Registration Portalにあなたのアプリを登録します。

+0

ありがとうございます。最初にv2.0で認証コードを試したところ、次のエラーが見つかりました:AADSTS70001:アプリケーション '1e15 ... 53d9'はこのAPIバージョンではサポートされていません。 – WowBow

+0

これは、ADアプリケーションがv2.0エンドポイントをサポートしていないことを意味します。 v2.0アプリケーションを登録するには、OfficeとOfficeの両方をサポートできる限り、https://docs.microsoft.com/en-us/azure/active-directory/active-directory-v2-app-registration –

+0

を参照してください。 Outlookの場合、v2を使用するようにアプリを再構成できます。 – WowBow

1

私はNPMパッケージを使用しています:

Microsoft Azure Active Directory Passport.js Plug-In

をv1のテナント固有のエンドポイントに。

Microsoftに正常にログインした後、最初は「無効なクライアントの秘密」と同じエラーメッセージが表示されました。

私はクライアントシークレットとして「アプリケーションID」を使用していました。その後、私はあなたがMicrosoft Azure

マイクロソフトのAzureポータル

で「設定」タブに移動して、新しい「キー」を作成する必要があることを発見しました。あなたがキーの名前を付けることは重要ではありません。 「保存」ボタンをクリックすると、キーの値がWebフォームに入力されます。これをすぐにコピーしてください。これは、Webページが更新されたときに再び表示されないためです。

これは、設定に追加する必要がある「クライアントシークレット」です。

関連する問題