クライアントシークレットJWTと秘密鍵JWTを作成する

クライアント認証用のクライアント秘密鍵 JWT および秘密鍵 JWT を作成するには、このトピックの情報を使用します。

JWT ベアラー・ペイロードのクレーム

JWT ベアラー・ペイロードには、以下のクレームを含める必要があります。
表 1. MUSTの主張
クレーム名 説明 有効値
iss JWT を発行したエンティティーの固有 ID クライアント ID。
sub 主要なサブジェクト ID クライアント ID。
aud 有効な値は、既知のエンドポイント(https://<tenantId>/oidc/endpoint/default/.well-known/openid-configuration)で公開されている認証サーバーの発行者です。 https://<tenantId>/oidc/endpoint/default
exp JWT の有効期限 UTC で計測される 1970-01-01T0:0:0Z からの秒数。
注: JWTの有効期限は、86400秒以上先には設定できません。
jti JWT の ID ランダムに生成される不透明ストリング。
JWT ベアラー・ペイロードには、以下のクレームが含まれている可能性があります。
表 2. MAYの主張
クレーム名 説明 有効値
nbf JWT の not before 時刻 UTC で計測される 1970-01-01T0:0:0Z からの秒数。
iat JWT の作成時間 UTC で計測される 1970-01-01T0:0:0Z からの秒数。
注: JWTの作成時刻は、過去86400秒以前に設定することはできません。

JWT ペイロードの例

```
{
  "iss": "29e81c80-b507-463c-b542-5a1177b37808",
  "sub": "29e81c80-b507-463c-b542-5a1177b37808",
  "aud": "https://sometenant.ice.com/oidc/endpoint/default/token",
  "exp": 1324298520,
  "jti": "araiov8werli2awerlj"
}
```

サポート対象アルゴリズム

表 3. 対応アルゴリズム
目的 サポート対象アルゴリズム
署名のための JWS の「alg」 'RS256', 'RS384', 'RS512', 'HS256', 'HS384', 'HS512', 'PS256', 'PS384', 'PS512
JWT に署名する必要があります。 JWT への署名に使用されるキーが、jwks_uri で公開されていることを確認してください。 jwks_uri を使用できない場合は、パブリック証明書をシステムに追加します。 「証明書の管理」 を参照してください。

署名された JWT に、使用される鍵を一意的に識別するための `kid` ヘッダーが含まれていることを確認してください。

要求の例

JWT トークンが作成された後、その JWT をクライアント・アサーションとして使用して、トークン・エンドポイントに要求を実行依頼することができます。
```
curl -ki https://<tenantId>/v1.0/endpoint/default/token
 -d "grant_type=password&client_id=87df91dc-63de-4765-8701-b59cc8bd9e11&scope=openid
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=eyJhbGci..."
```

client_assertion_type は常に urn:ietf:params:oauth:client-assertion-type:jwt-bearer でなければなりません。