Chapter 2. Configuring Red Hat Single Sign-On for OpenShift

2.1. Using the Red Hat Single Sign-On for OpenShift Image Streams and application templates

Red Hat JBoss Middleware for OpenShift images are pulled on demand from the secured Red Hat Registry: registry.redhat.io, which requires authentication. To retrieve content, you will need to log into the registry using the Red Hat account.

To consume container images from registry.redhat.io in shared environments such as OpenShift, it is recommended for an administrator to use a Registry Service Account, also referred to as authentication tokens, in place of an individual person’s Red Hat Customer Portal credentials.

Procedure

  1. To create a Registry Service Account, navigate to the Registry Service Account Management Application, and log in if necessary.
  2. From the Registry Service Accounts page, click Create Service Account.
  3. Provide a name for the Service Account, for example registry.redhat.io-sa. It will be prepended with a fixed, random string.

    1. Enter a description for the Service Account, for example Service account to consume container images from registry.redhat.io..
    2. Click Create.
  4. After the Service Account was created, click the registry.redhat.io-sa link in the Account name column of the table presented on the Registry Service Accounts page.
  5. Finally, click the OpenShift Secret tab, and perform all steps listed on that page.

See the Red Hat Container Registry Authentication article for more information.

Procedure

  1. Ensure that you are logged in as a cluster administrator or a user with project administrator access to the global openshift project:
  2. Choose a command based on your version of OpenShift Container Platform.

    1. If you are running an OpenShift Container Platform v3 based cluster instance on (some) of your master host(s), perform the following:

      $ oc login -u system:admin
    2. If you are running an OpenShift Container Platform v4 based cluster instance, log in to the CLI as the kubeadmin user:

      $ oc login -u kubeadmin -p password https://openshift.example.com:6443
  3. Run the following commands to update the core set of Red Hat Single Sign-On 7.5.3 resources for OpenShift in the openshift project:

    $ for resource in sso75-image-stream.json \
      sso75-https.json \
      sso75-postgresql.json \
      sso75-postgresql-persistent.json \
      sso75-x509-https.json \
      sso75-x509-postgresql-persistent.json
    do
      oc replace -n openshift --force -f \
      https://raw.githubusercontent.com/jboss-container-images/redhat-sso-7-openshift-image/sso75-dev/templates/${resource}
    done
  4. Run the following command to install the Red Hat Single Sign-On 7.5.3 OpenShift image streams in the openshift project:

    $ oc -n openshift import-image rh-sso-7/sso75-openshift-rhel8:7.5 --from=registry.redhat.io/rh-sso-7/sso75-openshift-rhel8:7.5 --confirm

2.2. Deploying the Red Hat Single Sign-On Image

2.2.1. Preparing for the deployment

Procedure

  1. Log in to the OpenShift CLI with a user that holds the cluster:admin role.
  2. Create a new project:

    $ oc new-project sso-app-demo
  3. Add the view role to the default service account. This enables the service account to view all the resources in the sso-app-demo namespace, which is necessary for managing the cluster.

    $ oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default

2.2.2. Deploying the Red Hat Single Sign-On Image using the application template

You can deploy the template using one of these interfaces:

2.2.2.1. Deploying the Template using OpenShift CLI

Procedure

  1. List the available Red Hat Single Sign-On application templates:

    $ oc get templates -n openshift -o name | grep -o 'sso75.\+'
    sso75-https
    sso75-postgresql
    sso75-postgresql-persistent
    sso75-x509-https
    sso75-x509-postgresql-persistent
  2. Deploy the selected one:

    $ oc new-app --template=sso75-x509-https
    --> Deploying template "openshift/sso75-x509-https" to project sso-app-demo
    
         Red Hat Single Sign-On 7.5 (Ephemeral)
         ---------
         An example Red Hat Single Sign-On 7 application. For more information about using this template, see <link xlink:href="https://github.com/jboss-openshift/application-templates">https://github.com/jboss-openshift/application-templates</link>.
    
         A new Red Hat Single Sign-On service has been created in your project. The admin username/password for accessing the master realm using the Red Hat Single Sign-On console is IACfQO8v/nR7llVSVb4Dye3TNRbXoXhRpAKTmiCRc. The HTTPS keystore used for serving secure content, the JGroups keystore used for securing JGroups communications, and server truststore used for securing Red Hat Single Sign-On requests were automatically created using OpenShift's service serving x509 certificate secrets.
    
         * With parameters:
            * Application Name=sso
            * JGroups Cluster Password=jg0Rssom0gmHBnooDF3Ww7V4Mu5RymmB # generated
            * Datasource Minimum Pool Size=
            * Datasource Maximum Pool Size=
            * Datasource Transaction Isolation=
            * ImageStream Namespace=openshift
            * Red Hat Single Sign-On Administrator Username=IACfQO8v # generated
            * Red Hat Single Sign-On Administrator Password=nR7llVSVb4Dye3TNRbXoXhRpAKTmiCRc # generated
            * Red Hat Single Sign-On Realm=
            * Red Hat Single Sign-On Service Username=
            * Red Hat Single Sign-On Service Password=
            * Container Memory Limit=1Gi
    
    --> Creating resources ...
        service "sso" created
        service "secure-sso" created
        service "sso-ping" created
        route "sso" created
        route "secure-sso" created
        deploymentconfig "sso" created
    --> Success
        Run 'oc status' to view your app.

2.2.2.2. Deploying the Template using the OpenShift 3.x Web Console

Procedure

  1. Log in to the OpenShift web console and select the sso-app-demo project space.
  2. Click Add to Project, then Browse Catalog to list the default image streams and templates.
  3. Use the Filter by Keyword search bar to limit the list to those that match sso. You may need to click Middleware, then Integration to show the desired application template.
  4. Select an Red Hat Single Sign-On application template. This example uses Red Hat Single Sign-On 7.5 (Ephemeral).
  5. Click Next in the Information step.
  6. From the Add to Project drop-down menu, select the sso-app-demo project space. Then click Next.
  7. Select Do not bind at this time radio button in the Binding step. Click Create to continue.
  8. In the Results step, click the Continue to the project overview link to verify the status of the deployment.

2.2.2.3. Deploying the Template using the OpenShift 4.x Web Console

Procedure

  1. Log in to the OpenShift web console and select the sso-app-demo project space.
  2. On the left sidebar, click the Administrator tab and then click </> Developer.

    choose developer role

  3. Click From Catalog.

    add from catalog

  4. Search for sso.

    sso keyword

  5. Choose a template such as Red Hat Single Sign-On 7.5 on OpenJDK (Ephemeral).

    choose template

  6. Click Instantiate Template.

    instantiate template

  7. Adjust the template parameters if necessary and click Create.
  8. Verify the Red Hat Single Sign-On for OpenShift image was deployed.

    verify deployment

2.3. Accessing the Administrator Console of the Red Hat Single Sign-On Pod

Procedure

  1. After the template is deployed, identify the available routes.

    $ oc get routes
    NAME     HOST/PORT
    sso      sso-sso-app-demo.openshift.example.com
  2. Access the Red Hat Single Sign-On Admin Console.

    https://sso-sso-app-demo.openshift.example.com/auth/admin
  3. Provide the login credentials for the administrator account.