> ## Documentation Index
> Fetch the complete documentation index at: https://developers.authlete.com/llms.txt
> Use this file to discover all available pages before exploring further.

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

> Authleteに登録するためにOAuth / OIDCクライアントのJWKセットを設定する方法について説明します。

<Info>
  For **Authlete 2.x** documentation, see [2.x version](/v2/configuration-reference/discovery-metadata/jwk-set-for-client).
</Info>

## はじめに

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

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

***

> 本セクションは補助的な説明です。以下の JWK セットは実環境に対して適用しないでください。

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

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

| 項目     | 値                       |
| ------ | ----------------------- |
| 鍵タイプ   | **EC (Elliptic Curve)** |
| 曲線     | **P-256**               |
| 鍵の用途   | **暗号**                  |
| アルゴリズム | **（なし）**                |
| 鍵の ID  | **SHA-256**             |

「生成する」ボタンを押下すると、生成された鍵が各種形式にて出力されます。以下では、このうち「公開鍵と秘密鍵を含む JWK Set」を用います。<img src="https://mintcdn.com/authlete/NmFoIJ4VSX_LOgob/img/kb/ja/deployment/security/jwk-set-for-client_1.png?fit=max&auto=format&n=NmFoIJ4VSX_LOgob&q=85&s=e44bb5f6340f4ab922d5d2b669ce1df0" alt="jwk-set-for-client_1" width="930" height="1074" data-path="img/kb/ja/deployment/security/jwk-set-for-client_1.png" />

*「公開鍵と秘密鍵を含む JWK Set」の生成*

まず、秘密鍵を削除します。上記の例では、元の JWK セットは以下の通りです。

```
{
    "keys": [
        {
            "kty": "EC",
            "d": "4AEnTq3H8gcIutIoJCCZuv9GgWdKRaoJIXQkdM8r0UA",
            "use": "enc",
            "crv": "P-256",
            "kid": "_agec7UaYVN4c3RZQJQhUuR6nFSnqEXywv3QaIfFRFk",
            "x": "ilLNQ-Lcp_t5DBs9puJVI3JhwqlMndTILjkBrNd3Dsc",
            "y": "3Uy7NIHilkOWviGXMRIl2ZUE4L7Mc8ub4VhosE3l8t8"
        }
    ]
}
```

このうち、以下を削除します。

```
"d": "4AEnTq3H8gcIutIoJCCZuv9GgWdKRaoJIXQkdM8r0UA",
```

その結果、以下のようになります。

```
{
    "keys": [
        {
            "kty": "EC",
            "use": "enc",
            "crv": "P-256",
            "kid": "_agec7UaYVN4c3RZQJQhUuR6nFSnqEXywv3QaIfFRFk",
            "x": "ilLNQ-Lcp_t5DBs9puJVI3JhwqlMndTILjkBrNd3Dsc",
            "y": "3Uy7NIHilkOWviGXMRIl2ZUE4L7Mc8ub4VhosE3l8t8"
        }
    ]
}
```

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

## JWK セットの登録

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

Authlete 管理者コンソールにて、当該クライアントの `キーマネージメント` > `JWK セット` ブレードの `一般` タブ内にある「JWK セットの内容」に追加します。詳細については「[クライアントの設定項目 - JWK セット](https://kb.authlete.com/ja/s/operations/a/client-settings)
」をご参照ください。

<img src="https://mintcdn.com/authlete/NmFoIJ4VSX_LOgob/img/kb/ja/deployment/security/jwk-set-for-client_2_v3.png?fit=max&auto=format&n=NmFoIJ4VSX_LOgob&q=85&s=df371ee3d2cf9ce2ce12a421b3988f10" alt="jwk-set-for-client_2_v3" width="1487" height="736" data-path="img/kb/ja/deployment/security/jwk-set-for-client_2_v3.png" />

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

これにより、OAuth / OIDC クライアントの JWK セットの登録が完了しました。
