Skip to content

Commit 2ddc070

Browse files
committed
OSDOCS-3984: Port Authentication and authorization book to OSD and ROSA
1 parent f24bfab commit 2ddc070

37 files changed

+397
-88
lines changed

_topic_maps/_topic_map_osd.yml

Lines changed: 72 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,8 +265,6 @@ Name: Cluster administration
265265
Dir: osd_cluster_admin
266266
Distros: openshift-dedicated
267267
Topics:
268-
- Name: Managing administration roles and users
269-
File: osd-admin-roles
270268
- Name: Configuring private connections
271269
Dir: osd_private_connections
272270
Distros: openshift-dedicated
@@ -305,8 +303,80 @@ Name: Authentication and authorization
305303
Dir: authentication
306304
Distros: openshift-dedicated
307305
Topics:
306+
- Name: Authentication and authorization overview
307+
File: index
308+
- Name: Understanding authentication
309+
File: understanding-authentication
310+
# - Name: Configuring the internal OAuth server
311+
# File: configuring-internal-oauth
312+
# - Name: Configuring OAuth clients
313+
# File: configuring-oauth-clients
314+
- Name: Managing user-owned OAuth access tokens
315+
File: managing-oauth-access-tokens
316+
# - Name: Understanding identity provider configuration
317+
# File: understanding-identity-provider
318+
- Name: Configuring identity providers
319+
File: sd-configuring-identity-providers
320+
# - Name: Configuring identity providers
321+
# Dir: identity_providers
322+
# Topics:
323+
# - Name: Configuring an htpasswd identity provider
324+
# File: configuring-htpasswd-identity-provider
325+
# - Name: Configuring a Keystone identity provider
326+
# File: configuring-keystone-identity-provider
327+
# - Name: Configuring an LDAP identity provider
328+
# File: configuring-ldap-identity-provider
329+
# - Name: Configuring a basic authentication identity provider
330+
# File: configuring-basic-authentication-identity-provider
331+
# - Name: Configuring a request header identity provider
332+
# File: configuring-request-header-identity-provider
333+
# - Name: Configuring a GitHub or GitHub Enterprise identity provider
334+
# File: configuring-github-identity-provider
335+
# - Name: Configuring a GitLab identity provider
336+
# File: configuring-gitlab-identity-provider
337+
# - Name: Configuring a Google identity provider
338+
# File: configuring-google-identity-provider
339+
# - Name: Configuring an OpenID Connect identity provider
340+
# File: configuring-oidc-identity-provider
341+
- Name: Managing administration roles and users
342+
File: osd-admin-roles
343+
- Name: Using RBAC to define and apply permissions
344+
File: using-rbac
345+
# - Name: Removing the kubeadmin user
346+
# File: remove-kubeadmin
347+
#- Name: Configuring LDAP failover
348+
# File: configuring-ldap-failover
349+
- Name: Understanding and creating service accounts
350+
File: understanding-and-creating-service-accounts
351+
- Name: Using service accounts in applications
352+
File: using-service-accounts-in-applications
353+
- Name: Using a service account as an OAuth client
354+
File: using-service-accounts-as-oauth-client
355+
- Name: Scoping tokens
356+
File: tokens-scoping
357+
- Name: Using bound service account tokens
358+
File: bound-service-account-tokens
308359
- Name: Managing security context constraints
309360
File: managing-security-context-constraints
361+
- Name: Understanding and managing pod security admission
362+
File: understanding-and-managing-pod-security-admission
363+
# - Name: Impersonating the system:admin user
364+
# File: impersonating-system-admin
365+
- Name: Syncing LDAP groups
366+
File: ldap-syncing
367+
# - Name: Managing cloud provider credentials
368+
# Dir: managing_cloud_provider_credentials
369+
# Topics:
370+
# - Name: About the Cloud Credential Operator
371+
# File: about-cloud-credential-operator
372+
# - Name: Mint mode
373+
# File: cco-mode-mint
374+
# - Name: Passthrough mode
375+
# File: cco-mode-passthrough
376+
# - Name: Manual mode with long-term credentials for components
377+
# File: cco-mode-manual
378+
# - Name: Manual mode with short-term credentials for components
379+
# File: cco-short-term-creds
310380
---
311381
Name: Upgrading
312382
Dir: upgrading

