Skip to content

Red Hat Single Sign-on (SSO) configuration🔗

You can configure Red Hat Single Sign-on (SSO) to be installed on the OpenShift cluster as an Identity Provider (IdP). Red Hat SSO implements the open-source Keycloak project which offers a user registry and can also federate other IdPs.

Red Hat SSO configuration - openshift_redhat_sso🔗

An openshift_redhat_sso resource indicates that the Red Hat Single Sign-on operator must be installed on the referenced OpenShift cluster. A single SSO configuration can have only 1 Keycloak realms defined. The Keycloak realm holds all configuration needed for authentication. If you want to host more than 1 Keycloak server on the cluster, specify multiple openshift_redhat_sso entries, each with its own keycloak_name. The keycloak_name also determines the OpenShift project that will be created.

openshift_redhat_sso:
- openshift_cluster_name: "{{ env_id }}"
  keycloak_name: ibm-keycloak
  groups:
  - name: kc-cp4d-admins
    state: present
  - name: kc-cp4d-data-engineers
    state: present
  - name: kc-cp4d-data-scientists
    state: present
  - name: kc-cp4d-monitors
    state: present

The above configuration installs the Red Hat SSO operator in OpenShift project ibm-keycloak and creates a Keycloak instance named ibm-keycloak. The instance has a single realm: master which contains the groups, users and clients which are then leveraged by Cloud Pak Foundational Services.

Currently you can only define Keycloak groups which are later mapped to Cloud Pak for Data user groups. Creating users and setting up federated identity providers must be done by logging into Keycloak.

The Keycloak name is referenced in the Zen Access Control resource and this is also where the mapping from Keycloak groups to Cloud Pak for Data groups takes place.

Property explanation🔗

Property Description Mandatory Allowed values
openshift_cluster_name Name of OpenShift cluster onto which the Red Hat SSO operator is installed Yes. if more than 1 openshift resource in the configuration
keycloak_name Name of the Keycloak server, this also determines the name of the project into which the Keycloak server will be created Yes
.groups[] Groups that will be created in the Keycloak realm Yes
.name Name of the Keycloak group Yes
.state Whether the group is present or absent Yes present, absent