Skip to content

Commit e90c408

Browse files
committed
Edits to the Configuring Authentication and User Agent page
1 parent 3409edc commit e90c408

30 files changed

+2300
-43
lines changed

_topic_map.yml

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,40 @@ Topics:
291291
Distros: openshift-enterprise
292292
- Name: Installing a Stand-alone Deployment of OpenShift Container Registry
293293
File: stand_alone_registry
294+
- Name: Configuring Authentication
295+
Dir: authentication
296+
Distros: openshift-origin,openshift-enterprise
297+
Topics:
298+
- Name: Overview
299+
File: index
300+
- Name: Configuring OAuth
301+
File: configuring_authentication_identity_provider
302+
- Name: Allow All Authentication
303+
File: configuring_authentication_allow_all
304+
- Name: Deny All Authentication
305+
File: configuring_authentication_deny_all
306+
- Name: HTPasswd Authentication
307+
File: configuring_authentication_htpasswd
308+
- Name: Keystone Authentication
309+
File: configuring_authentication_keystone
310+
- Name: LDAP Authentication
311+
File: configuring_authentication_ldap
312+
- Name: Basic Authentication (Remote) Authentication
313+
File: configuring_authentication_basic_auth
314+
- Name: Request Header Authentication
315+
File: configuring_authentication_request_header
316+
- Name: Github Authentication
317+
File: configuring_authentication_github
318+
- Name: Gitlab Authentication
319+
File: configuring_authentication_gitlab
320+
- Name: Google Authentication
321+
File: configuring_authentication_google
322+
- Name: OpenID Connect Authentication
323+
File: configuring_authentication_openid
324+
- Name: OAuth Options
325+
File: configuring_authentication_oauth_options
326+
- Name: Preventing Access to the APIs
327+
File: configuring_authentication_user_agent
294328
- Name: Setting up the Registry
295329
Dir: registry
296330
Distros: openshift-origin,openshift-enterprise
@@ -337,7 +371,6 @@ Topics:
337371
File: container_provider
338372
- Name: Uninstalling
339373
File: uninstalling
340-
341374
- Name: Upgrading a Cluster
342375
Dir: upgrading
343376
Distros: openshift-origin,openshift-enterprise
@@ -516,6 +549,9 @@ Topics:
516549
- Name: Deploying External Persistent Volume Provisioners
517550
File: provisioners
518551
Distros: openshift-origin,openshift-enterprise
552+
- Name: Deploying CloudForms on OpenShift
553+
File: deploying_cfme
554+
Distros: openshift-enterprise
519555
- Name: Revision History
520556
File: revhistory_install_config
521557
Distros: openshift-enterprise

admin_guide/manage_users.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ be deleted.
2323
== Adding a User
2424

2525
After new users log in to {product-title}, an account is created for that user
26-
per the xref:../install_config/configuring_authentication.adoc#identity-providers[identity
26+
per the xref:../install_config/authentication/index.adoc#identity-providers[identity
2727
provider] configured on the master. The cluster administrator can
2828
xref:../admin_guide/manage_authorization_policy.adoc#admin-guide-manage-authorization-policy[manage the access level of
2929
each user].

admin_solutions/authentication.adoc

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ toc::[]
1313
== Overview
1414

1515
{product-title} supports many different authentication methods, as defined in
16-
xref:../install_config/configuring_authentication.adoc#install-config-configuring-authentication[Configuring Authentication]:
16+
xref:../install_config/authentication/index.adoc#install-config-configuring-authentication-index[Configuring Authentication]:
1717