_topic_maps/_topic_map_rosa.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,10 +454,80 @@ Name: Authentication and authorization
454454
Dir: authentication
455455
Distros: openshift-rosa
456456
Topics:
457+
- Name: Authentication and authorization overview
458+
File: index
459+
- Name: Understanding authentication
460+
File: understanding-authentication
461+
# - Name: Configuring the internal OAuth server
462+
# File: configuring-internal-oauth
463+
# - Name: Configuring OAuth clients
464+
# File: configuring-oauth-clients
465+
- Name: Managing user-owned OAuth access tokens
466+
File: managing-oauth-access-tokens
467+
# - Name: Understanding identity provider configuration
468+
# File: understanding-identity-provider
469+
- Name: Configuring identity providers
470+
File: sd-configuring-identity-providers
471+
# - Name: Configuring identity providers
472+
# Dir: identity_providers
473+
# Topics:
474+
# - Name: Configuring an htpasswd identity provider
475+
# File: configuring-htpasswd-identity-provider
476+
# - Name: Configuring a Keystone identity provider
477+
# File: configuring-keystone-identity-provider
478+
# - Name: Configuring an LDAP identity provider
479+
# File: configuring-ldap-identity-provider
480+
# - Name: Configuring a basic authentication identity provider
481+
# File: configuring-basic-authentication-identity-provider
482+
# - Name: Configuring a request header identity provider
483+
# File: configuring-request-header-identity-provider
484+
# - Name: Configuring a GitHub or GitHub Enterprise identity provider
485+
# File: configuring-github-identity-provider
486+
# - Name: Configuring a GitLab identity provider
487+
# File: configuring-gitlab-identity-provider
488+
# - Name: Configuring a Google identity provider
489+
# File: configuring-google-identity-provider
490+
# - Name: Configuring an OpenID Connect identity provider
491+
# File: configuring-oidc-identity-provider
492+
- Name: Using RBAC to define and apply permissions
493+
File: using-rbac
494+
# - Name: Removing the kubeadmin user
495+
# File: remove-kubeadmin
496+
#- Name: Configuring LDAP failover
497+
# File: configuring-ldap-failover
498+
- Name: Understanding and creating service accounts
499+
File: understanding-and-creating-service-accounts
500+
- Name: Using service accounts in applications
501+
File: using-service-accounts-in-applications
502+
- Name: Using a service account as an OAuth client
503+
File: using-service-accounts-as-oauth-client
457504
- Name: Assuming an AWS IAM role for a service account
458505
File: assuming-an-aws-iam-role-for-a-service-account
506+
- Name: Scoping tokens
507+
File: tokens-scoping
508+
- Name: Using bound service account tokens
509+
File: bound-service-account-tokens
459510
- Name: Managing security context constraints
460511
File: managing-security-context-constraints
512+
- Name: Understanding and managing pod security admission
513+
File: understanding-and-managing-pod-security-admission
514+
# - Name: Impersonating the system:admin user
515+
# File: impersonating-system-admin
516+
- Name: Syncing LDAP groups
517+
File: ldap-syncing
518+
# - Name: Managing cloud provider credentials
519+
# Dir: managing_cloud_provider_credentials
520+
# Topics:
521+
# - Name: About the Cloud Credential Operator
522+
# File: about-cloud-credential-operator
523+
# - Name: Mint mode
524+
# File: cco-mode-mint
525+
# - Name: Passthrough mode
526+
# File: cco-mode-passthrough
527+
# - Name: Manual mode with long-term credentials for components
528+
# File: cco-mode-manual
529+
# - Name: Manual mode with short-term credentials for components
530+
# File: cco-short-term-creds
461531
---
462532
Name: Upgrading
463533
Dir: upgrading

authentication/bound-service-account-tokens.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ include::modules/bound-sa-tokens-configuring-externally.adoc[leveloffset=+1]
2020
[role="_additional-resources"]
2121
.Additional resources
2222

23+
// This xref target does not exist in the OSD/ROSA docs.
24+
ifndef::openshift-dedicated,openshift-rosa[]
2325
* xref:../nodes/nodes/nodes-nodes-rebooting.adoc#nodes-nodes-rebooting-gracefully_nodes-nodes-rebooting[Rebooting a node gracefully]
26+
endif::openshift-dedicated,openshift-rosa[]
2427

2528
* xref:../authentication/understanding-and-creating-service-accounts.adoc#service-accounts-managing_understanding-service-accounts[Creating service accounts]
2629

