Skip to content

Commit 7fa4c1a

Browse files
themr0cJessicaJHeepabel-rhjmagak
authored
RHIDP-6735 - Added high-level overview of auth and user provisioning (#1186)
* RHIDP-6735 - Added high-level overview of auth and user provisioning Signed-off-by: Fabrice Flore-Thébault <[email protected]> * Complete rewrite with the assistance of NotebookLM. Signed-off-by: Fabrice Flore-Thébault <[email protected]> * Update assemblies/assembly-enabling-authentication.adoc * Update modules/authentication/con-understanding-authentication-and-user-provisioning.adoc Co-authored-by: Jessica He <[email protected]> * Update modules/authentication/con-understanding-authentication-and-user-provisioning.adoc * Update modules/authentication/con-understanding-authentication-and-user-provisioning.adoc * Update modules/authentication/con-understanding-authentication-and-user-provisioning.adoc * Update modules/authentication/con-understanding-authentication-and-user-provisioning.adoc * Update modules/authentication/con-understanding-authentication-and-user-provisioning.adoc * Update modules/authentication/con-understanding-authentication-and-user-provisioning.adoc * Update modules/authentication/con-understanding-authentication-and-user-provisioning.adoc Co-authored-by: Jessica He <[email protected]> * Update modules/authentication/con-understanding-authentication-and-user-provisioning.adoc * Update modules/authentication/con-understanding-authentication-and-user-provisioning.adoc Co-authored-by: Jessica He <[email protected]> * Update modules/authentication/con-understanding-authentication-and-user-provisioning.adoc Co-authored-by: Jessica He <[email protected]> * Update modules/authentication/con-understanding-authentication-and-user-provisioning.adoc Co-authored-by: Jessica He <[email protected]> * Update modules/authentication/con-understanding-authentication-and-user-provisioning.adoc Co-authored-by: Priyanka Abel <[email protected]> * Apply suggestions from code review Co-authored-by: Priyanka Abel <[email protected]> * Update modules/authentication/con-understanding-authentication-and-user-provisioning.adoc Co-authored-by: Judith Magak <[email protected]> --------- Signed-off-by: Fabrice Flore-Thébault <[email protected]> Co-authored-by: Jessica He <[email protected]> Co-authored-by: Priyanka Abel <[email protected]> Co-authored-by: Judith Magak <[email protected]>
1 parent 23717df commit 7fa4c1a

File tree

2 files changed

+38
-44
lines changed

2 files changed

+38
-44
lines changed

assemblies/assembly-enabling-authentication.adoc

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,10 @@
11
[id='enabling-authentication']
22
= Enabling authentication in {product}
33

4-
Depending on your organization's security policies, you might require to identify and authorize users before giving them access to resources, such as {product}.
54

6-
In {product-short}, authentication and authorization are two separate processes:
75

8-
. Authentication defines the user identity, and passes on this information to {product-short}.
9-
Read the following chapters to configure authentication in {product-short}.
10-
11-
. Authorization defines what the authenticated identity can access or do in {product-short}.
12-
See link:{authorization-book-url}[{authorization-book-title}].
13-
14-
[TIP]
15-
.Not recommended for production
16-
====
17-
To explore {product-short} features, you can enable the guest user to skip configuring authentication and authorization, log in as the guest user, and access all the features.
18-
====
19-
20-
The authentication system in {product-short} is handled by external authentication providers.
21-
22-
{product-short} supports following authentication providers:
23-
24-
* Red Hat Single-Sign On (RHSSO)
25-
* GitHub
26-
* Microsoft Azure
27-
28-
To identify users in {product-short}, configure:
29-
30-
* One (and only one) authentication provider for sign-in and identification.
31-
* Optionally, additional authentication providers for identification, to add more information to the user identity, or enable access to additional external resources.
32-
33-
For each authentication provider, set up the shared secret that the authentication provider and {product-short} require to communicate, first in the authentication provider, then in {product-short}.
34-
35-
{product-short} stores user identity information in the {product-short} software catalog.
36-
37-
[TIP]
38-
.Not recommended for production
39-
====
40-
To explore the authentication system and use {product-short} without authorization policies, you can bypass the {product-short} software catalog and start using {product-short} without provisioning the {product-short} software catalog.
41-
====
42-
43-
To get, store, and update additional user information, such as group or team ownership, with the intention to use this data to define authorization policies, provision users and groups in the {product-short} software catalog.
44-
45-
[IMPORTANT]
46-
====
47-
{product-short} uses a one-way synchronization system to provision users and groups from your authentication system to the {product-short} software catalog.
48-
Therefore, deleting users and groups by using {product-short} Web UI or REST API might have unintended consequences.
49-
====
506

7+
include::modules/authentication/con-understanding-authentication-and-user-provisioning.adoc[leveloffset=+1]
518

529

5310
include::assembly-authenticating-with-the-guest-user.adoc[leveloffset=+1]
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
= Understanding authentication and user provisioning
2+
3+
This module provides an overview of how authentication and user provisioning function within {product}.
4+
Learn about the process from creating user and group entities in the software catalog to user sign-in, and how authentication and catalog plugins enable each step.
5+
Understanding this process is essential for successfully link:{configuring-book-url}[configuring your {product-short} instance], link:{authorization-book-url}[securing access through authorization], and enabling features that rely on synchronized user and group data.
6+
7+
To fully enable catalog features, provision user and group data from the Identity Provider to the {product-short} software catalog.
8+
Catalog provider plugins handle this task asynchronously.
9+
These plugins query the Identity Provider (IdP) for relevant user and group information, and create or update corresponding entities in the {product-short} catalog.
10+
Scheduled provisioning ensures that the catalog accurately reflects the users and groups in your organization.
11+
12+
When a user attempts to access {product-short}, {product-short} redirects them to a configured authentication provider, such as xref:assembly-authenticating-with-rhbk[{rhbk-brand-name} ({rhbk})], xref:authenticating-with-github[GitHub], or xref:assembly-authenticating-with-microsoft-azure[{azure-brand-name}].
13+
This external IdP is responsible for authenticating the user.
14+
15+
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}.
16+
17+
Configuring authentication and user provisioning is critical for several reasons.
18+
19+
* It secures your {product-short} instance by ensuring only authenticated users can gain access.
20+
* It enables authorization by allowing you to define access controls based on user and group memberships synchronized from your IdP.
21+
* 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.
22+
Without this provisioning step, features like displaying who owns a component in the catalog may not function correctly.
23+
24+
[TIP]
25+
.Not recommended for production
26+
====
27+
To explore {product-short} features, you can:
28+
29+
* To use {product-short} without external IdP, xref:authenticating-with-the-guest-user_{context}[enable the guest user] to skip configuring authentication and authorization, log in as the guest user, and access all {product-short} features.
30+
31+
* To use {product-short} without authorization policies and features relying on the software catalog, you can enable the `dangerouslyAllowSignInWithoutUserInCatalog` resolver option. This setting bypasses the check requiring a user to be in the catalog but still enforces authentication.
32+
====
33+
34+
[IMPORTANT]
35+
====
36+
{product-short} uses a one-way synchronization model, where user and group data flow from your Identity Provider to the {product-short} software catalog. As a result, deleting users or groups manually through the {product-short} Web UI or REST API might be ineffective or cause inconsistencies, since those entities will be recreated during the next ingestion.
37+
====

0 commit comments

Comments
 (0)