15881: Move Google, SSO, and PAM configs into their own sections.
[arvados.git] / doc / install / setup-login.html.textile.liquid
1 ---
2 layout: default
3 navsection: installguide
4 title: Set up web based login
5 ...
6 {% comment %}
7 Copyright (C) The Arvados Authors. All rights reserved.
8
9 SPDX-License-Identifier: CC-BY-SA-3.0
10 {% endcomment %}
11
12 Select one of the following login mechanisms for your cluster.
13
14 # If all users will authenticate with Google, "configure Google login":#google.
15 # If all users will authenticate with an existing LDAP service, "configure LDAP":#ldap.
16 # If all users will authenticate using PAM as configured on your controller node, "configure PAM":#pam.
17 # If you need to enable multiple authentication methods, "configure a separate single sign-on (SSO) server":#sso.
18
19 h2(#google). Google login
20
21 With this configuration, users will sign in with their Google accounts.
22
23 First, visit "Setting up Google auth.":google-auth.html
24
25 Next, copy the values of *Client ID* and *Client secret* from the Google Developers Console into @Login.Google.ClientID@ and @Login.Google.ClientSecret@ in @config.yml@:
26
27 <pre>
28     Login:
29       Google:
30         ClientID: "0000000000000-zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.apps.googleusercontent.com"
31         ClientSecret: "zzzzzzzzzzzzzzzzzzzzzzzz"
32 </pre>
33
34 h2(#ldap). LDAP
35
36 With this configuration, authentication uses an external LDAP service like OpenLDAP or Active Directory.
37
38 Enable LDAP authentication in @config.yml@:
39
40 <pre>
41     Login:
42       LDAP:
43         Enable: true
44         URL: ldap://ldap.example.com:389
45         SearchBindUser: cn=lookupuser,dc=example,dc=com
46         SearchBindPassword: xxxxxxxx
47         SearchBase: ou=Users,dc=example,dc=com
48 </pre>
49
50 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.
51
52 Additional configuration settings are available:
53 * @StartTLS@ is enabled by default.
54 * @StripDomain@ and @AppendDomain@ modify the username entered by the user before searching for it in the directory.
55 * @SearchAttribute@ (default @uid@) is the LDAP attribute used when searching for usernames.
56 * @SearchFilters@ accepts LDAP filter expressions to control which users can log in.
57
58 Check the LDAP section in the "default config file":{{site.baseurl}}/admin/config.html for more details and configuration options.
59
60 h2(#pam). PAM (experimental)
61
62 With this configuration, authentication is done according to the Linux PAM ("Pluggable Authentication Modules") configuration on your controller host.
63
64 Enable PAM authentication in @config.yml@:
65
66 <pre>
67     Login:
68       PAM:
69         Enable: true
70 </pre>
71
72 Check the "default config file":{{site.baseurl}}/admin/config.html for more PAM configuration options.
73
74 The default PAM configuration on most Linux systems uses the local password database in @/etc/shadow@ for all logins. In this case, in order to log in to Arvados, users must have a shell account and password on the controller host itself. This can be convenient for a single-user or test cluster.
75
76 PAM can also be configured to use different backends like LDAP. In a production environment, PAM configuration should use the service name ("arvados" by default) to set a separate policy for Arvados logins: generally, Arvados users should not have shell accounts on the controller node.
77
78 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.
79
80 h2(#sso). Separate single-sign-on (SSO) server
81
82 With this configuration, Arvados passes off authentication to a separate SSO server that supports Google, LDAP, and a local password database.
83
84 See "Install the Single Sign On (SSO) server":install-sso.html