authentication/index.adoc

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,38 @@ include::modules/authentication-authorization-common-terms.adoc[leveloffset=+1]
99

1010
[id="authentication-overview"]
1111
== About authentication in {product-title}
12-
To control access to an {product-title} cluster, a cluster administrator can configure xref:../authentication/understanding-authentication.adoc#understanding-authentication[user authentication] and ensure only approved users access the cluster.
12+
To control access to an {product-title} cluster,
13+
ifndef::openshift-dedicated,openshift-rosa[]
14+
a cluster administrator
15+
endif::openshift-dedicated,openshift-rosa[]
16+
ifdef::openshift-dedicated,openshift-rosa[]
17+
an administrator with the `dedicated-admin` role
18+
endif::openshift-dedicated,openshift-rosa[]
19+
can configure xref:../authentication/understanding-authentication.adoc#understanding-authentication[user authentication] and ensure only approved users access the cluster.
1320

1421
To interact with an {product-title} cluster, users must first authenticate to the {product-title} API in some way. You can authenticate by providing an xref:../authentication/understanding-authentication.adoc#rbac-api-authentication_understanding-authentication[OAuth access token or an X.509 client certificate] in your requests to the {product-title} API.
1522

1623
[NOTE]
1724
====
1825
If you do not present a valid access token or certificate, your request is unauthenticated and you receive an HTTP 401 error.
1926
====
27+
28+
ifdef::openshift-dedicated,openshift-rosa[]
29+
An administrator can configure authentication by configuring an identity provider. You can define any xref:../authentication/sd-configuring-identity-providers.adoc#understanding-idp-supported_sd-configuring-identity-providers[supported identity provider in {product-title}] and add it to your cluster.
30+
endif::openshift-dedicated,openshift-rosa[]
31+
32+
ifndef::openshift-dedicated,openshift-rosa[]
2033
An administrator can configure authentication through the following tasks:
2134

2235
* Configuring an identity provider: You can define any xref:../authentication/understanding-identity-provider.adoc#supported-identity-providers[supported identity provider in {product-title}] and add it to your cluster.
23-
* xref:../authentication/configuring-internal-oauth.adoc#configuring-internal-oauth[Configuring the internal OAuth server]: The {product-title} 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.
36+
37+
* xref:../authentication/configuring-internal-oauth.adoc#configuring-internal-oauth[Configuring the internal OAuth server]: The {product-title} 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.
2438
+
2539
[NOTE]
2640
====
2741
Users can xref:../authentication/managing-oauth-access-tokens.adoc#managing-oauth-access-tokens[view and manage OAuth tokens owned by them].
2842
====
43+
2944
* Registering an OAuth client: {product-title} includes several xref:../authentication/configuring-oauth-clients.adoc#oauth-default-clients_configuring-oauth-clients[default OAuth clients]. You can xref:../authentication/configuring-oauth-clients.adoc#oauth-register-additional-client_configuring-oauth-clients[register and configure additional OAuth clients].
3045
+
3146
[NOTE]
@@ -35,6 +50,7 @@ When users send a request for an OAuth token, they must specify either a default
3550

3651
* Managing cloud provider credentials using the xref:../authentication/managing_cloud_provider_credentials/about-cloud-credential-operator.adoc#about-cloud-credential-operator[Cloud Credentials Operator]: Cluster components use cloud provider credentials to get permissions required to perform cluster-related tasks.
3752
* Impersonating a system admin user: You can grant cluster administrator permissions to a user by xref:../authentication/impersonating-system-admin.adoc#impersonating-system-admin[impersonating a system admin user].
53+
endif::openshift-dedicated,openshift-rosa[]
3854

3955
[id="authorization-overview"]
4056
== About authorization in {product-title}
@@ -49,14 +65,35 @@ Along with controlling user access to a cluster, you can also control the action
4965
You can manage authorization for {product-title} through the following tasks:
5066

