问题标签 [keycloak-gatekeeper]

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 投票
0 回答
382 浏览

keycloak - 作为首次代理登录的一部分,有没有办法在 Keycloak 领域的本地数据库中禁用用户注册?

根据 Keycloak文档,当用户通过身份代理登录时,Keycloak 在领域本地数据库中检查并创建用户,作为 First Broker 登录流程的一部分。

有没有办法在 Keycloak 本地数据库中禁用用户登录,并始终检查来自 IDP 而不是本地数据库的身份验证?

由于存在一些基本问题,例如 Keycloak 和 IDP 之间的用户数据同步,这种默认 Keycloak 实现背后的基本原理是什么?

0 投票
1 回答
1678 浏览

strapi - 在 Keycloak Gatekeeper 后面运行 Strapi CMS

我正试图让 Strapi 在 Keycloak Gatekeeper 后面运行。我现在的问题是管理 UI 已损坏,因为它使用Authorization标头包含自定义 JWT。Keycloak Gatekeeper 还使用Authorization带有自己的 JWT 的标头。有什么方法可以 a) 在 Strapi 中禁用身份验证以使其不发送Authorization标头或 b) 让 Strapi 为其 JWT 使用另一个标头?

谢谢!

0 投票
1 回答
1245 浏览

cors - 由于 CORS,Keycloak Gatekeeper 无法刷新令牌

我的应用程序 ( http://localhost:8081 )前面有一个 Keycloak Gatekeeper 代理 ( https://localhost:8080 ) 来卸载 OAuth2。它连接到 Keycloak 服务器 ( https://keycloak.my.company )。通过 Gatekeeper 登录和访问应用程序工作正常。

现在我有一个每 10 秒执行一次以重新加载某些内容的 AJAX 片段。这仅在超过 JWT 生命周期之前有效。然后 Gatekeeper 向 Keycloak 发送重定向(正如它应该做的那样),但由于 CORS 错误,AJAX 请求无法跟随它。

请求如下所示:

回应是:

火狐告诉我:

Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf https://keycloak.my.company/auth/realms/demo/p …nid+email+profile&state=c758c30a-1c1c- 46f7-9155-f71b906ac61a。(Grund:CORS-Kopfzeile 'Access-Control-Allow-Origin' fehlt)。

(翻译:Blocked as Same-Origin-Policy forbids reading the resource. Reason CORS header 'Access-Control-Allow-Origin' is missing)

我想到的问题:

  1. 由于 X-Requested-With 标头,为什么不将重定向计为“CORS 简单请求”?
  2. 为什么 Keycloak 不响应 CORS 请求?它有“+”作为 CORS 来源,“ https://localhost:8080/ *”作为有效重定向 URL
  3. 毕竟这是刷新令牌的正确方法吗?还是标准要求客户端(Javascript)在执行实际请求之前检查生存时间并刷新 JWT ?

提前感谢您的任何提示!

编辑:配置:

我的第一次尝试没有redis。使用 Redis,我现在遇到了https://issues.redhat.com/browse/KEYCLOAK-11077中描述的问题

0 投票
2 回答
541 浏览

apache - Keycloak 和反向代理问题

我在 OpenShift 项目上运行 Keycloak,我有 4 个 Pod 正在运行:keycloak(v8.0.1 配置为使用 TLS 监听 8443)、keycloakdb(PostgreSQL DB)、代理(Apache 2.4 反向代理)和门户(我们的应用程序我们开发来处理与其他应用程序的连接)。

keycloak pod 还包含两个我们“借用”的 jar 文件,它们将 PKI 身份验证作为登录的一部分。

OpenShift 中配置的路由是 apache: tcp/443 to tcp/8443 on the apache pod keycloak: tcp/443 to tcp/8443 on the keycloak pod, 和

当前状态:到https://proxy.domain.com的连接被重定向到https://keycloak.domain.com进行身份验证 https://keycloak/domain.com请求我的证书进行 2-way TLS 身份验证然后重定向到https://keycloak.domain.com/auth/auth?response_type=code&scope=openid&client=potal&state= &redirect_uri= https://proxy.domain.com/redirect_uri&nonce= 浏览器显示一个页面,其中提供了我的证书和我的用户帐户名,带有继续按钮

单击继续按钮,POST 到https://keycloak.domain.com 浏览器然后重定向到https://proxy.domain.com:8443 因为没有到https://proxy.domain.com:8443的路由连接超时。

问题是如何让 keycloak 将浏览器重定向到tcp/443 上的https://proxy.domain.com ?

0 投票
1 回答
452 浏览

shell - Keycloak Gatekeeper 未正确设置 X-Auth 标头

我尝试使用 shell 脚本登录到由 Keycloak Gatekeeper 保护的 Web 应用程序。登录正在工作,并且令牌句柄显示正确的数据。但是当我执行“真实”请求时,X-Auth-* 标头不存在,因此上游应用程序无法检查授权。

通过浏览器通过代码流进行登录时,标题设置正确。

0 投票
0 回答
360 浏览

tomcat - 如何在tomcat服务器中运行keycloak服务器

我有一个最近在 tomcat 中运行的 java 应用程序,我已将 keycloak 安全性集成到应用程序中。

问题:我们如何在运行应用程序的 tomcat 中运行 keycloak 服务器。所以两者都在具有不同端口的同一台服务器上运行

0 投票
1 回答
134 浏览

postgresql - KeyCloak 通过 PSQL db 批量更新

我已将所有用户更新为 email_verified = true。PSQL 数据库得到更新,但管理控制台继续让用户没有验证他们的电子邮件。我正在通过 Rancher 上的 CLI 进行更改。

我正在使用的命令是:

我在这里能看到的唯一帮助是来自KeyCloak 中用户的批量更新

批量更新用户是否更复杂?有没有其他方法可以批量更新用户?

0 投票
1 回答
241 浏览

keycloak - 负载均衡器级别的 Keycloak 身份验证

我正在研究 keycloak 身份验证和授权。我想在负载均衡器级别对用户进行身份验证。是否可以在检查实际应用程序身份验证之前过滤掉用户。

0 投票
1 回答
1332 浏览

kubernetes - 在 AWS EKS 上使用 keycloak 身份验证的 traefik 入口

我们正在 AWS EKS 上开发基于企业微服务架构的产品。我们有几个应用程序作为单独的容器部署在 EKS 上。
我们在所有这些应用程序前面部署了 traefik 入口控制器(LB 服务作为 ELB)和入口服务,以路由到特定服务。这工作得很好。到目前为止,一切都很好。
我们还为身份验证部署了 keycloak 容器,它也可以正常工作。

现在,我们希望将 traefik 与 keycloak 集成,以便任何到达 traefik 的请求都应该转到 keycloak 进行身份验证/SSO,然后重定向到原始调用所在的特定服务。
这是我们正在努力取得任何进展的部分。首先有几个疑问:

1)有traefik forward-auth。这个可以用在这里吗?任何示例/链接将不胜感激,尤其是。如果是用于 Kubernetes。
2)有keycloak-gatekeeper。据我了解,它被部署为主要应用程序的侧车并完成所有身份验证工作。我的问题是,在侧车设计中,每个应用程序都有自己的看门人。所以一旦登录到一个应用程序或服务,如果他想访问不同的应用程序,用户需要再次进行身份验证。我们不希望这样,我们希望 SSO 会话适用于应用程序。
其次,我们如何在网守配置中提供动态的上游 URL,例如 /service1 应该自动重定向到网守到 service1 和类似的 service2 等等。

