jwt-validate
在允许访问 API 之前,请使用 验证 JWT 安全策略来启用对请求中的 JSON Web 令牌 (JWT) 的验证。
网关支持
| 网关 | 策略版本 |
|---|---|
| DataPower® Gateway (v5 compatible) | 1.0.0 |
| DataPower API Gateway | 2.0.0 |
本主题介绍了如何在 OpenAPI 源中配置策略;有关如何在Assembly用户界面中配置策略的详细信息,请参阅 “验证JWT ”。
注:
- 如果原始消息是使用“共享秘钥”签名的,那么指定的加密对象也必须为“共享秘钥”。
- 如果原始消息是使用“专用密钥”签名的,那么指定的加密对象必须为“加密证书(公用证书)”。
- 加密资料可通过 JSON Web 密钥 (JWK) 提供。
- 如果在 JWT 头中包含 JWK 头参数,那么此参数必须匹配策略中指定的 JWK 或加密对象,否则 JWT 验证将失败。
- 如果同时指定了加密对象和 JWK,那么加密对象用于解密或验证 JWT。
- DataPower API Gateway 上的 JWT 验证操作可以使用单个 JWK 或 JWK 集来验证 JWT。
关于
jwt-validate 策略具有以下结构:
- jwt-validate:
version: version
title: title
description: description
jwt: json_web_token
output-claims: output_full_set_of_jwt_claims
iss-claim: issuer_claim
aud-claim: audience_claim
jwe-crypto: decrypt_crypto_object
jwe-jwk: decrypt_crypto_jwk_variable_name
jws-crypto: verify_crypto_object
jws-jwk: verify_crypto_jwk_variable_name属性
下表描述了该策略的属性:| 属性 | 必需 | 描述 | 数据类型 |
|---|---|---|---|
| version | 是 | 策略版本号 | 字符串 |
| title | 是 | 策略的标题。 | 字符串 |
| description | False | 对策略的描述。 | 字符串 |
| jwt | 是 | 包含要验证的 JWT 的上下文或运行时变量。 缺省值为: 注: 授权头的格式必须为: 其中 jwt-token 是已编码的 JWT。 |
字符串 |
| output-claims | 是 | JWT 中包含的完整声明集分配到的运行时变量。 缺省值为: |
字符串 |
| iss-claim | False | 用于验证签发者 (iss) 声明的 Perl Compatible Regular Expressions (PCRE) 。 | 字符串 |
| aud-claim | False | 要用于验证受众 (aud) 声明的 PCRE。 | 字符串 |
| jwe-crypto | False | 要用于对声明进行解码的加密对象(共享密钥或证书)。 JWK 和加密对象都是提供解密 JWT 所需加密数据的有效途径。 但如果同时指定这两种数据类型,那么仅使用加密对象。 | 字符串 |
| jwe-jwk | False | 运行时变量,包含用于解密 JWT 的 JWK。 JWK 和加密对象都是提供解密 JWT 所需加密数据的有效途径。 但如果同时指定这两种数据类型,那么仅使用加密对象。 | 字符串 |
| jws-crypto | False | 要用于验证签名的加密对象(共享密钥或证书)。 JWK 或 JWK 集合以及加密对象都是提供验证 JWT 所需的加密数据的有效方法。 但如果同时指定这两种数据类型,那么仅使用加密对象。 | 字符串 |
| jws-jwk | False | 包含用于验证签名的 JWK 或 JWK 集的运行时变量。 JWK 或 JWK 集合以及加密对象都是提供验证 JWT 所需的加密数据的有效方法。 但如果同时指定这两种数据类型,那么仅使用加密对象。 | 字符串 |
示例
以下是 jwt-validate 策略的示例:
- jwt-validate:
version: 1.0.0
title: jwt-validate
jwt: request.headers.authorization
output-claims: decoded.claims
iss-claim: "'^data.*'"
aud-claim: "'^id.*'"
jwe-crypto: jweCryptoObjectName
jwe-jwk: jwe.jwk
jws-crypto: jwsCryptoObjectName
jws-jwk: jws.jwk有关如何使用 jwt-validate 安全策略的更多信息,请参阅内置策略部分中的 验证 JWT 。