openshift使用keycloak登录
参考:
http://blog.keycloak.org/2015/06/openshift-ui-console-authentication.html
https://hub.docker.com/r/jboss/keycloak/
https://uptoknow.github.io/post/openshift-with-keycloak-openid/
http://blog.keycloak.org/2018/05/keycloak-on-openshift.html
https://docs.okd.io/3.11/install_config/configuring_authentication.html#OpenID
创建project
oc new-project keycloak发布mysql
应用目录选择发布持久化Mysql 5.7
注意:创建时填写默认数据库名称为keycloak
发布keycloak
oc process -n keycloak -f https://raw.githubusercontent.com/ss75710541/keycloak-with-openshift-auth-provider/master/keycloak-with-openshift-auth-provider.yaml -p KEYCLOAK_IMAGE="docker.io/jboss/keycloak:4.8.3.Final" | oc create -f -修改keycloak环境变量, 增加下面环境变量
- name: DB_DATABASE
valueFrom:
secretKeyRef:
key: database-name
name: mysql
- name: DB_USER
valueFrom:
secretKeyRef:
key: database-user
name: mysql
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
key: database-password
name: mysql
- name: DB_ADDR
value: mysql.keycloak.svc
- name: DB_PORT
value: '3306'
- name: DB_VENDOR
value: mysql
- name: MYSQL_PORT
value: '3306'修改keycloak证书
生成keycloak相关证书(一般使用tls证书)
tls证书(默认选择,keycloak 镜像自动转为java使用的证书)
创建configmap(文件名称必须为tls.crt 和 tls.key ,否则不识别,所以在创建configmap前先修改文件名称,)
添加configmap挂载配置
创建jks证书(安装使用麻烦,只做参考,弃用)
创建configmap
在keycloak的发布yaml中添加configmap挂载配置
导入openshift realm
访问https://keycloak-https-keycloak.apps181.hisun.com
以admin账号登录keycloak ,点添加realm,选择文件导入realm-openshift.json
修改clients
修改Valid Redirect URIs
选择realm--> Openshift --> Clients --> Settings
修改Valid Redirect URIs (根据实际openshift的访问地址修改)
重置keycloak openshift clinet 密钥
选择realm--> Openshift --> Clients --> Credentials
点击 Regenerate secret 重置密钥
添加测试用户
选择realm--> Openshift --> Users --> Add user
重置新用户密码
选择 Users --> <新添加的用户名> --> Credentials
配置Openshift master
配置master config
登录master主机
cd /etc/origin/master/
注:minishift的master目录为/var/lib/minishift/base/kube-apiserver/
上传keycloak-ca.crt文件
vi master-config.yaml
找到oauthConfig, identityProviders下添加下面内容
重启master api
修改openshift logout url
编辑configmap webconsole-config
修改logoutPublicURL 的值为(酌情修改)
注意:minishift 的webconsole-config是operator管理的,所以直接修改logoutPublicURL无效,需要停止webconsole-config 的 operator服务才可以,这里暂无完美解决方法
支持作者
如果文章对您有帮助,欢迎打赏,谢谢

Last updated
Was this helpful?