4.10.2.3. 快速本地 JWT 令牌验证配置
快速本地 JWT 令牌验证在本地检查 JWT 令牌签名。
本地检查可确保令牌:
-
通过包含访问令牌的
Bearer
声明值来符合类型 - 有效(未过期)
-
具有与 匹配的签发者
validIssuerURI
在配置监听器时,您可以指定 一个有效的签发者 URI,以便拒绝授权服务器未发布的任何令牌。
在快速本地 JWT 令牌验证期间,不需要联系授权服务器。您可以通过指定 OAuth 2.0 授权服务器公开的 JWKs 端点 URI 来 激活快速本地 JWT 令牌验证。端点包含用于验证签名 JWT 令牌的公钥,这些令牌由 Kafka 客户端作为凭据发送。
注意
与授权服务器的所有通信都应通过 HTTPS 执行。
对于 TLS 侦听器,您可以配置证书 信任存储 并指向信任存储文件。
快速本地 JWT 令牌验证的属性示例
listener.name.client.oauthbearer.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required \ oauth.valid.issuer.uri="https://AUTH-SERVER-ADDRESS" \ 1 oauth.jwks.endpoint.uri="https://AUTH-SERVER-ADDRESS/jwks" \ 2 oauth.jwks.refresh.seconds="300" \ 3 oauth.jwks.refresh.min.pause.seconds="1" \ 4 oauth.jwks.expiry.seconds="360" \ 5 oauth.username.claim="preferred_username" \ 6 oauth.ssl.truststore.location="PATH-TO-TRUSTSTORE-P12-FILE" \ 7 oauth.ssl.truststore.password="TRUSTSTORE-PASSWORD" \ 8 oauth.ssl.truststore.type="PKCS12" ; 9
- 1
- 有效的签发者 URI。只有签发者发布的访问令牌才会被接受。例如: https://AUTH-SERVER-ADDRESS/auth/realms/REALM-NAME。
- 2
- JWKS 端点 URL。例如: https://AUTH-SERVER-ADDRESS/auth/realms/REALM-NAME/protocol/openid-connect/certs。
- 3
- 端点刷新之间的 period(默认值 300)。
- 4
- 连续尝试刷新 JWKS 公钥之间的最小暂停(以秒为单位)。当遇到未知签名密钥时,将在常规定期计划外调度 JWKS 密钥刷新,并且自上次刷新尝试后至少使用指定的暂停。刷新键遵循指数回退规则,不成功刷新会一直增加暂停,直到达到
oauth.jwks.refresh.seconds
。默认值为 1。 - 5
- JWK 证书在过期前被视为有效的持续时间。默认为
360
秒。如果您指定了更长的时间,请考虑允许访问撤销的证书的风险。 - 6
- 在令牌中包含实际用户名的令牌声明(或密钥)。用户名 是用于 标识用户的主体。该值取决于身份验证流和使用的授权服务器。
- 7
- TLS 配置中使用的信任存储的位置。
- 8
- 用于访问信任存储的密码。
- 9
- PKCS #12 格式的信任存储类型。