Configuring OAuth clients
Several OAuth clients are created by default in OKD. You can also register and configure additional OAuth clients.
Default OAuth clients
The following OAuth clients are automatically created when starting the OKD API:
OAuth client | Usage |
---|---|
| Requests tokens at |
| Requests tokens with a user-agent that can handle |
<namespace_route>
refers to the namespace route. This is found by running the following command:$ oc get route oauth-openshift -n openshift-authentication -o json | jq .spec.host
Registering an additional OAuth client
If you need an additional OAuth client to manage authentication for your OKD cluster, you can register one.
Procedure
To register additional OAuth clients:
$ oc create -f <(echo '
kind: OAuthClient
apiVersion: oauth.openshift.io/v1
metadata:
name: demo (1)
secret: "..." (2)
redirectURIs:
- "http://www.example.com/" (3)
grantMethod: prompt (4)
')
1 The name
of the OAuth client is used as theclient_id
parameter when making requests to<namespace_route>/oauth/authorize
and<namespace_route>/oauth/token
.2 The secret
is used as theclient_secret
parameter when making requests to<namespace_route>/oauth/token
.3 The redirect_uri
parameter specified in requests to<namespace_route>/oauth/authorize
and<namespace_route>/oauth/token
must be equal to or prefixed by one of the URIs listed in theredirectURIs
parameter value.4 The grantMethod
is used to determine what action to take when this client requests tokens and has not yet been granted access by the user. Specifyauto
to automatically approve the grant and retry the request, orprompt
to prompt the user to approve or deny the grant.
Configuring token inactivity timeout for an OAuth client
You can configure OAuth clients to expire OAuth tokens after a set period of inactivity. By default, no token inactivity timeout is set.
If the token inactivity timeout is also configured in the internal OAuth server configuration, the timeout that is set in the OAuth client overrides that value. |
Prerequisites
You have access to the cluster as a user with the
cluster-admin
role.You have configured an identity provider (IDP).
Procedure
Update the
OAuthClient
configuration to set a token inactivity timeout.Edit the
OAuthClient
object:$ oc edit oauthclient <oauth_client> (1)
1 Replace <oauth_client>
with the OAuth client to configure, for example,console
.Add the
accessTokenInactivityTimeoutSeconds
field and set your timeout value:apiVersion: oauth.openshift.io/v1
grantMethod: auto
kind: OAuthClient
metadata:
...
accessTokenInactivityTimeoutSeconds: 600 (1)
1 The minimum allowed timeout value in seconds is 300
.Save the file to apply the changes.
Verification
Log in to the cluster with an identity from your IDP. Be sure to use the OAuth client that you just configured.
Perform an action and verify that it was successful.
Wait longer than the configured timeout without using the identity. In this procedure’s example, wait longer than 600 seconds.
Try to perform an action from the same identity’s session.
This attempt should fail because the token should have expired due to inactivity longer than the configured timeout.
Additional resources
- [OAuthClient [oauth.openshift.io/v1]($a86f20472abe5e64.md#oauthclient-oauth-openshift-io-v1)]