《OpenShift / RHEL / DevSecOps / Ansible 汇总目录》
说明:本文已经在 OpenShift 4.11 环境中验证
$ cd ~
$ curl -LO https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
$ tar xzvf openjdk-11.0.2_linux-x64_bin.tar.gz
$ JAVA_PATH=~/jdk-11.0.2/bin
$ PATH=$PATH:$JAVA_PATH/bin
$ curl -LO https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
$ tar xzvf apache-maven-3.8.6-bin.tar.gz
$ PATH=$PATH:~/apache-maven-3.8.6/bin
$ yum install make
$ RH_SSO_HOST=$(oc get route keycloak -o jsonpath='{.spec.host}' -n sso) && echo $RH_SSO_HOST
$ oc get secret credential-example-keycloak -n sso -o go-template --template="{{.data.ADMIN_PASSWORD | base64decode}}"
$ oc new-project sso-app
$ git clone -b sso-base https://github.com/aolle/quarkus-petclinic.git && cd quarkus-petclinic
$ ./mvnw install -Dquarkus.kubernetes.deploy=true
$ oc get route quarkus-petclinic -o jsonpath='{.spec.host}' -n sso-app
本节将创建属于 vet 角色的 angel 用户以及属于 assistant 角色的 elisa 用户。
本节将实现对应用 http://quarkus-petclinic-sso.apps.cluster-72c7x.72c7x.sandbox2951.opentlc.com 的访问进行身份认证。
本节将配置只允许 vet 角色的用户才能访问应用的 VETERINARIANS 栏目,属于 demo realm 的其他用户可以访问应用的其他栏目。
$ MY_SSO_CLIENT_SECRET=kFJFDBluHlQIVCQg9S0aF3WAzUwXABto
$ oc create configmap quarkus-petclinic-config --from-literal=SSO_HOST=${RH_SSO_HOST} -n sso-app
$ oc create secret generic quarkus-petclinic-secret --from-literal=SSO_CLIENT_SECRET=${MY_SSO_CLIENT_SECRET} -n sso-app
$ cat >> ~/quarkus-petclinic/src/main/resources/application.properties << EOF
quarkus.oidc.auth-server-url=https://${RH_SSO_HOST}/auth/realms/demo
quarkus.oidc.client-id=quarkus-petclinic
quarkus.oidc.credentials.secret=${MY_SSO_CLIENT_SECRET}
quarkus.oidc.tls.verification=none
quarkus.oidc.roles.source=accesstokenquarkus.oidc.application-type=web-app
quarkus.oidc.webapp.auth-server-url=${quarkus.oidc.auth-server-url}
quarkus.oidc.webapp.client-id=${quarkus.oidc.client-id}
quarkus.oidc.webapp.credentials.secret=${quarkus.oidc.credentials.secret}
quarkus.oidc.webapp.roles.source=${quarkus.oidc.roles.source}quarkus.keycloak.policy-enforcer.enable=true
EOF
./mvnw quarkus:add-extension -Dextensions='oidc,keycloak-authorization'
./mvnw install -Dquarkus.kubernetes.deploy=true
https://olleb.com/rhsso-workshop/index.html