创建客户端密钥 JWT 和私钥 JWT
使用本主题中的信息创建客户机密钥 JWT 和专用密钥 JWT 进行客户机认证。
JWT 持有者有效内容声明
JWT 持有者有效内容必须包含以下声明:| 声明名称 | 描述 | 有效值 |
|---|---|---|
| iss | 发出 JWT 的实体的唯一标识 | 客户机标识。 |
| sub | 主体主题标识 | 客户机标识。 |
| 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 标识 | 随机生成的不透明字符串。 |
| 声明名称 | 描述 | 有效值 |
|---|---|---|
| nbf | JWT 不早于时间 | 按 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"
}
```
支持的算法
| 用途 | 支持的算法 |
|---|---|
| 用于签名的 JWS“alg” | 'RS256', 'RS384', 'RS512', 'HS256', 'HS384', 'HS512', 'PS256', 'PS384', 'PS512 |
jwks_uri 中发布用于对 JWT 进行签名的任何密钥。 如果 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。