1818
- xref:basic-auth-remote[Basic Authentication (Remote)]
1919
- xref:request-header-auth[Request Header]
@@ -84,13 +84,12 @@ If you use the following steps to modify your configuration manually after insta
8484
+
8585
. Edit the new *_master-config.yaml_* file's `identityProviders` stanza.
8686
. Copy
87-
xref:../install_config/configuring_authentication.adoc#basic-auth-example-config[the example `BasicAuthPasswordIdentityProvider` configuration] and paste it to replace the existing stanza.
87+
xref:../install_config/authentication/configuring_authentication_basic_auth.adoc#basic-auth-example-config[the example `BasicAuthPasswordIdentityProvider` configuration] and paste it to replace the existing stanza.
8888
. Make the following modifications to the `identityProviders` stanza:
8989
.. Set the provider `name` to something unique and relevant to your
9090
deployment. This name is prefixed to the returned user ID to form an identity
9191
name.
92-
.. If required,
93-
xref:../install_config/configuring_authentication.adoc#mapping-identities-to-users[set `mappingMethod`] to control how mappings are established between the
92+
.. If required, set `mappingMethod` to control how mappings are established between the
9493
provider's identities and user objects.
9594
.. Specify the HTTPS `url` to use to connect to a server that accepts credentials in Basic authentication headers.
9695
.. Optionally, set the `ca` to the certificate bundle to use in order to validate server certificates for the configured URL, or leave it empty to use the system-trusted roots.
@@ -226,30 +225,29 @@ If you use the following steps to modify your configuration manually after insta
226225
====
227226
+
228227
. Edit the new *_master-config.yaml_* file's `identityProviders` stanza.
229-
. View
230-
xref:../install_config/configuring_authentication.adoc#reqhead-auth-example-config[the example `RequestHeaderIdentityProvider` configuration]
228+
. View
229+
xref:../install_config/authentication/configuring_authentication_request_header.adoc#reqhead-ww-auth-optional[the example RequestHeaderIdentityProvider configuration]
231230
and use it as a guide to replace the existing stanza.
232231
. Modify the `identityProviders` stanza based on which headers you plan to
233232
pass in.
234233
.. Set the provider `name` to something unique and relevant to your
235234
deployment. This name is prefixed to the returned user ID to form an identity
236235
name.
237-
.. If required,
238-
xref:../install_config/configuring_authentication.adoc#mapping-identities-to-users[set `mappingMethod`]
236+
.. If required, set `mappingMethod`
239237
to control how mappings are established between the provider's identities and
240238
user objects.
241239
.. Set the `challenge` parameter to `true` to redirect unauthenticated
242240
requests from clients expecting `WWW-Authenticate` challenges.
243241
.. Set the `provider.challengeURL` parameter to the proxy URL to which to send
244242
clients expecting `WWW-Authenticate` challenges, like the `oc` CLI client.
245243
This parameter can include the
246-
xref:../install_config/configuring_authentication.adoc#RequestHeaderIDP-urlquerytokens[`${url}` and `${query}` tokens]
244+
xref:../install_config/authentication/configuring_authentication_request_header.adoc#requestheaderidp-urlquerytokens[`${url}` and `${query}` tokens]
247245
in the query portion of the URL.
248246
.. Set the `login` parameter to `true` to redirect unauthenticated requests
249247
from clients expecting login flows.
250248
.. Set the `provider.loginURL` parameter to the proxy URL to which to send
251249
clients expecting login flows, like web browser clients. This parameter can include the
252-
xref:../install_config/configuring_authentication.adoc#RequestHeaderIDP-urlquerytokens[`${url}` and `${query}` tokens]
250+
xref:../install_config/authentication/configuring_authentication_request_header.adoc#requestheaderidp-urlquerytokens[`${url}` and `${query}` tokens]
253251
in the query portion of the URL.
254252
.. Set the `clientCA` parameter to the certificate bundle to use to check
255253
incoming requests for a valid client certificate before the request's headers
@@ -360,13 +358,12 @@ If you use the following steps to modify your configuration manually after insta
360358
+
361359
. Edit the new *_keystoneconfig/master-config.yaml_* file's `identityProviders` stanza.
362360
. Copy
363-
xref:../install_config/configuring_authentication.adoc#KeystonePasswordIdentityProvider[the example `KeystonePasswordIdentityProvider` configuration]
361+
xref:../install_config/authentication/configuring_authentication_keystone.adoc#install-config-configuring-authentication-keystone[the example `KeystonePasswordIdentityProvider` configuration]
364362
and paste it to replace the existing stanza.
365363
. Make the following modifications to the `identityProviders` stanza:
366364
.. Change the provider `name` ("my_keystone_provider") to match your Keystone server.
367365
This name is prefixed to provider user names to form an identity name.
368-
.. If required,
369-
xref:../install_config/configuring_authentication.adoc#mapping-identities-to-users[change `mappingMethod`] to control how mappings are established between the
366+
.. If required change `mappingMethod` to control how mappings are established between the
370367
provider's identities and user objects.
371368
.. Change the `domainName` to the domain name of your OpenStack Keystone server. In Keystone, user names are domain-specific. Only a single domain is supported.
372369
.. Specify the `url` to use to connect to your OpenStack Keystone server.
@@ -419,7 +416,7 @@ xref:../admin_solutions/user_role_mgmt.adoc#control-user-roles[control user role
419416
LDAP uses bind operations to authenticate applications, and you can integrate your {product-title} cluster to use LDAPv3 authentication.
420417
Configuring LDAP authentication allows users to log in to {product-title} with their LDAP credentials.
421418

