X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a1d166358687d0f9c82e41c98c69fccc68eafa64..0e2f3e506566b1ceb54bd764d3f32c004e45f8b3:/doc/install/setup-login.html.textile.liquid diff --git a/doc/install/setup-login.html.textile.liquid b/doc/install/setup-login.html.textile.liquid index 46f168774d..47d0c21bea 100644 --- a/doc/install/setup-login.html.textile.liquid +++ b/doc/install/setup-login.html.textile.liquid @@ -9,21 +9,97 @@ Copyright (C) The Arvados Authors. All rights reserved. SPDX-License-Identifier: CC-BY-SA-3.0 {% endcomment %} -# "Option 1: Google login through Arvados controller":#controller -# "Option 2: Separate single-sign-on (SSO) server (Google, LDAP, local database)":#sso +Select one of the following login mechanisms for your cluster. -h2(#controller). Option 1: Google login through Arvados controller +# If all users will authenticate with Google, "configure Google login":#google. +# If all users will authenticate with an OpenID Connect provider (other than Google), "configure OpenID Connect":#oidc. +# If all users will authenticate with an existing LDAP service, "configure LDAP":#ldap. +# If all users will authenticate using PAM as configured on your controller node, "configure PAM":#pam. -First, visit "Setting up Google auth.":google-auth.html +h2(#google). Google login -Next, copy the values of *Client ID* and *Client secret* from the Google Developers Console into @Login.GoogleClientID@ and @Login.GoogleClientSecret@ of @config.yml@ : +With this configuration, users will sign in with their Google accounts. + +Use the Google Developers Console to create a set of client credentials. +# Select or create a project. +# Click *+ Enable APIs and Services*. +#* Search for *People API* and click *Enable API*. +#* Navigate back to the main "APIs & Services" page. +# On the sidebar, click *OAuth consent screen*. +#* On consent screen settings, enter your identifying details. +#* Under *Authorized domains* add your domain (@example.com@). +#* Click *Save*. +# On the sidebar, click *Credentials*, then click *Create credentials*→*OAuth client ID* +# Under *Application type* select *Web application*. +# Add the JavaScript origin: @https://ClusterID.example.com/@ +# Add the Redirect URI: @https://ClusterID.example.com/login@ +# Copy the values of *Client ID* and *Client secret* to the @Login.Google@ section of @config.yml@. + +
+    Login:
+      Google:
+        Enable: true
+        ClientID: "0000000000000-zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.apps.googleusercontent.com"
+        ClientSecret: "zzzzzzzzzzzzzzzzzzzzzzzz"
+
+ +h2(#oidc). OpenID Connect + +With this configuration, users will sign in with a third-party OpenID Connect provider. The provider will supply appropriate values for the issuer URL, client ID, and client secret config entries.
     Login:
-      GoogleClientID: ""
-      GoogleClientSecret: ""
+      OpenIDConnect:
+        Enable: true
+        Issuer: https://accounts.example.com/
+        ClientID: "0123456789abcdef"
+        ClientSecret: "zzzzzzzzzzzzzzzzzzzzzzzz"
 
-h2(#sso). Option 2: Separate single-sign-on (SSO) server (supports Google, LDAP, local database) +Check the OpenIDConnect section in the "default config file":{{site.baseurl}}/admin/config.html for more details and configuration options. + +h2(#ldap). LDAP + +With this configuration, authentication uses an external LDAP service like OpenLDAP or Active Directory. + +Enable LDAP authentication and provide your LDAP server's host, port, and credentials (if needed to search the directory) in @config.yml@: + +
+    Login:
+      LDAP:
+        Enable: true
+        URL: ldap://ldap.example.com:389
+        SearchBindUser: cn=lookupuser,dc=example,dc=com
+        SearchBindPassword: xxxxxxxx
+        SearchBase: ou=Users,dc=example,dc=com
+
+ +The email address reported by LDAP will be used as primary key for Arvados accounts. This means *users must not be able to edit their own email addresses* in the directory. + +Additional configuration settings are available: +* @StartTLS@ is enabled by default. +* @StripDomain@ and @AppendDomain@ modify the username entered by the user before searching for it in the directory. +* @SearchAttribute@ (default @uid@) is the LDAP attribute used when searching for usernames. +* @SearchFilters@ accepts LDAP filter expressions to control which users can log in. + +Check the LDAP section in the "default config file":{{site.baseurl}}/admin/config.html for more details and configuration options. + +h2(#pam). PAM + +With this configuration, authentication is done according to the Linux PAM ("Pluggable Authentication Modules") configuration on your controller host. + +Enable PAM authentication in @config.yml@: + +
+    Login:
+      PAM:
+        Enable: true
+
+ +Check the "default config file":{{site.baseurl}}/admin/config.html for more PAM configuration options. + +The default PAM configuration on most Linux systems uses the local user/password database in @/etc/passwd@ and @/etc/shadow@ for all logins. In this case, in order to log in to Arvados, users must have a UNIX account and password on the controller host itself. This can be convenient for a single-user or test cluster. Configuring a user account with a shell of @/bin/false@ will enable the user to log into Arvados but not log into shell login on the controller host. + +PAM can also be configured to use other authentication systems such such as NIS or Kerberos. In a production environment, PAM configuration should use the service name ("arvados" by default) and set a separate policy for Arvados login. In this case, Arvados users should not have shell accounts on the controller node. -See "Install the Single Sign On (SSO) server":#install-sso.html +For information about configuring PAM, refer to the "PAM System Administrator's Guide":http://www.linux-pam.org/Linux-PAM-html/Linux-PAM_SAG.html.