问题标签 [redhat-sso]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
199 浏览

openshift - 如何在 Redhat-SSO 映像中为 OpenShift 启用相互 SSL 验证模式

我正在使用基于 Redhat-SSO 和 Keycloak 的模板 sso72-x509-postgresql-persistent 在 OpenShift 中创建应用程序。

我将启用它的双向 SSL 模式,这样用户在他的请求中只需要提供他的证书而不是用户名和密码。该文档(https://access.redhat.com/documentation/en-us/red_hat_single_sign-on/7.2/html-single/server_administration_guide/index#x509)告诉我编辑standalone.xml文件以添加配置部分。它工作得很好。

但是模板镜像 sso72-x509-postgresql-persistent 在这个过程中存在问题,因为它在 OpenShift 上部署后,docker 内文件的任何更改在 docker 重启后都丢失了。

无论如何,除了制作我自己的 docker 映像之外,是否可以通过命令行或 API 等另一个级别的问题来启用相互 SSL 模式,而不是编辑配置文件?

0 投票
0 回答
3043 浏览

oauth-2.0 - 授予 Keycloak 客户端服务帐户权限以创建领域用户,而无需使用广泛的管理用户角色

我有一个利用 Keycloak for 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 角色相关联来管理领域用户。

对此的预期方法似乎是将管理用户领域特定角色应用于客户服务帐户。这比我想授予客户的权限多。

有没有办法授予客户服务帐户创建新用户能力,而不是管理用户附带的全套权限?

0 投票
0 回答
491 浏览

keycloak - Keycloak:通过 CLI 创建用户时未分配角色

运行以下命令以导入具有角色的用户。

user-admin.json看起来像:

期望分配“realmRoles”键中的所有指定角色。然而只是Realm Default Roles: "offline_access","uma_authorization"被分配给用户。这些角色存在并且是通过 Keycloak Admin UI 预先添加的。

作为一种解决方法,可以创建用户然后分配角色。但是想用一个命令来完成。

0 投票
0 回答
409 浏览

keycloak - Keycloak/Java webapp:如何获取 JWT 令牌

我正在使用 Keycloak(我对 Keycloak 很陌生)保护一个遗留的单体 web 应用程序,并试图找出如何最好地检索 JWT 令牌,以便我可以从中提取一些属性。我已经玩了几天了,身份验证部分工作正常,但是一旦通过身份验证,我需要从 JWT 令牌中提取一些特定于应用程序的属性,以便我可以在目标应用程序中处理授权。我无法弄清楚如何轻松做到这一点。

任何帮助将不胜感激,因为我确定我只是错过了一些非常明显的东西。

编辑:我使用 keycloak-servlet-filter-adapter 来处理 Keycloak 的身份验证。

EDIT2:我一直在玩一些,AuthzClient从那里我可以获得访问令牌。我可以做些什么来检索具有此访问令牌的用户的“用户属性”吗?在 Keycloak 中,我有一些从外部用户存储中获取的自定义用户属性,我需要能够在用户登录后以编程方式检索这些属性。

0 投票
1 回答
362 浏览

wildfly - Is quorum needed in Keycloak Standalone Clustered Configuration?

It's stated that Keycloak is built on top of the WildFly application server and its sub-projects like Infinispan (for caching) and Hibernate (for persistence).

Keycloak recommends to look in WildFly Documentation and High Availability Guide.

If understood correctly Standalone Clustered Configuration allows session replication or transmission of SSO contexts around the cluster.

I don't understand though if odd number of Keycloak nodes is required so that there will be quorum.

Singleton subsystem states

10.1.3. Quorum Network partitions are particularly problematic for singleton services, since they can trigger multiple singleton providers for the same service to run at the same time. To defend against this scenario, a singleton policy may define a quorum that requires a minimum number of nodes to be present before a singleton provider election can take place. A typical deployment scenario uses a quorum of N/2 + 1, where N is the anticipated cluster size. This value can be updated at runtime, and will immediately affect any active singleton services. e.g.

Is it somehow related to Keycloak and its Standalone Clustered Configuration?

0 投票
1 回答
1691 浏览

keycloak - 空闲超时后,由 Keycloak 客户端应用程序保护重定向到登录页面。应用程序位于应用程序网关后面

空闲超时后如何实现客户端服务的注销?

服务由 Keycloak + 应用程序网关保护。

网关是 node.js 应用程序,它使用Keycloak node.js 适配器保护服务的 url ,因此浏览器访问 url 时需要进行身份验证。(重定向到登录网址)

服务通过检查访问令牌网关中存在的角色在成功验证后接收并附加到请求,从而在本地强制执行授权。

Keycloak 也在网关后面。

我考虑在 Keycloak 代码中添加自定义事件监听器,它会通过一些消息总线通知所有对会话超时事件感兴趣的服务。

提前致谢。

0 投票
2 回答
4254 浏览

keycloak - Keycloak中新添加的领域管理员无法登录领域

Keycloak 中有 2 个领域:mastercustom。两者都有管理员用户。

自定义领域管理员添加新用户new_admin并通过管理控制台将角色admin分配给他。

用户可以在 访问他的帐户详细信息auth/realms/custom/account/

但是,Forbidden You don't have access to the requested resourcenew_admin用户尝试在auth/admin/custom/console/.

即使领域管理员将新管理员用户添加到自定义领域,也会发生同样的问题。

我正在使用 Keycloak 4.3.0。

是错误还是领域不能有两个管理员?

0 投票
1 回答
631 浏览

keycloak - Keycloak 自定义表单提供程序:表单的操作 url 错误

我在 RestCredentialFlow 中添加了一个自定义表单,我可以配置新的流程执行并看到新的表单。看起来一切都很好。

唯一的问题是表单操作 url 指向注册而不是reset-credentials

我可以在浏览器中更改它,一切正常。

任何人都可以帮忙,为什么它指向注册以及如何更改它。我没有看到与注册流程的任何交互。

谢谢

这里呈现了表单,这已经返回了带有错误 actionUrl 的表单。

0 投票
1 回答
2434 浏览

java - Keycloak 多域登录

我在我的项目中使用 keycloak 作为 sso,我在那里有 2 个域。这里我项目中的用例是如果用户登录到一个域。我必须显示与登录另一个域相同的用户。

问题:这里我们有 2 个域。我们以 Angular 的方式运行前端,以 java 的方式运行后端。在这里,我们使用 spring boot 对 keycloak rest-api 进行身份验证。这里的会话是无状态的。如果我在一个域中登录,它不会显示为在另一个域中登录。

我们在前端使用带有“check-sso”选项的 keycloak js 来检测用户是否登录的天气。我们正在使用来自 keycloak 身份代理的社交登录。使用户进行身份验证。在这种情况下,keycloak-js 库正在检测用户是否已登录。在第二种情况下,正常的身份验证流程。我们正在使用 keycloak REST-API 对用户进行身份验证。在这种情况下,我们使用 spring boot keyclaok 适配器供用户进行身份验证。在此流程中,keycloak js 库未将用户标识为已通过身份验证。如果他从 spring boot keyclaok 适配器登录。

谁能帮我解决这个问题。

提前致谢。

0 投票
0 回答
920 浏览

spring-boot - Spring Boot + Spring Security Keycloak 适配器能否在令牌到期时自动刷新 HttpSession 中包含的访问令牌?

我正在使用 Keycloak 通过 OIDC 为属于同一领域的一堆应用程序提供 SSO。所有这些应用程序都是使用授权代码流的机密客户端。他们使用 JSP 作为视图,所有必要的重定向都由Spring Boot 和 Spring Security Keycloak 适配器管理。

成功登录后,我可以正确地从一个应用程序切换到另一个应用程序(SSO)。对于它们中的每一个,都会生成一个 HttpSession,其中包含一个org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken. 这个类有一个详细信息对象 ( ) 和一个包含访问令牌 ( )、id 令牌 ( ) 和刷新令牌 ( )SimpleKeycloakAccount的 securityContext ( ):RefreshableKeycloakSecurityContexttokenStringidTokenStringrefreshTokenString

在此处输入图像描述

包含的访问令牌有 5 分钟的过期时间。奇怪的是,在这段时间过去之后,虽然我仍然在 Spring Boot 应用程序中正确地进行了身份验证,但我检查了访问令牌从未刷新过

我需要一个有效的访问令牌,因为其中一些应用程序调用 REST 服务,使用相同的适配器和仅承载身份验证进行保护。问题是我最终拥有一个过期的访问令牌并且必须(手动?)处理它的过期。

有没有办法让适配器在访问令牌过期时刷新它,或者我们希望以编程方式这样做?

你能展示怎么做吗?