422-
include::install_config/configuring_authentication.adoc[tag=ldapblurb]
419+
include::install_config/authentication/configuring_authentication_ldap.adoc[tag=ldapblurb]
423420

424421
[WARNING]
425422
====
@@ -479,14 +476,13 @@ If you use the following steps to modify your configuration manually after insta
479476
+
480477
. Edit the new *_master-config.yaml_* file's `identityProviders` stanza.
481478
. Copy
482-
xref:../install_config/configuring_authentication.adoc#ldap-example-config[the example `LDAPPasswordIdentityProvider` configuration]
479+
xref:../install_config/authentication/configuring_authentication_ldap.adoc#ldap-example-config[the example `LDAPPasswordIdentityProvider` configuration]
483480
and paste it to replace the existing stanza.
484481
. Make the following modifications to the `identityProviders` stanza:
485482
.. Change the provider `name` ("my_ldap_provider") to something unique and
486483
relevant to your deployment. This name is prefixed to the returned user name to
487484
form an identity name.
488-
.. If required,
489-
xref:../install_config/configuring_authentication.adoc#mapping-identities-to-users[change `mappingMethod`] to control how mappings are established between the
485+
.. If required, change `mappingMethod` to control how mappings are established between the
490486
provider's identities and user objects.
491487
.. Change `id` to the attribute to use as the identity, which must be unique
492488
and immutable within the identity provider. This option can accept multiple
@@ -527,7 +523,7 @@ connect using TLS, and `ldap://` URLs are upgraded to TLS. When `true`, no TLS
527523
connection is made to the server, however, setting this to `true` creates an
528524
invalid configuration for LDAP.
529525
.. Define an RFC 2255 URL that
530-
xref:../install_config/configuring_authentication.adoc#ldap-url[specifies the LDAP host and search parameters] to use.
526+
xref:../install_config/authentication/configuring_authentication_ldap.adoc#ldap-url[specifies the LDAP host and search parameters] to use.
531527
. Save your changes and close the file.
532528
. Start the {product-title} API server, specifying the configuration file you just
533529
modified:
@@ -650,7 +646,7 @@ hostname that web browsers use to interact with your {product-title} cluster.
650646
====
651647
. Edit the new *_master-config.yaml_* file's `identityProviders` stanza.
652648
. Copy
653-
xref:../install_config/configuring_authentication.adoc#GitHub[the example `GitHubIdentityProvider` configuration]
649+
xref:../install_config/authentication/configuring_authentication_github.adoc#github-auth-example-config[the example `GitHubIdentityProvider` configuration]
654650
and paste it to replace the existing stanza.
655651
. Make the following modifications to the `identityProviders` stanza:
656652
.. Change the provider `name` to match the callback URL you configured on

admin_solutions/master_node_config.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ You can then use the password file when configuring xref:config-htpasswd[HTPassw
238238

239239
[NOTE]
240240
====
241-
For more information on the `htpasswd` command, see xref:../install_config/configuring_authentication.adoc#HTPasswdPasswordIdentityProvider[HTPasswd Identity Provider].
241+
For more information on the `htpasswd` command, see xref:../install_config/authentication/configuring_authentication_htpasswd.adoc#install-config-configuring-authentication-htpasswd[Configuring the HTPasswd Identity Provider].
242242
====
243243

244244
[[master-node-config-manual]]

architecture/additional_concepts/authentication.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ requesting user to determine if the request should be allowed.
1717

1818
ifdef::openshift-enterprise,openshift-origin[]
1919
As an administrator, you can
20-
xref:../../install_config/configuring_authentication.adoc#install-config-configuring-authentication[configure authentication]
20+
xref:../../install_config/authentication/index.adoc#install-config-configuring-authentication-index[configure authentication]
2121
using a xref:../../install_config/master_node_configuration.adoc#install-config-master-node-configuration[master
2222
configuration file].
2323
endif::[]
@@ -131,7 +131,7 @@ access tokens to authenticate themselves to the API.
131131

