This glossary defines common terms that are used in OKD authentication and authorization.
An authentication determines access to an OKD cluster and ensures only authenticated users access the OKD cluster.
Authorization determines whether the identified user has permissions to perform the requested action.
Bearer token is used to authenticate to API with the header
Authorization: Bearer <token>.
The Cloud Credential Operator (CCO) manages cloud provider credentials as custom resource definitions (CRDs).
A config map provides a way to inject configuration data into the pods. You can reference the data stored in a config map in a volume of type
ConfigMap. Applications running in a pod can use this data.
Lightweight and executable images that consist software and all its dependencies. Because containers virtualize the operating system, you can run containers in a data center, public or private cloud, or your local host.
A CR is an extension of the Kubernetes API.
A group is a set of users. A group is useful for granting permissions to multiple users one time.
HTPasswd updates the files that store usernames and password for authentication of HTTP users.
Keystone is an OpenStack project that provides identity, token, catalog, and policy services.
LDAP is a protocol that queries user information.
In manual mode, a user manages cloud credentials instead of the Cloud Credential Operator (CCO).
Mint mode is the default and recommended best practice setting for the Cloud Credential Operator (CCO) to use on the platforms for which it is supported. In this mode, the CCO uses the provided administrator-level cloud credential to create new credentials for components in the cluster with only the specific permissions that are required.
A namespace isolates specific system resources that are visible to all processes. Inside a namespace, only processes that are members of that namespace can see those resources.
A node is a worker machine in the OKD cluster. A node is either a virtual machine (VM) or a physical machine.
OAuth client is used to get a bearer token.
The OKD control plane includes a built-in OAuth server that determines the user’s identity from the configured identity provider and creates an access token.
The OpenID Connect is a protocol to authenticate the users to use single sign-on (SSO) to access sites that use OpenID Providers.
In passthrough mode, the Cloud Credential Operator (CCO) passes the provided cloud credential to the components that request cloud credentials.
A pod is the smallest logical unit in Kubernetes. A pod is comprised of one or more containers to run in a worker node.
Users that are created automatically in the cluster upon first login or via the API.
A request header is an HTTP header that is used to provide information about HTTP request context, so that the server can track the response of the request.
A key security control to ensure that cluster users and workloads have access to only the resources required to execute their roles.
Service accounts are used by the cluster components or applications.
Users that are created automatically when the cluster is installed.
Users is an entity that can make requests to API.
To control access to an OKD cluster, a cluster administrator can configure user authentication and ensure only approved users access the cluster.
To interact with an OKD cluster, users must first authenticate to the OKD API in some way. You can authenticate by providing an OAuth access token or an X.509 client certificate in your requests to the OKD API.
If you do not present a valid access token or certificate, your request is unauthenticated and you receive an HTTP 401 error.
An administrator can configure authentication through the following tasks:
Configuring an identity provider: You can define any supported identity provider in OKD and add it to your cluster.
Configuring the internal OAuth server: The OKD control plane includes a built-in OAuth server that determines the user’s identity from the configured identity provider and creates an access token. You can configure the token duration and inactivity timeout, and customize the internal OAuth server URL.
Users can view and manage OAuth tokens owned by them.
When users send a request for an OAuth token, they must specify either a default or custom OAuth client that receives and uses the token.
Managing cloud provider credentials using the Cloud Credentials Operator: Cluster components use cloud provider credentials to get permissions required to perform cluster-related tasks.
Impersonating a system admin user: You can grant cluster administrator permissions to a user by impersonating a system admin user.
Authorization involves determining whether the identified user has permissions to perform the requested action.
You can also control access to an OKD cluster through projects and namespaces.
Along with controlling user access to a cluster, you can also control the actions a pod can perform and the resources it can access using security context constraints (SCCs).
You can manage authorization for OKD through the following tasks:
Creating a local role and assigning it to a user or group.
Creating a cluster-admin user: By default, your cluster has only one cluster administrator called
kubeadmin. You can create another cluster administrator. Before creating a cluster administrator, ensure that you have configured an identity provider.
After creating the cluster admin user, delete the existing kubeadmin user to improve cluster security.
Creating service accounts: Service accounts provide a flexible way to control API access without sharing a regular user’s credentials. A user can create and use a service account in applications and also as an OAuth client.
Scoping tokens: A scoped token is a token that identifies as a specific user who can perform only specific operations. You can create scoped tokens to delegate some of your permissions to another user or a service account.
Syncing LDAP groups: You can manage user groups in one place by syncing the groups stored in an LDAP server with the OKD user groups.