Mule OpenIDプロバイダーを作成してMuleのOIDCアクセストークン検証ポリシーを利用する

Stay hungry. Stay foolish. Your time is limited, so don't waste it living someone else's life.

Mule OpenIDプロバイダーを作成してMuleのOIDCアクセストークン検証ポリシーを利用する

はじめに

既に稼働しているOpenIDプロバイダーを利用してOIDCアクセストークン適応ポリシーを利用する場合、既存のクライアントIDをMuleに登録できないという問題が発生しる。今回は、その前段として既存MuleアプリケーションでモックレベルのOpenIDプロバイダーを構築し、OIDCアクセストークン適応ポリシーが動くか確認した。
成功すれば、一時的に動的クライアント登録APIを切り替えることで既存のクライアントIDを利用できるようにしたい。

目次

下記の手順で構築する。

  1. OpenIDプロバイダのAPI仕様を準備する
  2. Muleアプリケーションを実装する
  3. クライアントプロバイダーを設定する
  4. 環境に割り当てをする
  5. APIにクライアントプロバイダーを割り当てる
  6. APIにOIDCアクセストークン適応ポリシーを割り当てる
  7. クライアントアプリケーションを登録する
  8. 動作を確認する

手順説明

1.OpenIDプロバイダのAPI仕様を準備する

OktaのOpenIDプロバイダーを見本に、API仕様を作成する。

GitHubソース

#%RAML 1.0
title: OpenID provider
version: v0

/oauth2/default/.well-known/openid-configuration:
  get:
    responses:
      200:
        body:
          application/json:
            example: !include examples/metadata.json

/oauth2/v1/clients:
  post:
    headers:
      authorization: string
    body:
      application/json:
        properties:          
          client_name:
            type: string
    responses:
      201:
        body:
          application/json:
            example: !include examples/clients_response.raml
      403:
        body:
          application/json:
            example: !include  examples/clients_forbidden_response.json
  
/oauth2/default/v1/introspect:
  post:
    body:
      application/x-www-form-urlencoded:
        properties:
          client_id:
            type: string
          client_secret:
            type: string
          token: 
            type: string
    responses:
      200:
        body:
          application/json:
            example: !include examples/introspection_response.json

2.Muleアプリケーションを実装する

3.クライアントプロバイダーを設定する

Name: {}
Dynamic Client Registration:
  Issuer: https://{domain}/oauth2/default
  Client Registration URL: https://{domain}/oauth2/v1/clients
  Authorization Hader: SSWS XXXXX
Token Introspection Client:
  Client ID: XXXXX
  Client Secret: XXXXX
OpenID Connect Authorization URLs:
  Authorize URL: https://{domain}/oauth2/default/v1/authorize
  Token URL: https://{domain}/oauth2/default/v1/token
  Token Introspection URL: https://{domain}/oauth2/default/v1/introspect

4.環境に割り当てをする

5.APIにクライアントプロバイダーを割り当てる

6.APIにOIDCアクセストークン適応ポリシーを割り当てる

7.クライアントアプリケーションを登録する

8.動作を確認する

OIDCアクセストークン適応ポリシーでトークンの有効性とクライアントIDチェックを行い。正常にAPIの結果を確認できた。

さいごに

いかがだったでしょうか?モックレベルのMuleアプリケーションのOpenIDプロバイダーを作成しOIDCアクセストークン適応ポリシーが動くことが確認できました。
ぜひ、活用してみてください。では