Chapter 6. Understanding identity provider configuration
As an administrator, you can configure OAuth to specify an identity provider after you install your cluster. Developers and administrators obtain OAuth access tokens to authenticate themselves to the API.
The OpenShift Container Platform master includes a built-in OAuth server.
6.1. About identity providers in OpenShift Container Platform Copy linkLink copied to clipboard!
You can configure identity providers by creating a custom resource (CR) that describes the provider and adding it to the cluster. Identity providers enable user authentication in OpenShift Container Platform beyond the default kubeadmin user.
OpenShift Container Platform user names containing /, :, and % are not supported.
6.2. Supported identity providers Copy linkLink copied to clipboard!
You can configure the following types of identity providers:
| Identity provider | Description |
|---|---|
|
Configure the | |
|
Configure the | |
|
Configure the | |
|
Configure a | |
|
Configure a | |
|
Configure a | |
|
Configure a | |
|
Configure a | |
|
Configure an |
Once an identity provider has been defined, you can use RBAC to define and apply permissions.
6.3. Removing the kubeadmin user Copy linkLink copied to clipboard!
After you define an identity provider and create a new cluster-admin user, you can remove the kubeadmin to improve cluster security.
If you follow this procedure before another user is a cluster-admin, then OpenShift Container Platform must be reinstalled. It is not possible to undo this command.
Prerequisites
- You must have configured at least one identity provider.
-
You must have added the
cluster-adminrole to a user. - You must be logged in as an administrator.
Procedure
Remove the
kubeadminsecrets:$ oc delete secrets kubeadmin -n kube-system
6.4. Identity provider parameters Copy linkLink copied to clipboard!
The following parameters are common to all identity providers:
| Parameter | Description |
|---|---|
|
| The provider name is prefixed to provider user names to form an identity name. |
|
| Defines how new identities are mapped to users when they log in. Enter one of the following values:
|
When adding or changing identity providers, you can map identities from the new provider to existing users by setting the mappingMethod parameter to add.
6.5. Sample identity provider CR Copy linkLink copied to clipboard!
You can use a custom resource (CR) to see the parameters and default values that you use to configure an identity provider.
The following example uses the htpasswd identity provider.
Sample identity provider CR
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
spec:
identityProviders:
- name: my_identity_provider
mappingMethod: claim
type: HTPasswd
htpasswd:
fileData:
name: htpass-secret
where:
spec.identityProviders.name- Specifies the provider name, which is prefixed to provider user names to form an identity name.
spec.identityProviders.mappingMethod-
Specifies how mappings are established between this provider’s identities and
Userobjects. spec.identityProviders.htpasswd.fileData.name-
Specifies an existing secret containing a file generated using
htpasswd.
6.6. Manually provisioning a user when using the lookup mapping method Copy linkLink copied to clipboard!
You can manually provision users when the lookup mapping method is enabled. The lookup method disables automatic identity-to-user mapping during login, requiring manual provisioning of each user after configuring the identity provider.
Prerequisites
-
You have installed the OpenShift CLI (
oc).
Procedure
Create an OpenShift Container Platform user:
$ oc create user <username>Create an OpenShift Container Platform identity:
$ oc create identity <identity_provider>:<identity_provider_user_id>Where
<identity_provider_user_id>is a name that uniquely represents the user in the identity provider.Create a user identity mapping for the created user and identity:
$ oc create useridentitymapping <identity_provider>:<identity_provider_user_id> <username>