问题标签 [keycloak-services]

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 回答
2075 浏览

redirect - 重定向太多次keycloak

我一直在尝试使用 keycloak 身份验证,并且已经坚持了一段时间。这是我的代码

所以发生的事情是,当我转到主机名/登录时,它会将我重定向到我公司的登录页面(我们正在使用他们的凭据验证公司员工),我们有一个重定向 uri,它是http://hostname/login / * ,所以在 keycloak.protect() 执行后,用户输入他的凭据,它进入无限循环,浏览器上的消息被重定向太多次。

虽然,理想情况下应该发生的事情是,在得到验证后,它应该回到 /login 路由,并呈现我们拥有的仪表板页面。但它没有发生。

0 投票
0 回答
497 浏览

nginx - 使用 2FA 从 NGINX 反向代理到 Keycloak

我对 NGINX 有疑问。另外,我会为您提供一个配置文件和架构模式的图片(https://ibb.co/niZCRx)。

我想通过 nginx 访问 Keycloak 并登录。我将它用作身份管理,在其中我使用用户名和密码登录,并在其中检查证书的证书,即 2FA。我的问题是,当我通过 NGINX 访问浏览器时,我没有弹出提交我的用户证书,然后进入第二步输入用户名和密码,但之后,Keycloak 告诉我我缺少证书.

我尝试并处理的事情是,如果我将这些内容添加到配置文件中,proxy_ssl_certificate 和 proxy_ssl_certificate_key 将传递它,但仅限于一个用户。例如,proxy_ssl_certificate 和 proxy_ssl_certificate_key 是来自用户 joncheski 的证书和密钥,并使用用户 joncheski 登录 Keycloak 将成功通过。但是如果我想用另一个用户登录,它就不会通过,因为证书和用户名不相等。我需要你的帮助。如何进行设置以供更多用户使用。

nginx.conf:

} }

最好的问候,戈西·琼切斯基

0 投票
1 回答
1205 浏览

keycloak - 使用 https keycloak 服务器设置 keycloak 仅承载客户端

我一直在尝试设置 keycloak 仅承载客户端。按照 javascript 适配器的 keycloak 文档中提到的步骤进行操作。http 工作正常。使用 https,我得到“拒绝访问”。下面是客户端使用的 keycloak.json。 { "realm": "MyRealm", "auth-server-url": "https://10.65.107.118:8043/auth", "ssl-required": "none", "resource": "edge", "bearer-only": true, "public-client": true, "use-resource-role-mappings": true, "confidential-port": 0 }

0 投票
2 回答
6096 浏览

login - Keycloak - Multi/2FA Factor - OTP - QR Code - 自定义登录屏幕 - Rest API

我有自己的登录页面,用户在其中输入用户名/密码。 此用户名/密码用于通过 Keycloak Rest API 登录。

http://localhost:8080/auth/realms/Demo/protocol/openid-connect/token

作为回应,我得到了access token

现在我希望启用 Authenticator ( Google Authenticator)。我已经从后端启用了它。现在,如果用户希望通过我的应用程序登录,我的登录页面需要获取以下详细信息。

1.)不知何故,一旦用户输入用户名/密码,我需要包含出现在 keycloak 登录页面上的用户名/密码验证后的 QR 码,以便在我的登录屏幕上显示第一次登录。那么我们是否有任何 API 可以返回 Keycloak QR 码图像作为响应。

2.)后续登录我将有 OTP 字段,因此需要一个 REST api 来传递 OTP 以及用户名/密码。

如果 keycloak 有,请帮助使用 REST API。通过 Javascript 集成。

与此处用例 1 中描述的类似流程

只想把keycloak当做数据库,为我做所有的操作,输入就是我的屏幕。我确实希望在登录时重定向 URL,但应该独立部署。

0 投票
1 回答
3309 浏览

keycloak - 为什么'id'在keycloak中被称为'sub'?

我正在查看新的 Keycloak Beta 4 API。当我获取用户帐户信息时,web ui 中称为“id”的内容在帐户对象中返回为“sub”。

什么是“子”,这是将数据库对象映射到的安全 uuid 吗?

0 投票
1 回答
1096 浏览

oauth-2.0 - Keycloak不返回密码过期错误

我使用 Keycloak 3.4 和 Active Directory(用于用户联合)来保护我的 Api,系统配置为使用Resource Owner Password Credentials flow。当用户密码过期时,我只会收到Invalid user credentials错误。

他们是否有任何方法可以返回适当的错误消息消息,例如用户用户密码已过期

0 投票
1 回答
592 浏览

keycloak - 在 Keycloak 中部署自定义 EmailSender SPI 在运行时导致 NullPointerException

我目前正在处理我们的自定义 EmailSenderProvider SPI,我得到了一个NullPointerException,因为提供程序在运行时没有成功实例化并返回 null。我们已经构建了一个自定义的联合提供程序,它已经可以工作并且位于同一个 jar 文件中。我遵循了文档并为 EmailSender 创建了 Provider 和 ProviderFactory 类,并在 /META-INF/services 文件夹中添加了一个新的 provider 文件。当我部署模块时,它可以在服务器信息页面上看到。

有谁知道我该如何解决这个问题或让它发挥作用?

0 投票
1 回答
21756 浏览

keycloak - Keycloak cookie:KEYCLOAK_SESSION、Oauth_token_request_state、KEYCLOAK_IDENTITY

有人可以解释一下 Keycloak 设置的 cookie:KEYCLOAK_SESSION,Oauth_token_request_state, KEYCLOAK_IDENTITY。

每个 cookie 的相关性是什么?

0 投票
1 回答
1476 浏览

angular - 如何在 i18n Angular 应用程序中使用语言环境初始化 keycloak?

我们在 Angular 6 应用程序中使用 keycloak [ https://www.keycloak.org/]服务器进行用户身份验证。我们还使用这个包装库https://github.com/mauriciovigolo/keycloak-angular与下面的 JavaScript keycloak Adapter 进行交互和初始化。

Keycloak 是应用程序中通过 Angular 的 APP_INITIALIZER 提供程序初始化(从提供的配置)的第一件事。

由于我们使用具有国际化和提前编译功能的 Angular,我们已经像这样部署了我们的应用程序:

我想在导航时在各自的语言环境中呈现登录页面。如果导航到 my-site/fr keycloak 登录页面应该以法语等呈现。但是在应用程序初始化时,无法在 keyclaok 配置中提供语言环境。

PS:Keycloak 领域已经配置为允许国际化,用户可以从登录页面更改语言。我知道 keycloak 适配器的登录方法采用“语言环境”参数,但我只能在应用程序初始化后才能访问它。

有没有人遇到过这个问题?

谢谢

0 投票
1 回答
1635 浏览

java - 如何在 Keycloak (3.4.3) 中的自定义 spnego Authenticator 中将自定义错误消息返回到前端?

我正在 Keycloak 中构建一个自定义身份验证器,它不仅将用户登录到 keycloaks SSO-Instance,而且还通过 rest-Call 登录到遗留(SAP-)系统中。

现在我从这个遗留 API 收到错误消息,我想在通过我的自定义身份验证器登录时向最终用户显示消息(由 callee-param 国际化),但我不知道如何做到这一点。

我认为这与例如来自github 上的 spnego 身份验证器的以下几行有关:

将 .error() 值更改为“测试!”时 这会被记录下来,但向用户显示的错误也是无效的凭据行。因此,AuthenticationFlowError 似乎是一个 ENUM,我认为它不适用于来自第三方的动态国际化消息。但是有没有办法告诉我的身份验证上下文从我的第三方系统返回错误消息?

非常感谢任何帮助