【问题标题】:how to locally validate keycloak access tokens using the public key如何使用公钥在本地验证 keycloak 访问令牌
【发布时间】:2020-07-13 09:48:40
【问题描述】:

我正在使用带有 Spring Boot 和 Kotlin 的 Keycloak,我正在使用看起来像这样的 keycloak.json 的最低设置。并带有注释 @PreAuthorize("isAuthenticated()") 来保护我的端点。 钥匙斗篷设置是 客户端身份验证器 = 客户端 ID 和密码 启用标准流程。

{
  "realm": "dev",
  "realm-public-key" : " public key here ",
  "auth-server-url": "http://localhost:8085/auth/",
  "ssl-required": "external",
  "resource": "test_service",
  "verify-token-audience": true,
  "credentials": {
    "secret": " secrete here"
  },
  "use-resource-role-mappings": true,
  "confidential-port": 0
}

我在文档部分“2.6.2.验证访问令牌”中仅使用“Keycloak-spring-security-adapter”,它说我可以使用 JWT 使用公钥在本地验证访问令牌,但不能在 java 或 Kotlin 中找不到示例,目前通过将其发送到 Keycloak 服务器来完成验证,据我所知,我怎样才能阻止它这样做并在本地(离线)验证令牌而不使用公共联系服务器关键,如果您能指出我正确的方向,或者您知道示例或博客,那将非常有帮助。

【问题讨论】:

    标签: java spring-boot kotlin jwt keycloak


    【解决方案1】:

    作为配置的一部分,您可以创建一个org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter Bean 并通过其传递公钥

    setVerifierKey(字符串键)

    方法

    【讨论】:

      猜你喜欢
      • 2018-06-24
      • 2020-01-18
      • 1970-01-01
      • 2022-07-04
      • 1970-01-01
      • 2016-08-21
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多