5167
* Viewing xref:../authentication/using-rbac.adoc#viewing-local-roles_using-rbac[local] and xref:../authentication/using-rbac.adoc#viewing-cluster-roles_using-rbac[cluster] roles and bindings.
68+
5269
* Creating a xref:../authentication/using-rbac.adoc#creating-local-role_using-rbac[local role] and assigning it to a user or group.
70+
71+
ifndef::openshift-dedicated,openshift-rosa[]
5372
* Creating a cluster role and assigning it to a user or group: {product-title} includes a set of xref:../authentication/using-rbac.adoc#default-roles_using-rbac[default cluster roles]. You can create additional xref:../authentication/using-rbac.adoc#creating-cluster-role_using-rbac[cluster roles] and xref:../authentication/using-rbac.adoc#adding-roles_using-rbac[add them to a user or group].
73+
endif::openshift-dedicated,openshift-rosa[]
74+
ifdef::openshift-dedicated,openshift-rosa[]
75+
* Assigning a cluster role to a user or group: {product-title} includes a set of xref:../authentication/using-rbac.adoc#default-roles_using-rbac[default cluster roles]. You can xref:../authentication/using-rbac.adoc#adding-roles_using-rbac[add them to a user or group].
76+
endif::openshift-dedicated,openshift-rosa[]
77+
78+
ifndef::openshift-dedicated,openshift-rosa[]
5479
* Creating a cluster-admin user: By default, your cluster has only one cluster administrator called `kubeadmin`. You can xref:../authentication/using-rbac.adoc#creating-cluster-admin_using-rbac[create another cluster administrator]. Before creating a cluster administrator, ensure that you have configured an identity provider.
5580
+
5681
[NOTE]
5782
====
5883
After creating the cluster admin user, xref:../authentication/remove-kubeadmin.adoc#removing-kubeadmin_removing-kubeadmin[delete the existing kubeadmin user] to improve cluster security.
5984
====
85+
endif::openshift-dedicated,openshift-rosa[]
86+
87+
ifdef::openshift-rosa[]
88+
* Creating cluster-admin and dedicated-admin users: The user who created the {product-title} cluster can grant access to other xref:../authentication/using-rbac.adoc#rosa-create-cluster-admins_using-rbac[`cluster-admin`] and xref:../authentication/using-rbac.adoc#rosa-create-dedicated-cluster-admins_using-rbac[`dedicated-admin`] users.
89+
endif::openshift-rosa[]
90+
91+
ifdef::openshift-dedicated[]
92+
* Granting administrator privileges to users: You can xref:../authentication/using-rbac.adoc#osd-grant-admin-privileges_using-rbac[grant `dedicated-admin` privileges to users].
93+
endif::openshift-dedicated[]
94+
6095
* Creating service accounts: xref:../authentication/understanding-and-creating-service-accounts.adoc#service-accounts-overview_understanding-service-accounts[Service accounts] provide a flexible way to control API access without sharing a regular user’s credentials. A user can xref:../authentication/understanding-and-creating-service-accounts.adoc#service-accounts-managing_understanding-service-accounts[create and use a service account in applications] and also as xref:../authentication/using-service-accounts-as-oauth-client.adoc#using-service-accounts-as-oauth-client[an OAuth client].
96+
6197
* xref:../authentication/tokens-scoping.adoc#tokens-scoping[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.
98+
6299
* Syncing LDAP groups: You can manage user groups in one place by xref:../authentication/ldap-syncing.adoc#ldap-syncing[syncing the groups stored in an LDAP server] with the {product-title} user groups.

authentication/ldap-syncing.adoc

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ toc::[]
99
ifdef::openshift-enterprise,openshift-webscale,openshift-origin[]
1010
As an administrator,
1111
endif::[]
12+
ifdef::openshift-dedicated,openshift-rosa[]
13+
As an administrator with the `dedicated-admin` role,
14+
endif::openshift-dedicated,openshift-rosa[]
1215
you can use groups to manage users, change
1316
their permissions, and enhance collaboration. Your organization may have already
1417
created user groups and stored them in an LDAP server. {product-title} can sync
@@ -17,15 +20,28 @@ your groups in one place. {product-title} currently supports group sync with
1720
LDAP servers using three common schemas for defining group membership: RFC 2307,
1821
Active Directory, and augmented Active Directory.
1922

23+
ifndef::openshift-dedicated,openshift-rosa[]
2024
For more information on configuring LDAP, see
2125
xref:../authentication/identity_providers/configuring-ldap-identity-provider.adoc#configuring-ldap-identity-provider[Configuring an LDAP identity provider].
26+
endif::openshift-dedicated,openshift-rosa[]
27+
28+
ifdef::openshift-dedicated,openshift-rosa[]
29+
For more information on configuring LDAP, see
30+
xref:../authentication/sd-configuring-identity-providers.adoc#config-ldap-idp_sd-configuring-identity-providers[Configuring an LDAP identity provider].
31+
endif::openshift-dedicated,openshift-rosa[]
2232

