OAuth2 Provider Module の例

OAuth2 Provider Module では、Mule Runtime Engine (Mule) アプリケーションを OAuth2 認証フレームワークの認証マネージャーとして設定できます。 このモジュールを使用して、アプリケーションは、クライアントの登録、登録済みのクライアントの認証、トークンの付与、トークンの検証、クライアントの削除を行うことができます。 次の例は、クライアントログイン情報を作成および検証する ​Create client​ および ​Validate token​ 操作の設定方法を示しています。

OAuth プロバイダーの Studio フロー
  1. Studio で、HTTP ​[Listener]​ 操作を Studio キャンバスにドラッグします。

  2. [Path (パス)]​ を ​/createClient​ に設定します。

  3. [Connector configuration (コネクタ設定)]​ を目的の HTTP 設定に設定します。

  4. [Create client]​ 操作を HTTP ​[Listener]​ 操作の横にドラッグします。

  5. [Module configuration (モジュール設定)]​ を目的の OAuth2 Provider Module 設定に設定します。

  6. 次のパラメーターを設定します。

    • Client id (クライアント ID)​: attributes.headers.client_id

    • Type (種別)​: CONFIDENTIAL

    • Secret (シークレット)​: attributes.headers.client_secret

    • Client name (クライアント名)​: attributes.headers.client_name

    • Description (説明)​: ""

    • Principal (プリンシパル)​: ""

    • Redirect uri (リダイレクト URI)​: "demo.com"

    • Authorized grant types (認証済み許可種別)​: "CLIENT_CREDENTIALS"

  7. [Set Payload]​ コンポーネントを ​[Create client]​ 操作の横にドラッグします。

  8. [Value (値)]​ を ​Client Created​ (クライアント作成済み) に設定します。

  9. 新しい HTTP ​[Listener]​ ソースを新しいフローにドラッグします。

  10. [Path (パス)]​ を ​/validate​ に設定します。

  11. [Validate token]​ 操作を ​[Listener]​ ソースの横にドラッグします。

  12. [Module configuration (モジュール設定)]​ を目的の OAuth2 Provider Module 設定に設定します。

  13. [Access token (アクセストークン)]​ を ​(attributes.headers['authorization'] splitBy ' ')[1]​ に設定します。

  14. [Transform Message]​ コンポーネントを ​[Validate token]​ 操作の横にドラッグします。

  15. 出力表示に次の DataWeave コードを追加します。

    %dw 2.0
    output application/json
    ---
    {
    	"Message": "Successfully validated"
    }
    dataweave
  16. Mule アプリケーションを保存して実行します。

Mule アプリケーションのテスト

Mule アプリケーションをテストするには、次のコマンドを実行します。

http://oauthtest01.us-e2.cloudhub.io/createClientLeaving the Site​ メソッド: GET パラメーター: client_id、client_secret、client_name

たとえば、​client_id = 123​、​client_secret = 1234​、​client_name = abc​ の値で GET パラメーター項目を設定します。

次の結果が返されます。

{
  "Message": "Client Created"
}
xml

http://oauthtest01.us-e2.cloudhub.io/tokenLeaving the Site​ メソッド: POST パラメーター: client_id、client_secret、grant_type

たとえば、​client_id = 123​、​client_secret = 1234​、​grant_type = CLIENT_CREDENTIALS​ の値で POST パラメーター項目を設定します。

次の結果が返されます。

{"access_token":"s143Barj7xpQP3_AGWvHRyZxFNEcgJ55XB1I3Yquj8kgem2qxqa5TpouLG3gQCr2sj170Ci1MqLd5gzF4AUpRQ",
"token_type":"Bearer",
"expires_in":86400}
xml

別のオプションとして、検証コマンドを実行します。 ​http://oauthtest01.us-e2.cloudhub.io/validateLeaving the Site​ メソッド: GET パラメーター: Authorization

  1. 応答データから受け取った ​token_type​ (つまり、「Bearer」) を配置します。

  2. スペースを追加します。

  3. 応答データから受け取った ​access_token​ を追加します。

たとえば、Authorization が Bearer に等しいとします。

Bearer s143Barj7xpQP3_AGWvHRyZxFNEcgJ55XB1I3Yquj8kgem2qxqa5TpouLG3gQCr2sj170Ci1MqLd5gzF4AUpRQ
xml

次の結果が返されます。

{
  "Message": "Successfully validated"
}
xml

応答が無効な場合、結果は次のようになります。

The token received: s143BarjxpQP3_AGWvHRyZxFNEcgJ55XB1I3Yquj8kgem2qxqa5TpouLG3gQCr2sj170Ci1MqLd5gzF4AUpRQ, is not valid.
xml