JARM の有効化

はじめに

JARM (JWT Secured Authorization Response Mode for OAuth 2.0) は、 JWT にエンコードされた認可リクエストの仕様です。レスポンスに対する署名・暗号化、送信元となる認可サーバーの認証、レスポンスの受け手の限定などが可能となり、認可レスポンスのセキュリティの向上に役立ちます。

本記事では JARM の有効化手順を説明します。

Authlete サービスへの JWK セットの登録

本稿では、Authlete サービスに JWK セットが登録されていることを前提とします。登録手順についてはナレッジベースの関連記事 をご参照ください。次のスクリーンショットは、JWK セットが登録された状態の例です。

enabling-jarm_1
JWK セットの内容

クライアントへの認可レスポンスに対する署名の有効化

次に、上記サービスの「開発者コンソール」にログインすると、「アプリ一覧」として、そのサービスのクライアントのリストが表示されます。JARM 準拠の認可レスポンスを要求する可能性のあるクライアントの、「編集」ボタンをクリックします。

enabling-jarm_2
アプリ一覧

認可タブに移動すると、「認可エンドポイント」セクションの「認可レスポンスの署名アルゴリズム」があります。登録済みの鍵に適合する、適切な値を選択してください。本項の例では、サービスに唯一登録されているアルゴリズムである “ES256” を選択します。

enabling-jarm_3
認可レスポンスの署名アルゴリズム

設定の確認

以上により、Authlete サービスに対する基本的な JARM の設定が完了し、response_mode=jwt のような JARM のパラメーターを含む認可リクエストに対応できるようになりました。Authlete サービスはリクエストパラメーターに従い、たとえば次のような認可レスポンスを返却することになります。

https://client.example.org/cb/example.com
 ?response=eyJraWQiOiIxIiwiYWxnIjoiRVMyNTYifQ.
  eyJhdWQiOiIxNzU2NjE2MDYwMzc2NiIsImNvZGUiOiJF
  V2RYbkE0TEZYRFNGTGVnTmlMTVRoUHlITjhwTUlaelVN
  Tmo5N28wbnBJIiwiaXNzIjoiaHR0cHM6Ly9hcy5leGFt
  cGxlLmNvbSIsImV4cCI6MTU5MTA4MDk0OH0.
  dGi84kTrwX-5bX3S0Mca7_2f7GhEnGt6Dj01b60s67GP
  VJkwzuEr9y8C2KLgEpkS35zZO41mmRNkpRo8NUlkvw