Configuring CAS to connect to your Identity Provider (IDP)

An Identity Provider is a system or service that creates, maintains, and manages identity information for users and provides authentication services to applications or other systems. It acts as a trusted third party that authenticates users and shares their identity information with other services.

About this task

An IDP can be integrated with CAS to enhance security, access control, and compliance. It helps CAS by providing:
  • Secure Access: It ensures that only authorized users access sensitive content.
  • Single Sign-On (SSO): It enables you to log in once to access multiple systems.
  • Compliance: It helps meet regulatory requirements with audit trails and access controls.
  • User Management: It simplifies onboarding, offboarding, and role-based access.

To connect your IDP to the CAS deployment, perform the following steps:

Procedure

  1. Configure an IDP secret for CAS by creating a secret that is named idp-sec in CAS installation namespace with client_id and client_secret in Base64 format:
    kind: Secret
    apiVersion: v1
    metadata:
      name: idp-sec
      namespace: ibm-cas
    data:
      client_id: <client ID in base64 format>
      client_secret: <client secret in base64 format>
    type: Opaque
  2. Create a CAS IdentityProvider CR to specify the custom configuration details of your IDP. Specify the following fields based on your IDP configurations:
    apiVersion: cas.isf.ibm.com/v1beta1
    kind: IdentityProvider
    metadata:
      name: identityprovider-sample
      namespace: ibm-cas
    spec:
      identityProvider:
        claims:
          email:
            - <email>
          groups:
            - <groups>
          name:
            - <preferred_username>
          sub:
            - <subject>
        issuer: <Issuer URL of IDP>
        mappingMethod: claim
        name: openid
        scimClient:
          clientSecretName: <OpenShift secret storing client_id and client_secret parameters of IDP client>
          groupUrl: <IDP URL to retrieve all groups>
          userUrl: <IDP URL to retrieve all users>
        type: OpenidProvider
  3. To enable file-level security, add the following claims of the external IDP in the claims section:
    spec: 
      identityProvider: 
        claims: 
          groupID: 
            - gidNumber 
          supplementalGroups: 
            - supplementalGroups 
          userID:
            - uidNumber