2333
ifdef::openshift-enterprise,openshift-webscale,openshift-origin[]
2434
[NOTE]
2535
====
2636
You must have `cluster-admin` privileges to sync groups.
2737
====
2838
endif::[]
39+
ifdef::openshift-dedicated,openshift-rosa[]
40+
[NOTE]
41+
====
42+
You must have `dedicated-admin` privileges to sync groups.
43+
====
44+
endif::openshift-dedicated,openshift-rosa[]
2945

3046
include::modules/ldap-syncing-about.adoc[leveloffset=+1]
3147
include::modules/ldap-syncing-config-rfc2307.adoc[leveloffset=+2]
@@ -37,6 +53,8 @@ include::modules/ldap-syncing-running-openshift.adoc[leveloffset=+2]
3753
include::modules/ldap-syncing-running-subset.adoc[leveloffset=+2]
3854
include::modules/ldap-syncing-pruning.adoc[leveloffset=+1]
3955

56+
// OSD and ROSA dedicated-admins cannot create the cluster roles and cluster role bindings required for this procedure.
57+
ifndef::openshift-dedicated,openshift-rosa[]
4058
// Automatically syncing LDAP groups
4159
include::modules/ldap-auto-syncing.adoc[leveloffset=+1]
4260

@@ -45,6 +63,7 @@ include::modules/ldap-auto-syncing.adoc[leveloffset=+1]
4563

4664
* xref:../authentication/identity_providers/configuring-ldap-identity-provider.adoc#configuring-ldap-identity-provider[Configuring an LDAP identity provider]
4765
* xref:../nodes/jobs/nodes-nodes-jobs.adoc#nodes-nodes-jobs-creating-cron_nodes-nodes-jobs[Creating cron jobs]
66+
endif::openshift-dedicated,openshift-rosa[]
4867
4968
include::modules/ldap-syncing-examples.adoc[leveloffset=+1]
5069
include::modules/ldap-syncing-rfc2307.adoc[leveloffset=+2]
File renamed without changes.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
:_content-type: ASSEMBLY
2+
[id="sd-configuring-identity-providers"]
3+
= Configuring identity providers
4+
include::_attributes/attributes-openshift-dedicated.adoc[]
5+
:context: sd-configuring-identity-providers
6+
7+
toc::[]
8+
9+
After your {product-title} cluster is created, you must configure identity providers to determine how users log in to access the cluster.
10+
11+
ifdef::openshift-rosa[]
12+
The following topics describe how to configure an identity provider using {cluster-manager} console. Alternatively, you can use the ROSA CLI (`rosa`) to configure an identity provider and access the cluster.
13+
endif::openshift-rosa[]
14+
15+
include::modules/understanding-idp.adoc[leveloffset=+1]
16+
include::modules/identity-provider-parameters.adoc[leveloffset=+2]
17+
include::modules/config-github-idp.adoc[leveloffset=+1]
18+
include::modules/config-gitlab-idp.adoc[leveloffset=+1]
19+
include::modules/config-google-idp.adoc[leveloffset=+1]
20+
include::modules/config-ldap-idp.adoc[leveloffset=+1]
21+
include::modules/config-openid-idp.adoc[leveloffset=+1]
22+
include::modules/config-htpasswd-idp.adoc[leveloffset=+1]
23+
ifdef::openshift-dedicated[]
24+
include::modules/access-cluster.adoc[leveloffset=+1]
25+
endif::openshift-dedicated[]
26+
27+
ifdef::openshift-rosa[]
28+
[id="additional-resources-cluster-access-sts"]
29+
[role="_additional-resources"]
30+
== Additional resources
31+
* xref:../rosa_install_access_delete_clusters/rosa-sts-accessing-cluster.adoc#rosa-sts-accessing-cluster[Accessing a cluster]
32+
* xref:../rosa_getting_started/rosa-sts-getting-started-workflow.adoc#rosa-sts-understanding-the-deployment-workflow[Understanding the ROSA with STS deployment workflow]
33+
endif::openshift-rosa[]

0 commit comments

Comments
 (0)