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

时间:2015-06-03 14:11:05

标签: jboss7.x keycloak

enter image description here

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

我可以使用keycloak启动jboss服务器。我可以在点击网址时看到keycloak默认屏幕 - ServerIP:8080/auth

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

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

如何解决此问题?

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

7 个答案:

答案 0 :(得分:12)

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

update REALM set ssl_required='NONE' where id = 'master';

答案 1 :(得分:10)

这是相当陈旧的,现在发布版本(我正在使用Keycloak 1.9.3 demo / Developer捆绑),但为了节省一些可怜的灵魂...

Keycloak现在默认为所有外部IP地址的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添加用户脚本那样是交互式的,您需要将它全部放在命令行上。

希望这有帮助!

答案 2 :(得分:9)

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

kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin
kcadm.sh update realms/realmname -s sslRequired=NONE

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

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

答案 3 :(得分:1)

我正在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

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

./add-user-keycloak.sh --server http://ip_address_of_the_server:8080/admin --realm master --user admin --password adminPassword

答案 4 :(得分:1)

如果您要在kubernetes上部署密钥斗篷,可以尝试按照ENV VAR进行设置

spec:
  containers:
  - name: keycloak
    env:
    - name:  PROXY_ADDRESS_FORWARDING
      value: "true"

答案 5 :(得分:1)

有点晚了,但我相信人们会发现这很有用。如果您使用docker运行keycloak,而不是转发端口8080,则转发8443,它的工作方式类似于charm。

docker run -p 8443:8443 -e KEYCLOAK_USER=username -e KEYCLOAK_PASSWORD=password jboss/keycloak

答案 6 :(得分:0)

我在docker keycloak中进行测试: 探测一下:领域设置->登录->需要SSL并关闭。 或docker exec YOUR_DOCKER_NAME /opt/jboss/keycloak/bin/jboss-cli.sh --connect \“ / subsystem = undertow / server = default-server / http-listener = default:read-resource”