JWTベアラー・トークンを作成する
このトピックの情報を使用して、JWT ベアラー・フローで使用される JWT ベアラー・トークンを作成します。
JWT ベアラー・ペイロードのクレーム
JWT ベアラー・ペイロードには、以下のクレームを含める必要があります。| クレーム名 | 説明 | 有効値 |
|---|---|---|
| iss | JWT を発行したエンティティーの固有 ID | JWT 発行者の有効な URI。 |
| sub | 主要なサブジェクト ID | ユーザーの固有 ID。 |
| aud | 呼び出される OIDC エンドポイント | https://<tenantId>/oidc/endpoint/default/token |
| exp | JWT の有効期限 | UTC で計測される 1970-01-01T0:0:0Z からの秒数。 注: JWTの有効期限は、86400秒を超えて設定することはできません。 |
| jti | JWT の ID | ランダムに生成される不透明ストリング。 |
| クレーム名 | 説明 | 有効値 |
|---|---|---|
| nbf | JWT の not before 時刻 | UTC で計測される 1970-01-01T0:0:0Z からの秒数。 |
| iat | JWT の作成時間 | UTC で計測される 1970-01-01T0:0:0Z からの秒数。 注: JWTの有効期限は、過去から86400秒を超えてはなりません。 |
| realm | 主要なサブジェクト・レルム | 「sub」が属している ID ソースのレルム。 |
JWT ベアラー・ペイロードの例
```
{
"iss": "https://www.relyingparty.com",
"sub": "user@idsource.com",
"aud": "https://sometenant.ice.com/oidc/endpoint/default/token",
"exp": 1324298520,
"jti": "araiov8werli2awerlj"
}
```
サポート対象アルゴリズム
| 目的 | サポート対象アルゴリズム |
|---|---|
| 署名のための JWS の「alg」 | 'RS256', 'RS384', 'RS512', 'HS256', 'HS384', 'HS512', 'PS256', 'PS384', 'PS512' |
| キー管理のための JWE の「alg」 | 「RSA1_5」、「RSA-OAEP」、「RSA-OAEP-256」、「A128KW」、「A192KW」、「A256KW」、「A128GCMKW」、「A192GCMKW」、「A256GCMKW」 |
| コンテンツ暗号化のための JWE の「enc」 | 'A128GCM', 'A192GCM', 'A256GCM' |
注: JWTベアラーが署名済みかつ暗号化されている場合、外側のJWTであるJWEヘッダーは、コンテンツタイプヘッダーを「JWT」に設定することで、それがネストされたJWTであることを示す必要があります。 例えば、
'cty':'JWT'などです。jwks_uri で公開されていることを確認してください。 jwks_uri を使用できない場合は、パブリック証明書をシステムに追加します。 「証明書の管理」 を参照してください。JWTベアラーが暗号化されており、非対称アルゴリズムが使用されている場合、 OpenID のConnect Providerのjwksエンド https://<tenantId>/v1.0/endpoint/default/jwks ポイントで公開されている公開鍵を使用できます。 署名または暗号化された JWT に、使用される鍵を一意的に識別するための「kid」ヘッダーが含まれていることを確認してください。
要求の例
JWT ベアラー・トークンが作成された後に、トークン・エンドポイントに要求を送信して JWT ベアラー・トークンをアクセス・トークンと交換することができます。```
curl -ki https://<tenantId>/v1.0/endpoint/default/token
-d "grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt
-bearer&client_secret=<secret>&client_id=<clientId>
&scope=openid+email&assertion=eyJhbGciOiJFUzI1NiIsImtpZCI6IjE2In0.eyJpc3Mi..."
```