OAuth2 Provider Module では、Mule Runtime Engine (Mule) アプリケーションを OAuth2 認証フレームワークの認証マネージャーとして設定できます。 このモジュールを使用して、アプリケーションは、クライアントの登録、登録済みのクライアントの認証、トークンの付与、トークンの検証、クライアントの削除を行うことができます。 次の例は、クライアントログイン情報を作成および検証する Create client および Validate token 操作の設定方法を示しています。
-
Studio で、HTTP [Listener] 操作を Studio キャンバスにドラッグします。
-
[Path (パス)] を
/createClient に設定します。 -
[Connector configuration (コネクタ設定)] を目的の HTTP 設定に設定します。
-
[Create client] 操作を HTTP [Listener] 操作の横にドラッグします。
-
[Module configuration (モジュール設定)] を目的の OAuth2 Provider Module 設定に設定します。
-
次のパラメーターを設定します。
-
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"
-
-
[Set Payload] コンポーネントを [Create client] 操作の横にドラッグします。
-
[Value (値)] を
Client Created (クライアント作成済み) に設定します。 -
新しい HTTP [Listener] ソースを新しいフローにドラッグします。
-
[Path (パス)] を
/validate に設定します。 -
[Validate token] 操作を [Listener] ソースの横にドラッグします。
-
[Module configuration (モジュール設定)] を目的の OAuth2 Provider Module 設定に設定します。
-
[Access token (アクセストークン)] を
(attributes.headers['authorization'] splitBy ' ')[1] に設定します。 -
[Transform Message] コンポーネントを [Validate token] 操作の横にドラッグします。
-
出力表示に次の DataWeave コードを追加します。
%dw 2.0 output application/json --- { "Message": "Successfully validated" } -
Mule アプリケーションを保存して実行します。
Mule アプリケーションのテスト
Mule アプリケーションをテストするには、次のコマンドを実行します。
http://oauthtest01.us-e2.cloudhub.io/createClient
メソッド: GET
パラメーター: client_id、client_secret、client_name
たとえば、client_id = 123、client_secret = 1234、client_name = abc の値で GET パラメーター項目を設定します。
次の結果が返されます。
{
"Message": "Client Created"
}
http://oauthtest01.us-e2.cloudhub.io/token
メソッド: 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}
別のオプションとして、検証コマンドを実行します。
http://oauthtest01.us-e2.cloudhub.io/validate
メソッド: GET
パラメーター: Authorization
-
応答データから受け取った
token_type (つまり、「Bearer」) を配置します。 -
スペースを追加します。
-
応答データから受け取った
access_token を追加します。
たとえば、Authorization が Bearer に等しいとします。
Bearer s143Barj7xpQP3_AGWvHRyZxFNEcgJ55XB1I3Yquj8kgem2qxqa5TpouLG3gQCr2sj170Ci1MqLd5gzF4AUpRQ
次の結果が返されます。
{
"Message": "Successfully validated"
}
応答が無効な場合、結果は次のようになります。
The token received: s143BarjxpQP3_AGWvHRyZxFNEcgJ55XB1I3Yquj8kgem2qxqa5TpouLG3gQCr2sj170Ci1MqLd5gzF4AUpRQ, is not valid.