Skip to content

Commit ed549a3

Browse files
openshift-cherrypick-robotclaudethemr0c
authored
[release-1.9-post-cqa] [RHDHBUGS-2411]: Clarify auth/provisioning independence and OIDC key alignment (#2056)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Fabrice Flore-Thébault <ffloreth@redhat.com>
1 parent 3f79190 commit ed549a3

6 files changed

+72
-11
lines changed

modules/shared/con-understand-authentication-and-user-provisioning.adoc

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,40 @@
33
= Understand authentication and user provisioning
44

55
[role="_abstract"]
6-
The authentication process covers creating user and group entities in the software catalog, user sign-in, and how authentication and catalog plugins enable each step.
6+
User provisioning and authentication are two independent mechanisms in {product}.
7+
You can configure them separately depending on your requirements.
78

8-
To fully enable catalog features, provision user and group data from the Identity Provider to the {product-short} software catalog.
9+
== User provisioning
10+
11+
To fully enable catalog features, provision user and group data from an Identity Provider (IdP) to the {product-short} software catalog.
912
Catalog provider plugins handle this task asynchronously.
10-
These plugins query the Identity Provider (IdP) for relevant user and group information, and create or update corresponding entities in the {product-short} catalog.
13+
These plugins query the IdP for relevant user and group information, and create or update corresponding entities in the {product-short} catalog.
1114
Scheduled provisioning ensures that the catalog accurately reflects the users and groups in your organization.
1215

13-
When a user attempts to access {product-short}, {product-short} redirects them to a configured authentication provider, such as {rhbk-brand-name} ({rhbk}), GitHub, or {azure-brand-name}.
14-
This external IdP is responsible for authenticating the user.
16+
You can provision users and groups from any supported source, including {rhbk-brand-name} ({rhbk}), GitHub, GitLab, {azure-brand-name}, or LDAP.
17+
LDAP provisioning works independently of your authentication provider.
18+
Following associations are supported:
1519

16-
On successful authentication, the {product-short} authentication plugin, configured in your `{my-app-config-file}` file, processes the response from the IdP, resolves the identity in the {product-short} software catalog, and establishes a user session within {product-short}.
20+
|===
21+
|User provisioning |Authentication
22+
23+
|{rhbk}
24+
|{rhbk}
25+
26+
|LDAP
27+
|{rhbk}
28+
29+
|GitHub
30+
|GitHub
31+
32+
|{azure-brand-name}
33+
|{azure-brand-name}
34+
|===
1735

18-
Configuring authentication and user provisioning is critical for several reasons.
36+
For example, you can authenticate users with {rhbk} while provisioning user and group data from your LDAP directory.
37+
38+
Configuring user provisioning is critical for several reasons.
1939

20-
* Securing your {product-short} instance by ensuring only authenticated users can gain access.
2140
* Enabling authorization by allowing you to define access controls based on user and group memberships synchronized from your IdP.
2241
* Provisioning user and group data to the catalog is necessary for various catalog features that rely on understanding entity ownership and relationships between users, groups, and software components.
2342
+
@@ -43,3 +62,15 @@ As a result,
4362
deleting users or groups manually through the {product-short} Web UI or REST API might be ineffective or cause inconsistencies,
4463
since {product-short} will create those entities again during the next import.
4564
====
65+
66+
== Authentication
67+
68+
When a user attempts to access {product-short}, {product-short} redirects them to a configured authentication provider, such as {rhbk-brand-name} ({rhbk}), GitHub, GitLab, or {azure-brand-name}.
69+
This external IdP is responsible for authenticating the user.
70+
71+
On successful authentication, the {product-short} authentication plugin, configured in your `{my-app-config-file}` file, processes the response from the IdP, resolves the identity in the {product-short} software catalog, and establishes a user session within {product-short}.
72+
73+
Authentication works independently of user provisioning.
74+
By default you cannot authenticate users without provisioning them to the software catalog.
75+
You can override this behavior to authenticate users without provisioning them to the software catalog, by using the `dangerouslyAllowSignInWithoutUserInCatalog` parameter.
76+
However, provisioning is a prerequisite for full catalog functionality, such as entity ownership and group-based access controls.

modules/shared/proc-enable-user-provisioning-with-ldap.adoc

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,17 @@
44
= Enable user provisioning with LDAP
55

66
[role="_abstract"]
7-
When {rhbk-brand-name} ({rhbk}) depends on Lightweight Directory Access Protocol (LDAP) to resolve user and group identities, you can opt to provision users and groups from LDAP directly to the {product} software catalog, rather than using the {rhbk} provisioning mechanism.
7+
You can provision users and groups from a Lightweight Directory Access Protocol (LDAP) directory directly to the {product} software catalog.
8+
9+
[NOTE]
10+
====
11+
LDAP provisioning works with any authentication provider.
12+
You do not need {rhbk-brand-name} ({rhbk}) to use LDAP for user and group provisioning.
13+
For example, you can authenticate users with GitHub or {azure-brand-name} while provisioning user and group data from your LDAP directory.
14+
====
815

916
.Prerequisites
10-
* You have configured xref:enable-authentication-with-rhbk_{parent-context}[authentication with {rhbk-brand-name} ({rhbk})].
17+
* You have configured authentication with a supported provider, such as xref:enable-authentication-with-rhbk_{parent-context}[{rhbk-brand-name} ({rhbk})], xref:enable-authentication-with-github_{parent-context}[GitHub], xref:enable-authentication-with-microsoft-azure_{parent-context}[{azure-brand-name}], or xref:enable-authentication-with-gitlab_{parent-context}[GitLab].
1118

1219
* You have collected the required LDAP credentials:
1320

@@ -58,7 +65,7 @@ plugins:
5865
disabled: false
5966
----
6067

61-
. Enable provisioning GitHub users and groups to the {product-short} software catalog, by adding the LDAP catalog provider section to your `{my-app-config-file}` file:
68+
. Enable provisioning LDAP users and groups to the {product-short} software catalog, by adding the LDAP catalog provider section to your `{my-app-config-file}` file:
6269

6370
.. Optional: Remove other catalog providers, by removing the other catalog providers section.
6471

modules/shared/snip-enable-user-authentication-with-gitlab-common-first-steps.adoc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,11 @@ auth:
118118
callbackUrl: {my-product-url}/api/auth/gitlab/handler/frame
119119
----
120120
+
121+
[IMPORTANT]
122+
====
123+
The environment key under the provider (for example, `production`) must match the value of the `environment` field under `auth`.
124+
{product-short} cannot find a complete configuration set in mismatched environments.
125+
====
121126

122127
`audience`::
123128
Enter your GitLab instance address: `pass:c,a,q[https://${GITLAB_HOST}]`

modules/shared/snip-enabling-user-authentication-with-github-common-first-steps.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,12 @@ auth:
117117
clientSecret: ${GITHUB_CLIENT_SECRET}
118118
signInPage: github
119119
----
120+
+
121+
[IMPORTANT]
122+
====
123+
The environment key under the provider (for example, `production`) must match the value of the `environment` field under `auth`.
124+
{product-short} cannot find a complete configuration set in mismatched environments.
125+
====
120126

121127
`environment`::
122128
Enter `production` to disable the Guest login option in the {product-short} login page.

modules/shared/snip-enabling-user-authentication-with-microsoft-azure-common-authentication-provider-steps.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ auth:
1414
tenantId: ${MICROSOFT_TENANT_ID}
1515
signInPage: microsoft
1616
----
17+
+
18+
[IMPORTANT]
19+
====
20+
The environment key under the provider (for example, `production`) must match the value of the `environment` field under `auth`.
21+
{product-short} cannot find a complete configuration set in mismatched environments.
22+
====
1723

1824
`environment`::
1925
Enter `production` to disable the **Guest** login option in the {product-short} login page.

modules/shared/snip-enabling-user-authentication-with-rhbk-common-authentication-provider-steps.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ auth:
1515
prompt: auto
1616
signInPage: oidc
1717
----
18+
+
19+
[IMPORTANT]
20+
====
21+
The environment key under the provider (for example, `production`) must match the value of the `environment` field under `auth`.
22+
{product-short} cannot find a complete configuration set in mismatched environments.
23+
====
1824

1925
`environment: production`::
2026
Mark the environment as `production` to hide the Guest login in the {product-short} home page.

0 commit comments

Comments
 (0)