Annotation of embedaddon/lighttpd/doc/outdated/authentication.txt, revision 1.1.1.1
1.1 misho 1: ====================
2: Using Authentication
3: ====================
4:
5: ----------------
6: Module: mod_auth
7: ----------------
8:
9: :Author: Jan Kneschke
10: :Date: $Date$
11: :Revision: $Revision$
12:
13: :abstract:
14: The auth module provides ...
15:
16: .. meta::
17: :keywords: lighttpd, authentication
18:
19: .. contents:: Table of Contents
20:
21: Description
22: ===========
23:
24: Supported Methods
25: -----------------
26:
27: lighttpd supportes both authentication method described by
28: RFC 2617:
29:
30: basic
31: `````
32:
33: The Basic method transfers the username and the password in
34: cleartext over the network (base64 encoded) and might result
35: in security problems if not used in conjunction with a crypted
36: channel between client and server.
37:
38: digest
39: ``````
40:
41: The Digest method only transfers a hashed value over the
42: network which performs a lot of work to harden the
43: authentication process in insecure networks.
44:
45: Backends
46: --------
47:
48: Depending on the method lighttpd provides various way to store
49: the credentials used for the authentication.
50:
51: for basic auth:
52:
53: - plain_
54: - htpasswd_
55: - htdigest_
56: - ldap_
57:
58: for digest auth:
59:
60: - plain_
61: - htdigest_
62:
63:
64: plain
65: `````
66:
67: A file which contains username and the cleartext password
68: seperated by a colon. Each entry is terminated by a single
69: newline.::
70:
71: e.g.:
72: agent007:secret
73:
74:
75: htpasswd
76: ````````
77:
78: A file which contains username and the crypt()'ed password
79: seperated by a colon. Each entry is terminated by a single
80: newline. ::
81:
82: e.g.:
83: agent007:XWY5JwrAVBXsQ
84:
85: You can use htpasswd from the apache distribution to manage
86: those files. ::
87:
88: $ htpasswd lighttpd.user.htpasswd agent007
89:
90:
91: htdigest
92: ````````
93:
94: A file which contains username, realm and the md5()'ed
95: password seperated by a colon. Each entry is terminated
96: by a single newline. ::
97:
98: e.g.:
99: agent007:download area:8364d0044ef57b3defcfa141e8f77b65
100:
101: You can use htdigest from the apache distribution to manage
102: those files. ::
103:
104: $ htdigest lighttpd.user.htdigest 'download area' agent007
105:
106: Using md5sum can also generate the password-hash: ::
107:
108: #!/bin/sh
109: user=$1
110: realm=$2
111: pass=$3
112:
113: hash=`echo -n "$user:$realm:$pass" | md5sum | cut -b -32`
114:
115: echo "$user:$realm:$hash"
116:
117: To use it:
118:
119: $ htdigest.sh 'agent007' 'download area' 'secret'
120: agent007:download area:8364d0044ef57b3defcfa141e8f77b65
121:
122:
123:
124: ldap
125: ````
126:
127: the ldap backend is basically performing the following steps
128: to authenticate a user
129:
130: 1. connect anonymously (at plugin init)
131: 2. get DN for filter = username
132: 3. auth against ldap server
133: 4. disconnect
134:
135: if all 4 steps are performed without any error the user is
136: authenticated
137:
138: Configuration
139: =============
140:
141: ::
142:
143: ## debugging
144: # 0 for off, 1 for 'auth-ok' messages, 2 for verbose debugging
145: auth.debug = 0
146:
147: ## type of backend
148: # plain, htpasswd, ldap or htdigest
149: auth.backend = "htpasswd"
150:
151: # filename of the password storage for
152: # plain
153: auth.backend.plain.userfile = "lighttpd-plain.user"
154:
155: ## for htpasswd
156: auth.backend.htpasswd.userfile = "lighttpd-htpasswd.user"
157:
158: ## for htdigest
159: auth.backend.htdigest.userfile = "lighttpd-htdigest.user"
160:
161: ## for ldap
162: # the $ in auth.backend.ldap.filter is replaced by the
163: # 'username' from the login dialog
164: auth.backend.ldap.hostname = "localhost"
165: auth.backend.ldap.base-dn = "dc=my-domain,dc=com"
166: auth.backend.ldap.filter = "(uid=$)"
167: # if enabled, startTLS needs a valid (base64-encoded) CA
168: # certificate
169: auth.backend.ldap.starttls = "enable"
170: auth.backend.ldap.ca-file = "/etc/CAcertificate.pem"
171:
172: ## restrictions
173: # set restrictions:
174: #
175: # ( <left-part-of-the-url> =>
176: # ( "method" => "digest"/"basic",
177: # "realm" => <realm>,
178: # "require" => "user=<username>" )
179: # )
180: #
181: # <realm> is a string to display in the dialog
182: # presented to the user and is also used for the
183: # digest-algorithm and has to match the realm in the
184: # htdigest file (if used)
185: #
186:
187: auth.require = ( "/download/" =>
188: (
189: "method" => "digest",
190: "realm" => "download archiv",
191: "require" => "user=agent007|user=agent008"
192: ),
193: "/server-info" =>
194: (
195: "method" => "digest",
196: "realm" => "download archiv",
197: "require" => "valid-user"
198: )
199: )
200:
201: Limitations
202: ============
203:
204: - The implementation of digest method is currently not
205: completely compliant with the standard as it still allows
206: a replay attack.
207:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>