2017-02-01 9 views
1

私はMicrosoft Graph APIに対してコーディングしています。私はOAuthトークンを生成する能力を証明しようとしています。私はPostmanを使用しており、私のアプリケーションはAzure Active Directoryでホストされています。 Scopes - 私はUser.readを渡そうとしていますが、Postmanはトークンを生成していません。PostityからMicrosoft Graph APIを確認し、OAuthトークンを生成する

マイセッティング:

認証URL:https://login.windows.net/ {my_tenent} /のOAuth2は/許可

アクセスURL:https://login.windows.net/ {my_tenent} /のOAuth2 /トークン

範囲:User.readAll

これらは、OAuthトークンを生成するために渡される正しい値ですか?

答えて

3

v1とv2のエンドポイントをここで混在させているようですね。私はここにあなたを助けるかもしれないMicrosoft v2 Endpoint Primerを書いた。

v2での認証のURIはhttps://login.windows.net/{my_tenent}/oauth2/authorizeではなくhttps://login.microsoftonline.com/common/oauth2/v2.0/である必要があります。

グラフでスコープを要求するときは、必ずスコープ名そのものだけでなく、完全なURIを使用してください。たとえば、user.readhttps://graph.microsoft.com/user.readとしてください。複数のスコープはスペースで区切られており、user.readmail.readの要求は"https://graph.microsoft.com/mail.read https://graph.microsoft.com/user.readと書式設定されます。

v1エンドポイントを使用する場合は、OAUTHワークフローの一部としてスコープを要求しないでください。 v1では、アプリケーションを登録するとAzure Active Directoryでスコープが定義されます。

使用するかわからない場合は、Deciding between the Azure AD and Azure AD v2.0 endpointsをご覧ください。一般的に、私はv2を、最終的に従来のv1の実装に取って代わるものとして推奨する傾向があります。しかし、現時点でv1しかサポートしていない古いAPI(EWS、SfBなど)がありますので、あなたの選択がなされるケースがあります。

3

Microsoft Graphへのアクセス許可を要求するようにアプリケーションを設定してください。

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-integrating-applications

"パーミッション他のアプリケーションへ" を参照してください。動的な同意をサポートするV2エンドポイントを使用している場合を除き、アプリケーションでMicrosoft Graphを呼び出すスコープを静的に選択する必要があります。

これが役立つ場合はお知らせください。

2

私はこの問題をほぼ一日中戦い、最終的にそれを理解しました。これらは、私のために働くの設定です:

  • トークン名:[あなたが欲しいもの]
  • 認証URL:https://login.windows.net/common/oauth2/authorize?resource=https://graph.microsoft.com
  • アクセストークンのURL:https://login.windows.net/common/oauth2/token?resource=https://outlook.office365.com/(私はリフレッシュが動作するとは思わない、が)
  • クライアントID:シークレット[あなたのアプリのクライアントID]
  • クライアント:[あなたのアプリのクライアントシークレット]
  • 範囲:私はここでスコープの束を持っているが、それらは無視されているように見えます。スコープが
  • グラントタイプのアプリコンソールで設定する必要があります:あなたは「リクエストトークン」

    をクリックすると、認証コード
  • チェック「リクエストのアクセストークンローカルで」すべてが動作する場合

、ログイン画面を取得する必要があります

+0

スコープが無視される理由は、古いv1エンドポイントを呼び出していることです。スコープは、v2エンドポイントでのみ動的に定義されます。 –

関連する問題