问题标签 [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 投票
2 回答
673 浏览

openid-connect - Keycloak 及其不同的适配器是否实现了 Openid Connect Backchannel 注销规范

Keycloak 确实支持反向通道注销,但它是否符合 Openid Connect 反向通道注销草案规范?https://openid.net/specs/openid-connect-backchannel-1_0.html

0 投票
0 回答
224 浏览

keycloak - 从管理控制台创建的用户仅在使用 Storage Provider SPI 时存储用户名

我创建了一个MongoDbUserStorageProvider将用户存储委托给 MongoDB:

我遇到的问题是:当我通过 Keycloak 控制台创建用户时,只有用户名存储在数据库中(不是电子邮件、名字等):

在此处输入图像描述

如您所见,该UserRegistrationProvider.addUser(RealmModel realm, String username)操作仅接收用户名:

org.keycloak.services.resources.admin.UsersResource该方法中public Response createUser(final UserRepresentation rep)遵循以下逻辑:

1)它调用我的 addUser 实现(仅使用用户名存储新用户)

MongoUserAdapter2) 它用其余字段填充用户对象 ( )

但是我看不到如何使填充的用户对象持久存在。

0 投票
2 回答
555 浏览

docker - Spring Cloud Data Flow 安全配置和与 RedHat SSO 的集成

我们正在尝试按照文档( https://docs.spring.io/spring-cloud-dataflow/docs/current-SNAPSHOT/reference/htmlsingle/#configuration-security )打开 Spring Cloud Data Flow 的安全性,但我们有一些我们无法填补的知识空白。

根据第 9.2 点,可以使用 OAuth 2.0 配置身份验证并将其与 SSO 集成。我们使用 RedHat SSO,因此我们正在尝试将两者集成,但我们无法使其正常工作,是否可能或使用的 SSO 存在限制?

根据文档,我们设置了这些属性:

  • spring.security.oauth2.client.registration.uaa.client-id=xxxxxxx
  • spring.security.oauth2.client.registration.uaa.client-secret=xxxxxx
  • spring.security.oauth2.client.registration.uaa.redirect-uri='{baseUrl}/login/oauth2/code/{registrationId}'
  • spring.security.oauth2.client.registration.uaa.authorization-grant-type=authorization_code
  • spring.security.oauth2.client.registration.uaa.scope[0]=openid
  • spring.security.oauth2.client.provider.uaa.jwk-set-uri=../openid-connect/certs
  • spring.security.oauth2.client.provider.uaa.token-uri=../openid-connect/token
  • spring.security.oauth2.client.provider.uaa.user-info-uri=../openid-connect/userinfo
  • spring.security.oauth2.client.provider.uaa.user-name-attribute=user_name
  • spring.security.oauth2.client.provider.uaa.authorization-uri=../openid-connect/auth
  • spring.security.oauth2.resourceserver.opaquetoken.introspection-uri=../openid-connect/token/introspect
  • spring.security.oauth2.resourceserver.opaquetoken.client-id=xxxxxxx
  • spring.security.oauth2.resourceserver.opaquetoken.client-secret=xxxxxxx

所以我们有一些考虑:

  • 令牌的自省需要属性resourceserver.opaquetoken,所以我们很确定当我们收到 REST 请求时它们是必需的,并且它必须具有授权标头
  • 如果我们不使用 UAA,属性应该命名为uaa吗?
  • 当我们尝试访问de UI时,它会重定向到authorization-uri,因为authorization-grant-type=authorization_code,所以它会登录SSO,对吗?
  • 如果我们使用授权类型密码,它将直接请求用户名/密码进行登录,它在哪里验证?
  • 用户信息 URI 是强制性的,但它真的被使用了吗?
  • 其他 URI(jwk 和令牌)用于什么?
  • 为什么重定向 URI 有这种格式?这些变量指向哪里?

最后,我们在 Docker 容器中运行的 SCDF 中测试了配置,但它“什么也没做”:

似乎问题出在'remote=/172.18.0.1:33758',但是我们无法解释如何在这个本地IP中转换自省uri。

0 投票
1 回答
52 浏览

keycloak - 是否可以通过 CLI - GUI 在(Keycloak 或 RH-SSO)中创建领域?

是否可以通过 CLI - GUI 创建 Realm?

我想知道是否可以通过 CLI - GUI 创建一个领域。(我用命令“.\Jboss-cli.sh --gui”启动了 gui)

如果可能的话,我该怎么做?

谢谢

0 投票
0 回答
252 浏览

java - Keycloak - 通过 Action Token SPI 完成登录流程的定制

我们对身份验证流程和 UI/UX 有特定要求,这些要求无法通过 Keycloak 的主题引擎和对 Authenticator SPI 的扩展来满足。

我查看了 Action Token SPI,它似乎是一个扩展点,可用于将(大部分)身份验证流程委托给外部应用程序。根据 keycloak quickstart action-token-authenticator 示例(https://github.com/keycloak/keycloak-quickstarts/tree/latest/action-token-authenticator),它似乎可以专门用于此目的。

对于浏览器身份验证流程,我们的想法是让 keycloak 通过首先验证用户名/密码来启动流程。如果成功,我们会将用户重定向到外部应用程序(向其提供用户的操作令牌和用户名/ID)以执行补充身份验证过程 - 例如自定义 MFA。如果外部应用程序成功执行补充身份验证,它将使用操作令牌重定向回 keycloak,以恢复并完成之前启动的身份验证过程。通过这个外部化的登录过程,我们可以完全控制它的设计/实现方式。

关于这种方法是否可行、安全和正确使用 Action Token SPI 的任何想法/意见?

提前致谢。

0 投票
1 回答
97 浏览

keycloak - Red Hat SSO 7.3.0.GA 的 Keycloak API 调用依赖项

我使用下面的代码在我的项目中调用 keycloak api。它在 Keylcloak 7.0.1 中工作。但是,它不工作 RedHat SSO 7.3.0.GA

这在使用以下依赖项连接到 Keycloak 7.0.1 时工作正常

我的问题:-

1) 当我尝试连接 Red Hat SSO 7.3.0.GA 时,我必须使用哪些依赖项。

2) 如何在 pom.xml 文件中定义 Redhat GA 存储库

