暗号化した ID トークンの生成

概要


本記事では、暗号化した ID トークンを生成するための手順を示します。


JWK セットの準備



ID トークンの暗号化に用いる、クライアントの JWK セットを準備します。ここでは mkjwk.org サービスを用いて、以下の通り選択・入力しています。

  • Key Type: Elliptic Curve
  • Curve: P-256
  • Key Use: Encryption
  • Algorithm: ES256
  • Key ID: 2
JWK Keypair set の生成


生成された "Keypair set" から秘密鍵を削除します。上記の例では "d": "VYpT8aPtp3U1nyJ1-frMc8Pw01wZYN6v2D9e94JegF8", を削除した結果、以下のようになります。

{
  "keys": [
    {
      "kty": "EC",
      "use": "enc",
      "crv": "P-256",
      "kid": "2",
      "x": "X4nQU-WdtrWgUa-YjYvlPuV1goj3NZoRz8O_6gTwi7Q",
      "y": "jnNV0ME2VVpxJfgqtOBY17pGpTkL4RZDmqMs87Fl4G4",
      "alg": "ES256"
    }
  ]
}

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

クライアント設定の変更


JWK セットの登録


公開鍵の JWK セットを、暗号化した ID トークンの提供先となるクライアントの設定に登録します。クライアントアプリ管理者コンソールにて、当該クライアントの「JWK セット」タブ内にある「JWK セットの内容」に追加します。詳細については「クライアントの設定項目 - JWK セット」をご参照ください。

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


ID トークンの設定


クライアントに対する ID トークンの暗号化アルゴリズムを選択します。詳細については「クライアントの設定項目 - ID トークン」をご参照ください。

ここでは、先に登録した公開鍵に従い、以下の通り設定します。

  • ID トークンのキー暗号化アルゴリズム: ECDH_ES
  • ID トークンの本文暗号化アルゴリズム: A128CBC_HS256

以上の設定により Authlete は、このクライアントに提供する ID トークンについて、暗号化を行うようになります。
How did we do with this article?