You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RHIDP-7975 Enabling authentication procedures with mandatory steps only
Used variable names defined in the default config
Added '_mod-docs-content-type' attribute definition
Signed-off-by: Fabrice Flore-Thébault <[email protected]>
Co-authored-by: Jessica He <[email protected]>
Copy file name to clipboardExpand all lines: modules/authentication/con-understanding-authentication-and-user-provisioning.adoc
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,10 +29,12 @@ To explore {product-short} features in a non-production environment, you can:
29
29
30
30
* To use {product-short} without external IdP, enable the guest user to skip configuring authentication and authorization, log in as the guest user, and access all {product-short} features.
31
31
32
-
* 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
+
* To use {product-short} without authorization policies and features relying on the software catalog, you can enable the `dangerouslyAllowSignInWithoutUserInCatalog` resolver option.
33
+
This setting bypasses the check requiring a user to be in the catalog but still enforces authentication.
33
34
====
34
35
35
36
[IMPORTANT]
36
37
====
37
-
{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.
38
+
{product-short} uses a one-way synchronization model, where user and group data flow from your Identity Provider to the {product-short} software catalog.
39
+
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.
Copy file name to clipboardExpand all lines: modules/authentication/proc-enabling-user-authentication-with-github.adoc
+30-21Lines changed: 30 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,9 +6,9 @@
6
6
To authenticate users with GitHub, configure the GitHub authentication provider in {product} and provision the users and groups from GitHub to the {product-short} software catalog.
7
7
8
8
.Prerequisites
9
-
* You {configuring-book-link}[added a custom {product-short} application configuration], and have sufficient permissions to modify it.
9
+
* You {configuring-book-link}[added a custom {product-short} application configuration], and have enough permissions to change it.
10
10
11
-
* You have sufficient permissions in GitHub to create and manage a link:https://docs.github.com/en/apps/overview[GitHub App].
11
+
* You have enough permissions in GitHub to create and manage a link:https://docs.github.com/en/apps/overview[GitHub App].
12
12
Alternatively, you can ask your GitHub administrator to prepare the required GitHub App.
13
13
14
14
.Procedure
@@ -47,22 +47,23 @@ Select `Only on this account`.
47
47
. To add your GitHub credentials to {product-short}, add the following key/value pairs to {configuring-book-link}#provisioning-your-custom-configuration[your {product-short} secrets].
48
48
You can use these secrets in the {product-short} configuration files by using their respective environment variable name.
49
49
50
-
`AUTHENTICATION_GITHUB_CLIENT_ID`::
50
+
`GITHUB_CLIENT_ID`::
51
51
Enter the saved **Client ID**.
52
52
53
-
`AUTHENTICATION_GITHUB_CLIENT_SECRET`::
53
+
`GITHUB_CLIENT_SECRET`::
54
54
Enter the saved **Client Secret**.
55
55
56
-
`AUTHENTICATION_GITHUB_HOST_DOMAIN`::
56
+
`GITHUB_URL`::
57
57
Enter the GitHub host domain: `github.com`.
58
58
59
-
`AUTHENTICATION_GITHUB_ORGANIZATION`::
59
+
`GITHUB_ORG`::
60
60
Enter your GitHub organization name, such as `__<your_github_organization_name>__`.
61
61
62
62
. Enable the GitHub organization provisioning plugin (`backstage-plugin-catalog-backend-module-github-org`).
63
63
This plugin ingests GitHub users and groups to the {product-short} software catalog.
64
64
+
65
-
.`dynamic-plugins.yaml` file fragment
65
+
`dynamic-plugins.yaml` file fragment:
66
+
+
66
67
[source,yaml]
67
68
----
68
69
plugins:
@@ -81,8 +82,8 @@ catalog:
81
82
providers:
82
83
githubOrg:
83
84
id: githuborg
84
-
githubUrl: "${AUTHENTICATION_GITHUB_HOST_DOMAIN}"
85
-
orgs: [ "${AUTHENTICATION_GITHUB_ORGANIZATION}" ]
85
+
githubUrl: "${GITHUB_URL}"
86
+
orgs: [ "${GITHUB_ORG}" ]
86
87
schedule:
87
88
frequency:
88
89
minutes: 30
@@ -97,10 +98,10 @@ Enter a stable identifier for this provider, such as `githuborg`.
97
98
Entities from this provider are associated with this identifier, therefore you must take care not to change it over time since that might lead to orphaned entities and/or conflicts.
98
99
99
100
`githubUrl`::
100
-
Enter the configured secret variable name: `${AUTHENTICATION_GITHUB_HOST_DOMAIN}`.
101
+
Enter the configured secret variable name: `$\{GITHUB_URL}`.
101
102
102
103
`orgs`::
103
-
Enter the configured secret variable name: `${AUTHENTICATION_GITHUB_ORGANIZATION}`.
104
+
Enter the configured secret variable name: `$\{GITHUB_ORG}`.
104
105
105
106
`schedule.frequency`::
106
107
Enter your schedule frequency, in the cron, ISO duration, or "human duration" format.
Configure the sign-in resolver to bypass the user provisioning requirement in the {product-short} software catalog.
193
198
+
194
-
WARNING: Use `dangerouslyAllowSignInWithoutUserInCatalog` to explore {product-short} features, but do not use it in production.
199
+
[WARNING]
200
+
====
201
+
Use `dangerouslyAllowSignInWithoutUserInCatalog` to explore {product-short} features, but do not use it in production.
202
+
====
203
+
endif::[]
195
204
--
196
205
197
206
.Verification
198
207
. To verify user and group provisioning, check the console logs.
199
208
+
200
-
.Successful synchronization example:
209
+
Successful synchronization example:
210
+
+
201
211
[source,json]
202
212
----
203
213
{"class":"GithubMultiOrgEntityProvider","level":"info","message":"Reading GitHub users and teams for org: rhdh-dast","plugin":"catalog","service":"backstage","target":"https://github.com","taskId":"GithubMultiOrgEntityProvider:githuborg:refresh","taskInstanceId":"801b3c6c-167f-473b-b43e-e0b4b780c384","timestamp":"2024-09-09 23:55:58"}
@@ -210,6 +220,5 @@ WARNING: Use `dangerouslyAllowSignInWithoutUserInCatalog` to explore {product-sh
Copy file name to clipboardExpand all lines: modules/authentication/proc-enabling-user-authentication-with-microsoft-azure.adoc
+34-23Lines changed: 34 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ To authenticate users with {azure-brand-name}, configure the {azure-short} authe
9
9
* You have the permission to register an application in {azure-short}.
10
10
Alternatively, you can ask your {azure-short} administrator to prepare the required {azure-short} application.
11
11
12
-
* You {configuring-book-link}[added a custom {product-short} application configuration], and have sufficient permissions to modify it.
12
+
* You {configuring-book-link}[added a custom {product-short} application configuration], and have enough permissions to modify it.
13
13
14
14
* Your {product-short} backend can access the following hosts:
15
15
@@ -82,10 +82,10 @@ Enter your saved *Application (client) ID*.
82
82
`AUTHENTICATION_AZURE_CLIENT_SECRET`::
83
83
Enter your saved *Application (client) secret*.
84
84
85
-
. Enable the Microsoft Graph organization provisioning plugin (`backstage-plugin-catalog-backend-module-msgraph-dynamic`).
85
+
. Enable the Microsoft Graph organization provisioning plugin (`backstage-plugin-catalog-backend-module-msgraph-dynamic`) in your `dynamic-plugins.yaml`
86
+
file.
86
87
This plugin ingests {azure-short} users and groups to the {product-short} software catalog.
87
88
+
88
-
.`dynamic-plugins.yaml` file fragment
89
89
[source,yaml]
90
90
----
91
91
plugins:
@@ -124,13 +124,13 @@ Enter `\https://graph.microsoft.com/v1.0` to define the MSGraph API endpoint the
124
124
You might change this parameter to use a different version, such as the link:https://learn.microsoft.com/en-us/graph/api/overview?view=graph-rest-beta#call-the-beta-endpoint[beta endpoint].
125
125
126
126
`tenandId`::
127
-
Enter the configured secret variable name: `${AUTHENTICATION_AZURE_TENANT_ID}`.
127
+
Enter the configured secret variable name: `$\{AUTHENTICATION_AZURE_TENANT_ID}`.
128
128
129
129
`clientId`::
130
-
Enter the configured secret variable name: `${AUTHENTICATION_AZURE_CLIENT_ID}`.
130
+
Enter the configured secret variable name: `$\{AUTHENTICATION_AZURE_CLIENT_ID}`.
131
131
132
132
`clientSecret`::
133
-
Enter the configured secret variable name: `${AUTHENTICATION_AZURE_CLIENT_SECRET}`.
133
+
Enter the configured secret variable name: `$\{AUTHENTICATION_AZURE_CLIENT_SECRET}`.
134
134
135
135
`schedule`::
136
136
@@ -145,12 +145,12 @@ In a large organization, user provisioning might take a long time, therefore avo
145
145
`initialDelay`:::
146
146
Enter the schedule initial delay in the ISO duration or human duration format.
147
147
148
+
ifndef::only-default-steps[]
148
149
Optional: Consider adding the following optional `microsoftGraphOrg.providerId` fields:
149
150
150
151
[id=authority]
151
152
`authority`::
152
-
Enter your link:https://learn.microsoft.com/en-us/graph/deployments#app-registration-and-token-service-root-endpoints[{azure-short} authority URL],
153
-
when different from the default: `\https://login.microsoftonline.com`.
153
+
Enter your link:https://learn.microsoft.com/en-us/graph/deployments#app-registration-and-token-service-root-endpoints[{azure-short} authority URL], when different from the default: `\https://login.microsoftonline.com`.
154
154
+
155
155
.`{my-app-config-file}` fragment with optional `queryMode` field
156
156
[source,yaml]
@@ -164,7 +164,7 @@ catalog:
164
164
165
165
[id=queryMode]
166
166
`queryMode: basic | advanced`::
167
-
Enter `advanced` when the default `basic` query mode is not sufficient for your queries to the Microsoft Graph API.
167
+
Enter `advanced` when the default `basic` query mode is insufficient for your queries to the Microsoft Graph API.
168
168
See link:https://learn.microsoft.com/en-us/graph/aad-advanced-queries[{azure-brand-name} advanced queries].
169
169
+
170
170
.`{my-app-config-file}` fragment with optional `queryMode` field
@@ -184,7 +184,8 @@ Only one relationship can be expanded in a single request.
184
184
See https://learn.microsoft.com/en-us/graph/query-parameters#expand-parameter[Microsoft Graph query expand parameter].
185
185
This parameter can be combined with xref:userGroupMemberFilter[`userGroupMember.filter`] or xref:userFilter[`user.filter`].
186
186
+
187
-
.`{my-app-config-file}` fragment with optional `user.expand` field
187
+
`{my-app-config-file}` fragment with optional `user.expand` field:
188
+
+
188
189
[source,yaml]
189
190
----
190
191
catalog:
@@ -201,7 +202,8 @@ To filter users.
201
202
See link:https://learn.microsoft.com/en-us/graph/api/resources/user?view=graph-rest-1.0#properties[Microsoft Graph API] and link:https://learn.microsoft.com/en-us/graph/query-parameters#filter-parameter[Microsoft Graph API query filter parameters syntax].
202
203
This parameter and xref:userGroupMemberFilter[`userGroupMember.filter`] are mutually exclusive, only one can be specified.
203
204
+
204
-
.`{my-app-config-file}` fragment with optional `user.filter` field
205
+
`{my-app-config-file}` fragment with optional `user.filter` field:
206
+
+
205
207
[source,yaml]
206
208
----
207
209
catalog:
@@ -217,7 +219,8 @@ catalog:
217
219
{product-short} loads photos by default.
218
220
Enter `false` to avoid loading user photos.
219
221
+
220
-
.`{my-app-config-file}` fragment with optional `user.loadPhotos` field
222
+
`{my-app-config-file}` fragment with optional `user.loadPhotos` field:
223
+
+
221
224
[source,yaml]
222
225
----
223
226
catalog:
@@ -232,7 +235,8 @@ catalog:
232
235
`user.select`::
233
236
Enter the link:https://learn.microsoft.com/en-us/graph/api/resources/schemaextension?view=graph-rest-1.0[Microsoft Graph resource type] list to retrieve.
234
237
+
235
-
.`{my-app-config-file}` fragment with optional `user.select` field
238
+
`{my-app-config-file}` fragment with optional `user.select` field:
239
+
+
236
240
[source,yaml]
237
241
----
238
242
catalog:
@@ -249,7 +253,8 @@ To use group membership to get users.
249
253
To filter groups and fetch their members.
250
254
This parameter and xref:userFilter[`user.filter`] are mutually exclusive, only one can be specified.
251
255
+
252
-
.`{my-app-config-file}` fragment with optional `userGroupMember.filter` field
256
+
`{my-app-config-file}` fragment with optional `userGroupMember.filter` field:
257
+
+
253
258
[source,yaml]
254
259
----
255
260
catalog:
@@ -266,7 +271,8 @@ To use group membership to get users.
266
271
To search for groups and fetch their members.
267
272
This parameter and xref:userFilter[`user.filter`] are mutually exclusive, only one can be specified.
268
273
+
269
-
.`{my-app-config-file}` fragment with optional `userGroupMember.search` field
274
+
`{my-app-config-file}` fragment with optional `userGroupMember.search` field:
275
+
+
270
276
[source,yaml]
271
277
----
272
278
catalog:
@@ -284,7 +290,8 @@ Only one relationship can be expanded in a single request.
284
290
See link:https://learn.microsoft.com/en-us/graph/query-parameters#expand-parameter[Customize Microsoft Graph responses with query parameters].
285
291
This parameter can be combined with xref:userGroupMemberFilter[`userGroupMember.filter`] instead of xref:userFilter[`user.filter`].
286
292
+
287
-
.`{my-app-config-file}` fragment with optional `group.expand` field
293
+
`{my-app-config-file}` fragment with optional `group.expand` field:
294
+
+
288
295
[source,yaml]
289
296
----
290
297
catalog:
@@ -300,7 +307,8 @@ catalog:
300
307
To filter groups.
301
308
See link:https://learn.microsoft.com/en-us/graph/api/resources/group?view=graph-rest-1.0#properties[Microsoft Graph API query group syntax].
302
309
+
303
-
.`{my-app-config-file}` fragment with optional `group.filter` field
310
+
`{my-app-config-file}` fragment with optional `group.filter` field:
311
+
+
304
312
[source,yaml]
305
313
----
306
314
catalog:
@@ -316,7 +324,8 @@ catalog:
316
324
To search for groups.
317
325
See link:https://learn.microsoft.com/en-us/graph/search-query-parameter[Microsoft Graph API query search parameter].
318
326
+
319
-
.`{my-app-config-file}` fragment with optional `group.search` field
327
+
`{my-app-config-file}` fragment with optional `group.search` field:
328
+
+
320
329
[source,yaml]
321
330
----
322
331
catalog:
@@ -342,6 +351,7 @@ catalog:
342
351
select: ['id', 'displayName', 'description']
343
352
----
344
353
--
354
+
endif::[]
345
355
346
356
. To set up the {azure-short} authentication provider, add the `auth.providers.microsoft` section to your `{my-app-config-file}` file content:
347
357
+
@@ -364,14 +374,14 @@ signInPage: microsoft
364
374
Enter `production` to disable the **Guest** login option in the {product-short} login page.
365
375
366
376
`clientId`::
367
-
Enter the configured secret variable name: `${AUTHENTICATION_AZURE_CLIENT_ID}`.
377
+
Enter the configured secret variable name: `$\{AUTHENTICATION_AZURE_CLIENT_ID}`.
368
378
369
379
`clientSecret`::
370
380
Enter the configured secret variable name:
371
-
`${AUTHENTICATION_AZURE_CLIENT_SECRET}`.
381
+
`$\{AUTHENTICATION_AZURE_CLIENT_SECRET}`.
372
382
373
383
`tenantId`::
374
-
Enter the configured secret variable name: `${AUTHENTICATION_AZURE_TENANT_ID}`.
384
+
Enter the configured secret variable name: `$\{AUTHENTICATION_AZURE_TENANT_ID}`.
375
385
376
386
`signInPage`::
377
387
Enter `microsoft` to set the {azure-short} provider as your {product-short} sign-in provider.
@@ -399,9 +409,10 @@ auth:
399
409
`additionalScopes`::
400
410
Optional for additional scopes.
401
411
To add scopes for the application registration, uncomment and enter the list of scopes that you want to add.
402
-
The default and mandatory value lists: `'openid', 'offline_access', 'profile', 'email', 'User.Read'`.
412
+
The default and mandatory value lists: `openid`, `offline_access`, `profile`, `email`, and `User.Read`.
413
+
+
414
+
`{my-app-config-file}` file fragment with optional `additionalScopes` field:
403
415
+
404
-
.`{my-app-config-file}` file fragment with optional `additionalScopes` field
0 commit comments