提前致谢

0 投票
0 回答
48 浏览

authentication - Keycloak 中的身份验证器是否可以支持 SPA/Ajax 登录表单?

我们想在 Keycloak 中构建一个类似 SPA 的登录表单,它可以动态显示来自用户的凭据/输入提示,而无需刷新页面。

据我所见,Keycloak 中的每个 Authenticator 都期望在其关联视图上有一个 form-POST,从中提取响应。所以默认情况下,这意味着我们希望支持的每个 Authenticator SPI 实现(例如用户名/密码、2fa、安全问题等)都需要刷新页面来收集用户的输入。

有没有什么方法可以使用 Keycloak 实现类似 SPA 的登录体验(使用多个身份验证器)?任何想法/建议将不胜感激。谢谢。

0 投票
1 回答
371 浏览

keycloak - KEYCLOAK - 扩展 OIDC 协议 | 缺少凭据选项卡 | 在 AccessTokenResponse 中添加额外的声明

我们正在尝试实施 SMART On FHIR 医疗保健授权协议规范。该规范是 OIDC(开放 ID 连接协议)的扩展。在 FHIR 上的 SMART 中,我们需要在 OAUTH 舞蹈期间在 AccessTokenResponse 对象中添加名为“患者”的额外声明,其值为“123”。

为了实现这一点,我尝试扩展 OIDCLoginProtocol 和 OIDCLoginProtocolFactory 类,并为该协议赋予了一个名为“smart-openid-connect”的新名称。我将它创建为 SPI(服务提供者接口)JAR 并将其复制到 /standalone/deployments 文件夹。现在,我可以在 UI 中看到名为“smart-openid-connect”的新协议,但它没有在客户端创建屏幕中显示访问类型选项以选择作为机密客户端。因此,我无法创建客户端机密,因为此新协议没有出现凭据菜单。

我有以下问题:

如何使用 SPI 为我创建的新协议启用客户端创建屏幕中的凭据选项卡。?我需要覆盖哪个类才能在 AccessTokenResponse 中添加额外的声明?请在这方面帮助我。

提前感谢您的帮助。

0 投票
1 回答
318 浏览

java - 尝试使用 Java API 在 Red Hat SSO 7.3 (Keycloak) 上重置用户密码时出现错误 400

我正在尝试通过 Java API 在 Red Hat Single Sign On 7.3 (Keycloak behind the scene) 上创建一个具有临时密码的用户。

在本地(使用标准 Keycloak,jboss/keycloak:9.0.0 Docker 映像),它工作正常。但是在 Openshift 4.4 项目上部署相同的内容时,我从 Red Hat SSO (7.3) 收到 400 错误。不幸的是,我在日志中没有太多内容,也无法在 Red Hat SSO 服务器上配置任何内容以使其更加详细。

在 Red Hat SSO 服务器上,已在应用程序 Realm 中创建了一个专用的“keycloak-admin”客户端。客户端启用时仅将“服务帐户启用”选项设置为 ON。在“服务帐户角色”中,“领域管理”中的所有角色都已分配并生效。

我正在使用这个 Maven 依赖项来处理 Keycloak Java API:

以下是我如何通过 Java 代码创建与 Keycloak 的连接:

客户端机密集与“凭据”部分中的“keycloak-admin”客户端中的机密匹配。

以下是我如何通过 Java 代码创建用户:

这部分在本地和 Red Hat SSO 中都可以正常工作。用户已创建并可在 Keycloak 上检索。

然后我尝试像这样重置密码:

generateRandomPassword是一种生成随机密码的方法,该密码与本地 Keycloak 和 Red Hat SSO(身份验证/密码策略)上定义的密码策略相匹配。

代码的最后一部分在本地运行良好,但在 Red Hat SSO 上出现 400 错误。

如您所知,我也尝试直接使用密码创建用户,但行为完全相同。我还尝试使用“admin-cli”客户端和管理员帐户连接到 Keycloak,但问题仍然存在。

提前感谢您提供的所有帮助或建议!我被困在那里,现在没有更多的想法......

0 投票
1 回答
706 浏览

token - 如何将访问令牌设置为在几秒钟内过期

我在配置 Redhat Single SigOn (RHSSO) 或 Keycloak 令牌在几秒钟内到期时遇到问题,大约 30 秒。

我只是在几分钟内找到了配置。有没有办法把它调整到秒?