我们无法决定走哪条路。这两种方法的文档都很有限,主要用于 Kubernetes 部署。我们可以在这里采取任何其他方法吗?
请帮忙。如果您需要更多详细信息,请告诉我。

更新1:
现在,我继续使用keycloak-gatekeeper。我把它作为我的 kibana 吊舱的边车。以下是网守的 yml 部分:

在我的 traefik 入口服务中,我在下面添加了(kibana 是 kibana 应用程序的 clusterIP 服务,它具有 kibana + gatekeeper pods)

现在,每当我浏览到https://elb_host/path1时,它只会将其重定向到https://elb_host/ouath/authorize?state= <..> 并抛出 404。
我希望它首先重定向到 keycloak auth url ( https ://elb_host/auth/realms/realm1?. .) 进行身份验证。
我还在网守日志中显示它成功获取了 oidc 配置。但是在我点击 url 后,网守日志中会出现以下错误:

这里可能有什么问题?请帮忙。

0 投票
1 回答
1288 浏览

keycloak-gatekeeper - nginx入口反向代理背后的Keycloak Gatekeeper

目标:当 nginx 入口具有活动的重写目标功能时,Keycloak 网关守卫部署。

Ingress 根据以下内容重写目标:

  • rewrite.bar.com/something/重写为rewrite.bar.com/
  • rewrite.bar.com/something/new重写为rewrite.bar.com/new

并添加以下标题:

Keycloak 网守配置:

问题
关守将未经授权的请求重定向到,https://rewrite.bar.com/oauth/authorize?state=00191...但端点位于https://rewrite.bar.com/something/oauth/authorize。网守忽略 X-Forwarded-Prefix 标头。something/当通过添加到路径在浏览器中手动更正路径时,一切正常。正确重定向到身份验证服务器,回调也有效。

当通过在部署中设置基本 uri 来增加网守配置时:

未经授权的请求被正确重定向到https://rewrite.bar.com/something/oauth/authorize由入口重写的https://rewrite.bar.com/oauth/authorize,这与网守中未受保护的授权端点 ( ) 不匹配something/oauth/authorize。它导致不断的重定向。

问题:有没有办法以添加/something到重定向请求但不期望它的方式配置网关(proxy-base-url)?