Keycloak的生产环境配置

       最近在研究sso,看到有推荐keycloak的,但大部分文章都是介绍开发模式,很少见到介绍生产模式的,特地做了个docker环境下keycloak生产模式的测试,验证可行。

      keycloak的安装比较简单,下面是基于docker环境下的安装配置

操作系统环境:centos7.9

数据库环境:Oracle19c

1、准备工作

1.1 创建几个文件夹如下:

/test/keycloak/conf    #用于映射容器的conf文件夹,配置文件就在里面

/test/keycloak/providers  #存放额外的服务提供插件及相关依赖,比如用户认证流、协议映射器之类

/test/keycloak/themes     #存放自定义的主题

/test/keycloak/logs        #日志

/test/keycloak/certs      #存放密钥库

1.2 创建一个数据库。在生产环境下,使用外部数据库比较稳妥,这里用Oracle19c容器数据库,创建一个pdb,创建一个用户。相关的表将在安装时自动创建。

1.3 使用keytool在certs文件夹创建一个keystore

keytool -genkeypair -alias 你女朋友的名字 -keystore keycloak.p12 -keyalg RSA -storepass 你女朋友的生日 -storetype pkcs12 -v

生成p12文件,keycloak规定start方式(即生产模式)启动下的实例必须开启https,所以需要用到这个文件。当然,你用openssl生成相关的密钥对也可以,keytool相对少些步骤。

1.4 拉镜像,用开发模式先启动一下

docker pull quay.io/keycloak/keycloak:22.0.3

#先用start-dev运行一下

docker run -p 8080:8080 --name keycloak -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:22.0.3 start-dev

 先运行一下是为了让它生成基本的conf文件,不用自己写那么多^_^

2. 配置

2.1 把容器里的配置文件复制出来(在容器的/opt/keycloak/conf下)

docker container cp keycloak:/opt/keycloak/conf /test/keycloak/

 2.2 复制完后该容器可以不要了,调整配置文件,增加如下内容:

db=oracle
db-username=数据库用户
db-password=密码

db-url=jdbc:oracle:thin:@//地址:端口/SID或者service

http-enabled=true   #这是为了使用http访问登录主页,不要也行。
https-port=xxxx     #指定https端口,不写就默认为8443,但在docker环境下,如果宿主8443已被占用,进行端口转换会出现控制台页面一直加载,无法访问的问题,所以这里变更了容器端口,后面映射到宿主的相同端口。

https-key-store-file=/opt/keycloak/certs/keycloak.p12  #https的证书keystore,后面给容器映射一个certs文件夹
https-key-store-password=创建keystore文件时用的密码

hostname=主机名     #指定前端主机名,生产环境中必须。
hostname-strict-backchannel=true    #暴露后端主机,与前端一致,使得第三方应用可直接访问,这个在面向非私有网络时需要设置,否则外部应用无法访问后端。
hostname-admin-url=https://主机名:8086   #管理台指定url,这个不设置的话,通过http访问主页后跳转会失败,这里实际上是指定了主页上"Administration Console"的链接地址。

hostname-debug=true   #辅助功能,设定后可通过http或https测试各链接是否正常,例如http://主机名/realms/master/hostname-debug

log=file    #开启文件日志模式
log-file=/opt/keycloak/logs/keycloak.log  #指定日志文件路径

2.3 基本配置调整完毕。这里注意,如果是在软件包环境下,还需要build一下,在docker环境下直接就可以docker run

3. 运行docker,以生产模式启动

 留意设置管理员初始密码,测试的话也可以在宿主环境下先行export以免每次带参数。

docker run --name keycloak \
-p 8085:8080 \
-p 8086:8086 \
-e KEYCLOAK_ADMIN=admin \
-e KEYCLOAK_ADMIN_PASSWORD=admin \
-v /test/keycloak/conf /opt/keycloak/conf \
-v /test/keycloak/providers /opt/keycloak/providers \
-v  /test/keycloak/themes /opt/keycloak/themes \
-v /test/keycloak/logs /opt/keycloak/logs \
-v /test/keycloak/keycloak/certs /opt/keycloak/certs \
quay.io/keycloak/keycloak:22.0.3 \
start

4. 登录管理台,开始使用。它原生支持多语言界面,在master的本地化里加上需要的语言即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值