以管理员身份登录Keycloak时"需要HTTPS"

Arj*_*jit 16 jboss7.x keycloak

在此输入图像描述

Keycloak (version 1.0.4.Final)JBOSS AS 7.1.1服务器中使用.服务器位于Amazon AWS上.

我能用keycloak启动jboss服务器.我可以在点击URL时看到keycloak默认屏幕 - ServerIP:8080/auth

但是当我点击Administration Console链接进入登录界面时.我正在翻页说 - HTTPS required

服务器在AWS上,更改为"ssl-required" : "none", General Adapter Config没有帮助.

如何解决这个问题?

编辑:我没有在keycloak-1.2.0.Beta1版本中遇到此问题.

Val*_*lik 15

如果您想为您的领域禁用它并且无法使用UI,请直接在数据库上执行:

update REALM set ssl_required='NONE' where id = 'master';
Run Code Online (Sandbox Code Playgroud)

  • 执行此操作后,还必须重新启动keycloak。 (3认同)

Bro*_*oks 11

这是相当老的,现在发布版本(我使用Keycloak 1.9.3演示/开发人员包),但为了节省一些可怜的灵魂一些时间....

对于所有外部IP地址,Keycloak现在默认为HTTPS.不幸的是,据我所知,演示包附带的Wildfly实例不支持HTTPS.如果您在远程计算机上安装Keycloak,则会出现非常疯狂的默认设置,因为实际上无法访问Keycloak管理控制台.

此时,您有两种选择; 1)在Wildfly中安装HTTPS或2)通过SSH隧道进入远程机器并通过它代理浏览器,转到管理控制台并关闭SSL要求(领域设置 - >登录 - >要求SSL).这是有效的,因为本地连接不需要SSL.

请记住首先通过转到$ KEYCLOAK_HOME/keycloak/bin并运行./add-user-keycloak -r master -u <> -p <>来创建管理员用户.此添加用户脚本不像Wildfly添加用户脚本那样是交互式的,您需要将其全部放在命令行上.

希望这可以帮助!


the*_*elr 10

您可以使用keycloak命令行管理工具更改设置,只要它可以对本地IP地址进行身份验证即可.您可以在localhost上临时启动Keycloak以进行此更改.

kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin
kcadm.sh update realms/realmname -s sslRequired=NONE
Run Code Online (Sandbox Code Playgroud)

显然,请确保根据需要替换领域名称,用户名,端口等.

有关Admin CLI入门的更多信息,请参阅文档:http://www.keycloak.org/docs/3.3/server_admin/topics/admin-cli.html


Nir*_*han 8

我正在docker容器内运行密钥斗篷,keycloak命令行工具在keycloak容器内可用。

docker exec -it {contaierID} bash
cd keycloak/bin
./kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin
./kcadm.sh update realms/master -s sslRequired=NONE
Run Code Online (Sandbox Code Playgroud)

如果未创建admin用户,则可以通过此命令创建该用户。

./add-user-keycloak.sh --server http://ip_address_of_the_server:8080/admin --realm master --user admin --password adminPassword
Run Code Online (Sandbox Code Playgroud)

  • 对于较新的版本,该文件位于以下路径中:`/opt/jboss/keycloak/bin` (13认同)
  • 对于 keycloak 18+ `cd /opt/keycloak/bin/` 则不要使用 `\auth`,因此该命令将类似于 `./kcadm.sh configcredentials --server http://xxx.xxx.xxx .xxx:8080 --realm master --user admin` 然后 `./kcadm.sh updaterealms/master -s sslRequired=NONE` (8认同)
  • 这对我不起作用。我收到“需要 HTTPS [invalid_request]”。 (3认同)

Rew*_*ool 6

这有点晚了,但我相信人们会发现这很有用。如果您使用 docker 来运行 keycloak,而不是转发端口 8080,而是转发 8443,它就像魅力一样工作。

docker run -p 8443:8443 -e KEYCLOAK_USER=username -e KEYCLOAK_PASSWORD=password jboss/keycloak
Run Code Online (Sandbox Code Playgroud)