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?