132132
When a person requests a new OAuth token, the OAuth server uses the configured
133133
ifdef::openshift-enterprise,openshift-origin[]
134-
xref:../../install_config/configuring_authentication.adoc#install-config-configuring-authentication[identity
134+
xref:../../install_config/authentication/index.adoc#install-config-configuring-authentication-index[identity
135135
provider]
136136
endif::[]
137137
ifdef::openshift-dedicated[]
@@ -184,7 +184,7 @@ grantMethod: prompt <4>
184184
<1> The `name` of the OAuth client is used as the `client_id` parameter when making requests to `_<master>_/oauth/authorize` and `_<master>_/oauth/token`.
185185
<2> The `secret` is used as the `client_secret` parameter when making requests to `_<master>_/oauth/token`.
186186
<3> The `redirect_uri` parameter specified in requests to `_<master>_/oauth/authorize` and `_<master>_/oauth/token` must be equal to (or prefixed by) one of the URIs in `redirectURIs`.
187-
<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. Uses the same values seen in xref:../../install_config/configuring_authentication.adoc#grant-options[Grant Options].
187+
<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. Uses the same values seen in xref:../../install_config/authentication/configuring_authentication_oauth_options.adoc#install-config-configuring-authentication-oauth-grant[Grant Options].
188188
====
189189

190190
[[service-accounts-as-oauth-clients]]
@@ -553,7 +553,7 @@ All requests for OAuth tokens involve a request to `_<master>_/oauth/authorize`.
553553
Most authentication integrations place an authenticating proxy in front of this
554554
endpoint, or configure {product-title} to validate credentials against a backing
555555
ifdef::openshift-enterprise,openshift-origin[]
556-
xref:../../install_config/configuring_authentication.adoc#install-config-configuring-authentication[identity
556+
xref:../../install_config/authentication/index.adoc#install-config-configuring-authentication-index[identity
557557
provider].
558558
endif::[]
559559
ifdef::openshift-dedicated[]

architecture/additional_concepts/other_api_objects.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ this token, if any.
269269
=== Identity
270270
When a user logs into {product-title}, they do so using a configured
271271
ifdef::openshift-enterprise,openshift-origin[]
272-
xref:../../install_config/configuring_authentication.adoc#identity-providers[identity
272+
xref:../../install_config/authentication/index.adoc#install-config-configuring-authentication-index[identity
273273
provider].
274274
endif::[]
275275
ifdef::openshift-dedicated[]

architecture/index.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
:experimental:
88
:linkattrs:
99

