15881: Add missing details on doc page.
[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, enable Google login and copy the values of *Client ID* and *Client secret* from the Google Developers Console into the @Login.Google@ section of @config.yml@:
26
27 <pre>
28     Login:
29       Google:
30         Enable: true
31         ClientID: "0000000000000-zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.apps.googleusercontent.com"
32         ClientSecret: "zzzzzzzzzzzzzzzzzzzzzzzz"
33 </pre>
34
35 h2(#ldap). LDAP
36
37 With this configuration, authentication uses an external LDAP service like OpenLDAP or Active Directory.
38
39 Enable LDAP authentication and provide your LDAP server's host, port, and credentials (if needed to search the directory) in @config.yml@:
40
41 <pre>
42     Login:
43       LDAP:
44         Enable: true
45         URL: ldap://ldap.example.com:389
46         SearchBindUser: cn=lookupuser,dc=example,dc=com
47         SearchBindPassword: xxxxxxxx
48         SearchBase: ou=Users,dc=example,dc=com
49 </pre>
50
51 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.
52
53 Additional configuration settings are available:
54 * @StartTLS@ is enabled by default.
55 * @StripDomain@ and @AppendDomain@ modify the username entered by the user before searching for it in the directory.
56 * @SearchAttribute@ (default @uid@) is the LDAP attribute used when searching for usernames.
57 * @SearchFilters@ accepts LDAP filter expressions to control which users can log in.
58
59 Check the LDAP section in the "default config file":{{site.baseurl}}/admin/config.html for more details and configuration options.
60
61 h2(#pam). PAM (experimental)
62
63 With this configuration, authentication is done according to the Linux PAM ("Pluggable Authentication Modules") configuration on your controller host.
64
65 Enable PAM authentication in @config.yml@:
66
67 <pre>
68     Login:
69       PAM:
70         Enable: true
71 </pre>
72
73 Check the "default config file":{{site.baseurl}}/admin/config.html for more PAM configuration options.
74
75 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.
76
77 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.
78
79 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.
80
81 h2(#sso). Separate single-sign-on (SSO) server
82
83 With this configuration, Arvados passes off authentication to a separate SSO server that supports Google, LDAP, and a local password database.
84
85 See "Install the Single Sign On (SSO) server":install-sso.html