Table of Contents
JARM (JWT Secured Authorization Response Mode for OAuth 2.0) は、 JWT にエンコードされた認可リクエストの仕様です。レスポンスに対する署名・暗号化、送信元となる認可サーバーの認証、レスポンスの受け手の限定などが可能となり、認可レスポンスのセキュリティの向上に役立ちます。
本記事では JARM の有効化手順を説明します。
本稿では、Authlete サービスに JWK セットが登録されていることを前提とします。登録手順についてはナレッジベースの関連記事 をご参照ください。次のスクリーンショットは、JWK セットが登録された状態の例です。
次に、上記サービスの「開発者コンソール」にログインすると、「アプリ一覧」として、そのサービスのクライアントのリストが表示されます。JARM 準拠の認可レスポンスを要求する可能性のあるクライアントの、「編集」ボタンをクリックします。
認可タブに移動すると、「認可エンドポイント」セクションの「認可レスポンスの署名アルゴリズム」があります。登録済みの鍵に適合する、適切な値を選択してください。本項の例では、サービスに唯一登録されているアルゴリズムである “ES256” を選択します。
以上により、Authlete サービスに対する基本的な JARM の設定が完了し、response_mode=jwt のような JARM のパラメーターを含む認可リクエストに対応できるようになりました。Authlete サービスはリクエストパラメーターに従い、たとえば次のような認可レスポンスを返却することになります。
https://client.example.org/cb/example.com
?response=eyJraWQiOiIxIiwiYWxnIjoiRVMyNTYifQ.
eyJhdWQiOiIxNzU2NjE2MDYwMzc2NiIsImNvZGUiOiJF
V2RYbkE0TEZYRFNGTGVnTmlMTVRoUHlITjhwTUlaelVN
Tmo5N28wbnBJIiwiaXNzIjoiaHR0cHM6Ly9hcy5leGFt
cGxlLmNvbSIsImV4cCI6MTU5MTA4MDk0OH0.
dGi84kTrwX-5bX3S0Mca7_2f7GhEnGt6Dj01b60s67GP
VJkwzuEr9y8C2KLgEpkS35zZO41mmRNkpRo8NUlkvw