37

在此处输入图像描述

Keycloak (version 1.0.4.Final)JBOSS AS 7.1.1服务器中使用。服务器在亚马逊 AWS 上。

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

但是当我点击Administration Console链接进入登录屏幕时。我得到一个页面说 -HTTPS required

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

如何解决这个问题?

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

4

7 回答 7

44

我在 docker 容器内运行 key cloak,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

如果没有创建管理员用户,则可以通过此命令创建用户。

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

更新:对于较新版本的文件在以下路径中可用:/opt/jboss/keycloak/bin

于 2019-05-16T14:11:13.627 回答
38

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

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

注意 - 重新启动 keycloak 以生效

于 2017-02-02T12:32:25.513 回答
17

您可以使用 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

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

有关开始使用 Admin CLI 的更多信息,请参阅文档:服务器管理:Admin CLI

于 2017-08-31T19:05:10.167 回答
16

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

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 添加用户脚本那样具有交互性,您需要将其全部放在命令行中。

希望这可以帮助!

于 2016-05-05T21:26:51.173 回答
8

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

docker run -p 8443:8443 -e KEYCLOAK_USER=username -e KEYCLOAK_PASSWORD=password jboss/keycloak
于 2020-11-02T13:50:14.530 回答
1

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

于 2019-07-09T03:16:50.813 回答
0

如果您在 kubernetes 上部署 keycloak,您可以尝试设置以下 ENV VAR

spec:
  containers:
  - name: keycloak
    env:
    - name:  PROXY_ADDRESS_FORWARDING
      value: "true"
于 2020-06-29T13:20:19.987 回答