For Authlete 2.x documentation, see 2.x version.
はじめに
本記事では、サービスに JWK セットを登録する方法について説明します。JWK セットの準備
まず何らかの方法により、JWK セットを用意します。以下は mkjwk.org サービスを用いて ES256 の鍵ペアを作成する例です。ここでは以下の通り選択・入力しています。
- 鍵タイプ: EC (Elliptic Curve)
- 曲線: P-256
- 鍵の用途: Signing
- アルゴリズム: ES256
- 鍵の ID: 1

Authlete コンソール経由での JWK セットの登録
生成された “公開鍵と秘密鍵を含む JWK Set” を、対象サービス設定のキーマネージメント > JWK Set に移動し 認可サーバー タブ内の JWK セットの内容 に追加し 「変更を保存」ボタンを押下します。

jwks_uri が認可サーバーのメタデータドキュメントに反映されます。
Authlete API 経由での JWK セットの登録
前述の Web ベースの管理者コンソールを用いる代わりに、Authlete のサービス管理 API を用いて JWK セットを登録することも可能です。以下は /service/update API にリクエストする例です。“jwks” キーの値として JWK セットを指定しています。サービス設定の更新には組織アクセストークンが必要です。1. 対象サービスの設定情報を取得
/service/get API を用いて、サービスの設定情報を取得します。2. 設定情報に新たな JWK セットを追加
以下の Key/Value を JWK セットとして、上記にて取得した JSON 形式の設定情報に追加し、それを updated-service.json として保存します。3. 新しい設定情報を用いてサービスを更新
/service/update API を用いて、上記の JWK セットを含む、新しい設定情報を読み込ませます。キーのローテーション
ダウンタイムなしにキーのローテーションを実施するには、以下の手順でキーの更新することが一般的です。jwks_uriに新しい署名用キーを追加で登録 (複数のキーが含まれる状態)- クライアントや RP の
jwks_uriキャッシュが破棄され、複数のキーが認識されるまで待つ - 署名用キーを新しいキーに切り替える
- 古い署名用キーを削除する
jwks) の更新、3 はサービスの IDトークン署名キーID (idTokenSignatureKeyId) などの更新に対応します。