OAuth / OIDC クライアントの JWK セット設定

はじめに


OAuth / OIDC クライアントから受信したリクエストオブジェクトの署名検証や、OAuth /OIDC クライアントに提供する ID トークンの暗号化を行うためには、署名検証・暗号化に用いるためのクライアントの公開鍵を Authlete に登録する必要があります。

本記事では、Authlete サービスに登録されている OAuth / OIDC クライアントの設定に、JWK セットを登録する方法について説明します。

JWK セットの準備



まず、OAuth / OIDC クライアント側で、公開鍵を含む(秘密鍵を含まない)JWK セットを準備します。

ここでは例として、クライアントの管理者が mkjwk.org サービスを用いて ES256 の鍵ペアを作成するとします。ここでは以下の通り選択・入力しています。

  • 鍵タイプ: EC (Elliptic Curve)
  • 曲線: P-256
  • 鍵の用途: 暗号
  • アルゴリズム: ES256
  • 鍵の ID: 2
「公開鍵と秘密鍵を含む JWK Set」の生成

生成された「公開鍵と秘密鍵を含む JWK Set」から秘密鍵を削除します。上記の例では

            "d": "sy8TQetYGy1_rziNV3HfSDNjAxy8LoYENUXUTjtICYY",

を削除した結果、以下のようになります。

{
    "keys": [
        {
            "kty": "EC",
            "use": "enc",
            "crv": "P-256",
            "kid": "2",
            "x": "sAyjj8n6w-ZyIP-ELpriYlfYADtYDcHSnH6jLDYuR9k",
            "y": "d68kVNyw5ENj5R8QB103oOU6YCaKGXbQseaeHk5GO-Q",
            "alg": "ES256"
        }
    ]
}

この JSON を、クライアントの公開鍵の JWK セットとして用います。

JWK セットの登録


公開鍵の JWK セットを、OAuth / OIDC クライアントの設定に登録します。

クライアントアプリ管理者コンソールにて、当該クライアントの「JWK セット」タブ内にある「JWK セットの内容」に追加します。詳細については「クライアントの設定項目 - JWK セット」をご参照ください。

クライアントの JWK セットの登録


これにより、OAuth / OIDC クライアントの JWK セットの登録が完了しました。
How did we do with this article?