Keycloak远程运行及Docke部署

  keycloak是一个开源的进行身份认证和访问控制的软件。用作统一身份认证,身份认证,社交登录等,功能十分强大。自keycloak17,使用其需要Java11。一个不友好的错误提示

远程服务器部署

  下载Keycloak,keyclaok16.1.1下载链接。下载完解压。 下面是使用H2数据库,如果想用mysql数据库可以参考这篇博客修改文件keycloak9.0.2单机模式整合mysql8

# 切换目录解压 
tar -zxvf keycloak-16.1.1.tar.gz
# 后台启动
# -Djboss.socket.binding.port-offset=100 默认端口8080,设置端口偏移,8180
# -Djboss.bind.address={服务器ip} keyclaok是使用localhost(127.0.0.1)的,想要远程访问 需要设置ip 
nohup {实际位置}/keycloak-16.1.1/bin/standalone.sh -Djboss.socket.binding.port-offset=100 -Djboss.bind.address={服务器ip} > {实际位置}/keycloak-16.1.1/keycloak.log 2>&1 &

如果启动失败,可能还需要修改\standalone\configuration\standalone.xml 里的ip(我用云服务器有内外网ip时出现,使用内网ip)

<interface name="management">
	<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
</interface>
<interface name="public">
	<inet-address value="${jboss.bind.address:0.0.0.0}"/>
</interface>

keycloak 单机模式下初始化系统账号密码,不能用localhost访问的时候,只能命令行初始化 用户

./bin/add-user-keycloak.sh -r master -u admin -p admin

点击Administration Console 进入登录页面,会提示HTTPS required,在master的realm没有设置ssl为none,也使用命令行

#登录
./kcadm.sh config credentials --server http://{ip}:{port}/auth --realm master --user admin
# 设为none
./kcadm.sh update realms/master -s sslRequired=NONE

可以开始愉快的使用了
愉快的使用

Dockerbu部署

可参考官方文档keycloak-containers

docker run -e KEYCLOAK_USER=<USERNAME> -e KEYCLOAK_PASSWORD=<PASSWORD> -p 8180:8080 jboss/keycloak:16.1.1

还可以使用mysql而非默认的h2。

创建用户定义的网络

docker network create keycloak-network

启动 MySQL 实例
首先使用 MySQL docker 镜像启动一个 MySQL 实例:

docker run --name mysql -d --net keycloak-network -e MYSQL_DATABASE=keycloak -e MYSQL_USER=keycloak -e MYSQL_PASSWORD=password -e MYSQL_ROOT_PASSWORD=root_password mysql

启动 Keycloak 实例
启动 Keycloak 实例并连接到 MySQL 实例:

docker run --name keycloak --net keycloak-network jboss/keycloak:16.1.1

如果您为 MySQL 实例使用不同的名称,则mysql需要指定DB_ADDR环境变量。
实例中还有其他数据库连接使用
在这里插入图片描述
使用mysql的docker-compose示例

version: '3'

volumes:
  mysql_data:
      driver: local

services:
  mysql:
      image: mysql:5.7
      volumes:
        - mysql_data:/var/lib/mysql
      environment:
        MYSQL_ROOT_PASSWORD: root
        MYSQL_DATABASE: keycloak
        MYSQL_USER: keycloak
        MYSQL_PASSWORD: password
  keycloak:
      image: quay.io/keycloak/keycloak:legacy
      environment:
        DB_VENDOR: MYSQL
        DB_ADDR: mysql
        DB_DATABASE: keycloak
        DB_USER: keycloak
        DB_PASSWORD: password
        KEYCLOAK_USER: admin
        KEYCLOAK_PASSWORD: Pa55w0rd
        # Uncomment the line below if you want to specify JDBC parameters. The parameter below is just an example, and it shouldn't be used in production without knowledge. It is highly recommended that you read the MySQL JDBC driver documentation in order to use it.
        #JDBC_PARAMS: "connectTimeout=30000"
      ports:
        - 8080:8080
      depends_on:
        - mysql

在这个项目里也有其他数据库的docker-compose示例

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值