我有一个特定的用例,我们想每天向所有用户询问Keycloak以及每个用户的组和角色。为了与其他内部系统和解。
当前,我们正在为此使用UsersResource中提供的Keycloak端点。但是我们看到,每次调用到某个点后,我们的性能都会降低,我们无法再使用此解决方案了。该领域中有超过3万名用户。
我们还看到Keycloak可以导出数据库,但是只能在系统启动时导出(我想是出于迁移目的)。鉴于我们要每天提取所有用户,因此我们无法使用它。
是否有一些已知的功能或解决方法?
测试配置为部署为 docker swarm 服务的集群的Keycloak 运行状况的最佳方法是什么?
我尝试了以下健康检查来测试 Keycloak 服务描述符中的可用性:
healthcheck:
test: ["CMD-SHELL", "curl http://localhost:8080/auth/realms/[realm_name]"]
interval: 30s
timeout: 10s
retries: 10
start_period: 1m
Run Code Online (Sandbox Code Playgroud)
还有更多的事情需要检查吗?找不到这方面的文档。
我有一个将 Keycloak 用于 IdM 的 Web 应用程序。
我正在使用 资源所有者密码凭据或直接授予流程进行身份验证,它使用 REST API 调用/auth/realms/{realm}/protocol/openid-connect/token而不是浏览器重定向来为用户获取 JWT。
我想为用户注册实施类似的工作流程。
查看 Keycloak 文档,似乎 Keycloak Admin API 在/auth/admin/realms/{realm}/users公开了一个端点。
要允许客户端与 Keycloak Admin API 交互,您必须创建一个客户端服务帐户并将其与具有足够权限来管理领域用户的 keycloak 角色相关联。
对此的预期方法似乎是将管理用户领域特定角色应用于客户端服务帐户。这比我想授予客户端的权限多。
有没有办法给予客户服务帐户刚刚创建新用户的能力,而不是完整的权限集自带的管理用户?
我正在使用 Keycloak 通过 OIDC 为属于同一领域的一堆应用程序提供 SSO。所有这些应用程序都是使用授权代码流的机密客户端。它们使用 JSP 作为视图,所有必要的重定向都由Spring Boot 和 Spring Security Keycloak 适配器管理。
成功登录后,我可以正确地从一个应用程序切换到另一个应用程序 (SSO)。对于它们中的每一个,都会生成一个包含org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken. 这个类有一个SimpleKeycloakAccount带有 securityContext ( RefreshableKeycloakSecurityContext)的 details 对象 ( ),其中包含访问令牌 ( tokenString)、id 令牌 ( idTokenString) 和刷新令牌 ( refreshTokenString):
包含的访问令牌有 5 分钟的到期时间。奇怪的是,在这段时间过去之后,虽然我仍然在 Spring Boot 应用程序中正确地进行了身份验证,但我已经检查过访问令牌从未刷新过。
我需要一个有效的访问令牌,因为其中一些应用程序调用 REST 服务,并使用相同的适配器进行保护,并且仅使用承载身份验证。问题是我最终拥有一个过期的访问令牌并且必须(手动?)处理它的过期。
有没有办法让适配器在访问令牌过期时刷新访问令牌,或者我们希望以编程方式这样做?
你能展示一下怎么做吗?
spring-security spring-boot openid-connect keycloak redhat-sso
我已经为以下行为配置了 Keycloak 身份验证:
注意:用户已经拥有注册的无密码设备:
身份验证流程配置如下:
我访问localhost:8080/realms/myrealm/account并单击“登录”:
我输入用户ID:
但是,系统并没有要求我使用安全设备进行注册,而是要求我输入密码:
如果我选择尝试其他方式并单击安全密钥:
我现在可以使用该设备登录:
我能成功做到这一点。
这里的问题是我需要直接提供无密码登录,而不是密码形式。无密码实际上被配置为第一个替代选项,那么为什么它没有按预期工作呢?
keycloak ×6
redhat-sso ×6
docker ×1
docker-swarm ×1
java ×1
jwt ×1
oauth-2.0 ×1
redhat ×1
saml ×1
saml-2.0 ×1
spring-boot ×1
webauthn ×1