OAuth 2.0 ポリシーの前提条件

OAuth 2.0 ポリシーを使用するための前提条件を次に示します。

  • API を作成または管理するための必要な権限がある

  • 関連付けられたリソースを保護するようにポリシーを API インスタンスに適用する

  • API プラットフォームで作成され、API インスタンスに登録されたクライアントアプリケーションがある

  • クライアントアプリケーションのログイン情報に基づいてトークンを発行し、そのトークンを検証できる OAuth 2.0 プロバイダがある

    • Mule OAuth 2.0 プロバイダを使用している場合、組織のログイン情報を使用してランタイムも正しく設定されている必要があります。

  • [API インスタンス RAML ベース] OAuth ダンス機能を備えた API Console を使用する場合、RAML でセキュリティスキーマを指定する必要があります。

リソースが OAuth トークン適用ポリシーで保護されている場合、保護されたリソースに送信するすべての要求内で OAuth トークンをクエリパラメータまたは認証ヘッダーとして指定する必要があります。この使用方法についての概要を次の表に示します。

トークンを含める場所 注意事項

クエリパラメータ

?access_token=123

URI の一部として含めます

認証ヘッダー

Authorization:Bearer 123

ヘッダーはキーと値のペアで構成されます。 ​"Bearer" + <space> + <token, for example, 123>

API インスタンスが RAML ベースの場合、保護されたリソースを、OAuth により保護されているとして宣言し、適用されているポリシーを API Consol が認識できるようにします。

OAuth トークン適用ポリシーにより保護されたリソースを RAML/OAS 定義で宣言することは、そのポリシーが実際に適用されることを意味するものではありません。

RAML securitySchemes 定義内に承認およびアクセストークンの URI を含めます。

また、保護するリソースおよびメソッドのメソッド名の後に securedBy ノードを追加します。

#%RAML 1.0
title: Interop Testing
version: v1.0
baseUri: http://127.0.0.1:8081/api
...
securitySchemes:
  oauth_2_0:
        description: |
            Mule OAuth 2.0.
        type: OAuth 2.0
        describedBy:
            headers:
                Authorization:
                    description: |
                      Used to send a valid OAuth 2 access token. Do not use
                      with the "access_token" query string parameter.
                    type: string
            queryParameters:
                access_token:
                    description: |
                      Used to send a valid OAuth 2 access token. Do not use together with
                      the "Authorization" header
                    type: string
            responses:
                401:
                    description: |
                        Bad or expired token.
                403:
                    description: |
                        Bad OAuth request.
        settings:
          authorizationUri: http://0.0.0.0:8081/authorize
          accessTokenUri: http://0.0.0.0:8081/access-token
          authorizationGrants: [authorization_code, password, client_credentials, implicit]
...
/users:
  get:
    securedBy: [oauth_2_0]

関連情報