Software /
code /
prosody-modules
Comparison
mod_auth_cyrus/README.md @ 4710:099dcdb732b1
mod_auth_cyrus: Import from Prosody rev 8f1e7fd55e7b
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 17 Oct 2021 17:08:07 +0200 |
child | 4926:b8366e31c829 |
comparison
equal
deleted
inserted
replaced
4709:679f1834dbdb | 4710:099dcdb732b1 |
---|---|
1 --- | |
2 title: Cyrus SASL | |
3 rockspec: | |
4 build: | |
5 modules: | |
6 util.sasl_cyrus: sasl_cyrus.lua | |
7 --- | |
8 | |
9 # Introduction | |
10 | |
11 XMPP uses a standard authentication protocol called 'SASL' to validate | |
12 client credentials. Prosody has a built-in SASL library, and uses this | |
13 by default to validate credentials against Prosody's internal account | |
14 store. | |
15 | |
16 Alternatively Prosody supports using Cyrus SASL, an external SASL | |
17 provider which can validate user-supplied credentials against other | |
18 sources, such as PAM, LDAP, SQL and more. It also allows the use of | |
19 GSSAPI for single-sign-on services. | |
20 | |
21 # Usage | |
22 | |
23 ## lua-cyrussasl | |
24 | |
25 To allow Prosody to access Cyrus SASL you need to install lua-cyrussasl. | |
26 Information on how to do that on most platforms can be found on our | |
27 [dependencies page](/doc/depends). Those running Debian/Ubuntu can | |
28 simply: | |
29 | |
30 ``` {.code} | |
31 sudo apt-get install lua-cyrussasl | |
32 ``` | |
33 | |
34 On Redhat/CentOS, the [EPEL | |
35 repository](https://fedoraproject.org/wiki/EPEL) needs to be enabled, | |
36 after which you can install the package: | |
37 | |
38 ``` {.code} | |
39 sudo yum install lua-cyrussasl | |
40 ``` | |
41 | |
42 ## Configuration | |
43 | |
44 Enable the cyrus backend by adding the following line to your config | |
45 file: | |
46 | |
47 ``` {.code .lua} | |
48 authentication = "cyrus" | |
49 cyrus_service_name = "xmpp" -- Optional, defaults to "xmpp" | |
50 ``` | |
51 | |
52 Configuring Cyrus SASL itself is currently beyond the scope of this | |
53 documentation. If you feel you could contribute a simple how-to, or know | |
54 the link of a good one to add below then [let us know](/discuss) | |
55 [:smile:]{.icon} | |
56 | |
57 Prosody's Cyrus SASL-related options: | |
58 | |
59 Option Default Description | |
60 ---------------------------- --------- -------------------------------------------------------------------------------------------------------------- | |
61 cyrus_service_name xmpp The service name to pass to Cyrus SASL. | |
62 cyrus_service_realm (auto) The realm to pass to Cyrus SASL, the virtual host the user is signing into if not specified. | |
63 cyrus_require_provisioning false If true then Prosody requires user accounts to exist in Prosody, even if successfully authenticated via SASL | |
64 cyrus_application_name prosody The application name to pass to Cyrus SASL. Determines the Cyrus SASL configuration file name. | |
65 cyrus_server_fqdn hostname passed to Cyrus | |
66 | |
67 ## Troubleshooting | |
68 | |
69 ### Permissions | |
70 | |
71 One of the most common issues is Prosody being unable to access the | |
72 saslauthd socket (this is obviously only an issue if you are using the | |
73 saslauthd daemon), used to communicate with the authentication daemon. | |
74 An example error caused by this would be: | |
75 | |
76 ``` {.code} | |
77 Got SASL error condition -1: Password verification failed | |
78 ``` | |
79 | |
80 This can be confirmed by trying testsaslauthd as root and then as the | |
81 user prosody runs as (typically 'prosody'); the former should succeed | |
82 and the latter should fail. | |
83 | |
84 The solution is to make sure that prosody can access the socket | |
85 (typically in /var/run/saslauthd/) by adding the 'prosody' user to the | |
86 'sasl' group (or otherwise ensuring that the prosody user has filesystem | |
87 permissions to access the socket). | |
88 | |
89 ### Cyrus SASL Configuration file {#cyrus_sasl_configuration_file} | |
90 | |
91 Cyrus SASL needs a configuration file in order to know where to look for | |
92 user credentials. For Prosody, the file will be named prosody.conf by | |
93 default. Its location varies by OS and distribution; refer to the table | |
94 below or your local system documentation for where it should go. | |
95 | |
96 Location Platforms | |
97 ------------ ------------------- | |
98 /etc/sasl Debian and Ubuntu | |
99 /etc/sasl2 Arch, RHEL/CentOS | |
100 | |
101 The contents of the configuration file depend on what you want to | |
102 authenticate against. If you want to authenticate against local | |
103 accounts, you'll want to set up saslauthd (the configuration of | |
104 saslauthd varies from system to system), and your prosody.conf will look | |
105 like this: | |
106 | |
107 ``` {.code} | |
108 pwcheck_method: saslauthd | |
109 mech_list: PLAIN | |
110 ``` | |
111 | |
112 If using saslauthd, you must specify only PLAIN in the mech_list, as it | |
113 only supports plaintext authentication methods. | |
114 | |
115 ## Other references {#other_references} | |
116 | |
117 - [Setting up Prosody to authenticate against LDAP (blog | |
118 post)](http://blog.marc-seeger.de/2009/12/30/setting-up-prosody-to-authenticate-against-ldap/) | |
119 - This post uses xmpp.conf, but the name is now prosody.conf (see | |
120 cyrus_application_name above) | |
121 - [Surviving Cyrus SASL | |
122 (PDF)](http://www.arschkrebs.de/slides/surviving_cyrus_sasl-handout.pdf) | |
123 [(view)](http://docs.google.com/viewer?url=http%3A%2F%2Fwww.arschkrebs.de%2Fslides%2Fsurviving_cyrus_sasl-handout.pdf) | |
124 - [Cyrus SASL error | |
125 codes](http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libsasl/include/sasl.h#186) |