10+
1011
ifdef::openshift-origin,openshift-online,openshift-enterprise,openshift-dedicated[]
1112
OpenShift v3 is a layered system designed to expose underlying Docker-formatted
1213
container image and Kubernetes concepts as accurately as possible, with a focus
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
[[install-config-configuring-authentication-allow]]
2+
= Configuring Allow All Authentication
3+
{product-author}
4+
{product-version}
5+
:data-uri:
6+
:icons:
7+
:experimental:
8+
:toc: macro
9+
:toc-title:
10+
:prewrap!:
11+
12+
{nbsp} +
13+
14+
15+
You can configure the {product-title} master configuration file to use Allow All authentication in your cluster.
16+
17+
[[install-config-configuring-authentication-allow-intro]]
18+
== Configuring the Allow All Identity Provider
19+
20+
Setting the `AllowAllPasswordIdentityProvider` in the `identityProviders` stanza allows any non-empty user name and password to log in. This is the default
21+
identity provider when running {product-title} without a
22+
xref:../../install_config/master_node_configuration.adoc#install-config-master-node-configuration[master configuration file].
23+
24+
To configure the Allow All identity provider:
25+
26+
//tag::configuring_authentication_common_steps1[]
27+
28+
. Edit the master configuration file:
29+
+
30+
----
31+
/etc/origin/master/master-config.yaml
32+
----
33+
34+
. Set the following parameters, as needed, or use the default values:
35+
+
36+
----
37+
oauthConfig:
38+
...
39+
identityProviders:
40+
- challenge: true
41+
login: true
42+
----
43+
+
44+
[cols="2a,8a",options="header"]
45+
|===
46+
|Parameter | Description
47+
|`challenge` | When `true`, unauthenticated token requests from non-web
48+
clients (like the CLI) are sent a `WWW-Authenticate` challenge header. Not
49+
supported by all identity providers.
50+
51+
To prevent cross-site request forgery (CSRF) attacks against browser clients
52+
Basic authentication challenges are only sent if a `X-CSRF-Token` header is
53+
present on the request. Clients that expect to receive Basic `WWW-Authenticate`
54+
challenges should set this header to a non-empty value.
55+
56+
|`login` | When `true`, unauthenticated token requests from web clients
57+
(like the web console) are redirected to a login page backed by this provider.
58+
Not supported by all identity providers.
59+
60+
If you want users to be sent to a branded page before being redirected to
61+
the identity provider's login, then set `oauthConfig -> alwaysShowProviderSelection: true`. This provider selection page can be
62+
xref:../../install_config/web_console_customization.adoc#customizing-the-login-page[customized].
63+
|===
64+
//end::configuring_authentication_common_steps1[]
65+
66+
. Specify the `mappingMethod` parameter to determine how identities are mapped to users.
67+
//tag::configuring_authentication_common_steps2[]
68+
+
69+
----
70+
oauthConfig:
71+
...
72+
identityProviders:
73+
- mappingMethod: claim
74+
----
75+
+
76+
[cols="2,8"]
77+
|===
78+
|Parameter | Description
79+
80+
|`claim` | The default value. Provisions a user with the identity's preferred
81+
user name. Fails if a user with that user name is already mapped to another
82+
identity.
83+
84+
|`lookup` | Looks up an existing identity, user identity mapping, and user,
85+
but does not automatically provision users or identities. This allows cluster
86+
administrators to set up identities and users manually, or using an external
87+
process. For more information on provisioning users with the `lookup` method,
88+
see xref:../../install_config/authentication/configuring_authentication_mapping_method.adoc#install-config-configuring-authentication-lookup[Manually Provisioning a User When Using the Lookup Mapping Method].
89+
90+
|`generate` | Provisions a user with the identity's preferred user name. If a
91+
user with the preferred user name is already mapped to an existing identity, a
92+
unique user name is generated. For example, `myuser2`. This method should not be
93+
used in combination with external processes that require exact matches between
94+
{product-title} user names and identity provider user names, such as LDAP group
95+
sync.
96+
97+
|`add` | Provisions a user with the identity's preferred user name. If a user
98+
with that user name already exists, the identity is mapped to the existing user,
99+
adding to any existing identity mappings for the user. Required when multiple
100+
identity providers are configured that identify the same set of users and map to
101+
the same user names.
102+
|===
103+
//end::configuring_authentication_common_steps2[]
104+
105+
. Specify the following values to configure the Allow All provider:
106+
+
107+
.Master Configuration Using `AllowAllPasswordIdentityProvider`
108+
====
109+
110+
----
111+
oauthConfig:
112+
...
113+
identityProviders:
114+
- challenge: true
115+
login: true
116+
mappingMethod: claim
117+
name: my_allow_provider <1>
118+
provider:
119+
apiVersion: v1
120+
kind: AllowAllPasswordIdentityProvider <2>
121+
----
122+
<1> This provider name is prefixed to provider user names to form an identity
123+
name.
124+
<2> Specify *_AllowAllPasswordIdentityProvider_* as the provider kind.
125+
====
126+
//tag::restart-after-config-master[]
127+
. Restart the {product-title} service.
128+
+
129+
ifdef::openshift-enterprise[]
130+
----
131+
# systemctl restart atomic-openshift-master
132+
----
133+
endif::[]
134+
ifdef::openshift-origin[]
135+
----
136+
# systemctl restart origin-master
137+
----
138+
endif::[]
139+
//end::restart-after-config-master[]
140+
141+

0 commit comments

Comments
 (0)