slapd-ldap.5 23.4 KB
Newer Older
1
.TH SLAPD-LDAP 5 "RELEASEDATE" "OpenLDAP LDVERSION"
Quanah Gibson-Mount's avatar
Quanah Gibson-Mount committed
2
.\" Copyright 1998-2020 The OpenLDAP Foundation All Rights Reserved.
3
4
5
.\" Copying restrictions apply.  See COPYRIGHT/LICENSE.
.\" $OpenLDAP$
.SH NAME
Howard Chu's avatar
Howard Chu committed
6
slapd\-ldap \- LDAP backend to slapd
7
8
9
10
11
12
13
14
15
.SH SYNOPSIS
ETCDIR/slapd.conf
.SH DESCRIPTION
The LDAP backend to
.BR slapd (8)
is not an actual database; instead it acts as a proxy to forward incoming
requests to another LDAP server. While processing requests it will also
chase referrals, so that referrals are fully processed instead of being
returned to the slapd client.
16
17
18
19
20
21
22
23
24

Sessions that explicitly Bind to the back-ldap database always create their
own private connection to the remote LDAP server. Anonymous sessions will
share a single anonymous connection to the remote server. For sessions bound
through other mechanisms, all sessions with the same DN will share the
same connection. This connection pooling strategy can enhance the proxy's
efficiency by reducing the overhead of repeatedly making/breaking multiple
connections.

Pierangelo Masarati's avatar
Pierangelo Masarati committed
25
26
27
28
29
30
The ldap database can also act as an information service, i.e. the identity
of locally authenticated clients is asserted to the remote server, possibly
in some modified form.
For this purpose, the proxy binds to the remote server with some 
administrative identity, and, if required, authorizes the asserted identity.
See the 
Howard Chu's avatar
Howard Chu committed
31
.IR idassert\- *
Pierangelo Masarati's avatar
Pierangelo Masarati committed
32
33
34
35
36
37
38
39
rules below.
The administrative identity of the proxy, on the remote server, must be 
allowed to authorize by means of appropriate
.B authzTo
rules; see 
.BR slapd.conf (5)
for details.

40
41
42
The proxy instance of
.BR slapd (8)
must contain schema information for the attributes and objectClasses
43
used in filters, request DNs and request-related data in general.
44
45
46
47
48
It should also contain schema information for the data returned
by the proxied server.
It is the responsibility of the proxy administrator to keep the schema
of the proxy lined up with that of the proxied server.

49
.LP
50
51
52
53
Note: When looping back to the same instance of
.BR slapd (8), 
each connection requires a new thread; as a consequence,
.BR slapd (8)
54
55
must be compiled with thread support, and the \fBthreads\fP parameter 
may need some tuning; in those cases, one may consider using 
Howard Chu's avatar
Howard Chu committed
56
.BR slapd\-relay (5)
57
instead, which performs the relayed operation 
Kurt Zeilenga's avatar
Kurt Zeilenga committed
58
internally and thus reuses the same connection.
59

60
61
62
63
64
65
66
67
68
.SH CONFIGURATION
These
.B slapd.conf
options apply to the LDAP backend database.
That is, they must follow a "database ldap" line and come before any
subsequent "backend" or "database" lines.
Other database options are described in the
.BR slapd.conf (5)
manual page.
69

70
.LP
71
Note: In early versions of back-ldap it was recommended to always set
72
.LP
73
.RS
74
.nf
75
lastmod  off
76
.fi
77
.RE
78
.LP
79
for 
80
81
82
.B ldap
and
.B meta
83
84
85
databases.
This was required because operational attributes related to entry creation 
and modification should not be proxied, as they could be mistakenly written
86
to the target server(s), generating an error.
87
88
The current implementation automatically sets lastmod to \fBoff\fP, 
so its use is redundant and should be omitted.
89

90
91
.TP
.B uri <ldapurl>
92
LDAP server to use.  Multiple URIs can be set in a single
93
94
.B ldapurl
argument, resulting in the underlying library automatically 
95
calling the first server of the list that responds, e.g.
96

Howard Chu's avatar
Howard Chu committed
97
\fBuri "ldap://host/ ldap://backup\-host/"\fP
98
99

The URI list is space- or comma-separated.
100
101
102
Whenever the server that responds is not the first one in the list,
the list is rearranged and the responsive server is moved to the head,
so that it will be first contacted the next time a connection
103
needs to be created.
104
105
.HP
.hy 0
Howard Chu's avatar
Howard Chu committed
106
.B acl\-bind
107
108
109
.B bindmethod=simple|sasl [binddn=<simple DN>] [credentials=<simple password>]
.B [saslmech=<SASL mech>] [secprops=<properties>] [realm=<realm>]
.B [authcId=<authentication ID>] [authzId=<authorization ID>]
110
.B [starttls=no|yes|critical]
Howard Chu's avatar
Howard Chu committed
111
112
113
114
115
.B [tls_cert=<file>]
.B [tls_key=<file>]
.B [tls_cacert=<file>]
.B [tls_cacertdir=<path>]
.B [tls_reqcert=never|allow|try|demand]
Quanah Gibson-Mount's avatar
Quanah Gibson-Mount committed
116
.B [tls_cipher_suite=<ciphers>]
Howard Chu's avatar
Howard Chu committed
117
.B [tls_protocol_min=<major>[.<minor>]]
Howard Chu's avatar
Howard Chu committed
118
.B [tls_crlcheck=none|peer|all]
119
.RS
120
Allows one to define the parameters of the authentication method that is
121
122
123
internally used by the proxy to collect info related to access control,
and whenever an operation occurs with the identity of the rootdn
of the LDAP proxy database.
124
The identity defined by this directive, according to the properties
125
126
associated to the authentication method, is supposed to have read access 
on the target server to attributes used on the proxy for ACL checking.
127

128
129
There is no risk of giving away such values; they are only used to
check permissions.
130
The default is to use
131
132
.BR simple 
bind, with empty \fIbinddn\fP and \fIcredentials\fP,
133
which means that the related operations will be performed anonymously.
Howard Chu's avatar
Howard Chu committed
134
135
If not set, and if \fBidassert\-bind\fP is defined, this latter identity
is used instead.  See \fBidassert\-bind\fP for details.
136
137
138
139

The connection between the proxy database and the remote server
associated to this identity is cached regardless of the lifespan
of the client-proxy connection that first established it.
140

141
.B This identity is not implicitly used by the proxy
142
.B when the client connects anonymously.
143
The
Howard Chu's avatar
Howard Chu committed
144
.B idassert\-bind
145
146
feature, instead, in some cases can be crafted to implement that behavior,
which is \fIintrinsically unsafe and should be used with extreme care\fP.
147
This directive obsoletes
Howard Chu's avatar
Howard Chu committed
148
.BR acl\-authcDN ,
149
and
Howard Chu's avatar
Howard Chu committed
150
.BR acl\-passwd .
Howard Chu's avatar
Howard Chu committed
151
152
153
154
155

The TLS settings default to the same as the main slapd TLS settings,
except for
.B tls_reqcert
which defaults to "demand".
156
.RE
157

158
.TP
Howard Chu's avatar
Howard Chu committed
159
.B cancel {ABANDON|ignore|exop[\-discover]}
160
161
162
163
164
165
166
167
168
Defines how to handle operation cancellation.
By default,
.B abandon
is invoked, so the operation is abandoned immediately.
If set to
.BR ignore ,
no action is taken and any further response is ignored; this may result
in further response messages to be queued for that connection, so it is
recommended that long lasting connections are timed out either by
Howard Chu's avatar
Howard Chu committed
169
.I idle\-timeout
170
or
Howard Chu's avatar
Howard Chu committed
171
.IR conn\-ttl ,
172
173
174
175
176
177
178
179
180
181
182
so that resources eventually get released.
If set to
.BR exop ,
a
.I cancel
operation (RFC 3909) is issued, resulting in the cancellation 
of the current operation; the
.I cancel
operation waits for remote server response, so its use 
may not be recommended.
If set to
Howard Chu's avatar
Howard Chu committed
183
.BR exop\-discover ,
184
185
186
187
support of the
.I cancel 
extended operation is detected by reading the remote server's root DSE.

188
.TP
Howard Chu's avatar
Howard Chu committed
189
.B chase\-referrals {YES|no}
190
191
enable/disable automatic referral chasing, which is delegated to the
underlying libldap, with rebinding eventually performed if the
Howard Chu's avatar
Howard Chu committed
192
\fBrebind\-as\-user\fP directive is used.  The default is to chase referrals.
193
194

.TP
Howard Chu's avatar
Howard Chu committed
195
.B conn\-ttl <time>
196
This directive causes a cached connection to be dropped and recreated
197
198
199
after a given ttl, regardless of being idle or not.

.TP
Howard Chu's avatar
Howard Chu committed
200
.B idassert\-authzFrom <authz-regexp>
201
202
203
204
205
if defined, selects what
.I local
identities are authorized to exploit the identity assertion feature.
The string
.B <authz-regexp>
Quanah Gibson-Mount's avatar
Quanah Gibson-Mount committed
206
mostly follows the rules defined for the
207
208
209
210
211
.I authzFrom
attribute.
See 
.BR slapd.conf (5),
section related to
Howard Chu's avatar
Howard Chu committed
212
.BR authz\-policy ,
Quanah Gibson-Mount's avatar
Quanah Gibson-Mount committed
213
214
215
for details on the syntax of this field.  This parameter differs from
the documented behavior in relation to the meaning of *, which in this
case allows anonymous rather than denies.
216

217
218
.HP
.hy 0
Howard Chu's avatar
Howard Chu committed
219
.B idassert\-bind
220
221
222
223
.B bindmethod=none|simple|sasl [binddn=<simple DN>] [credentials=<simple password>]
.B [saslmech=<SASL mech>] [secprops=<properties>] [realm=<realm>]
.B [authcId=<authentication ID>] [authzId=<authorization ID>]
.B [authz={native|proxyauthz}] [mode=<mode>] [flags=<flags>]
224
.B [starttls=no|yes|critical]
Howard Chu's avatar
Howard Chu committed
225
226
227
228
229
.B [tls_cert=<file>]
.B [tls_key=<file>]
.B [tls_cacert=<file>]
.B [tls_cacertdir=<path>]
.B [tls_reqcert=never|allow|try|demand]
Quanah Gibson-Mount's avatar
Quanah Gibson-Mount committed
230
.B [tls_cipher_suite=<ciphers>]
231
.B [tls_protocol_min=<version>]
Howard Chu's avatar
Howard Chu committed
232
.B [tls_crlcheck=none|peer|all]
233
.RS
234
Allows one to define the parameters of the authentication method that is
235
236
internally used by the proxy to authorize connections that are 
authenticated by other databases.
237
238
Direct binds are always proxied without any idassert handling.

239
240
241
242
243
The identity defined by this directive, according to the properties
associated to the authentication method, is supposed to have auth access 
on the target server to attributes used on the proxy for authentication
and authorization, and to be allowed to authorize the users.
This requires to have
244
245
.B proxyAuthz
privileges on a wide set of DNs, e.g.
Pierangelo Masarati's avatar
Pierangelo Masarati committed
246
.BR authzTo=dn.subtree:"" ,
247
and the remote server to have
Howard Chu's avatar
Howard Chu committed
248
.B authz\-policy
249
set to
250
.B to
251
or
252
.BR both .
253
See
254
255
256
.BR slapd.conf (5)
for details on these statements and for remarks and drawbacks about
their usage.
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
The supported bindmethods are

\fBnone|simple|sasl\fP

where
.B none
is the default, i.e. no \fIidentity assertion\fP is performed.

The authz parameter is used to instruct the SASL bind to exploit 
.B native 
SASL authorization, if available; since connections are cached,
this should only be used when authorizing with a fixed identity
(e.g. by means of the 
.B authzDN
or
.B authzID
parameters).
Otherwise, the default
.B proxyauthz
276
277
is used, i.e. the proxyAuthz control (Proxied Authorization, RFC 4370)
is added to all operations.
278

279
The supported modes are:
Pierangelo Masarati's avatar
cleanup    
Pierangelo Masarati committed
280

281
\fB<mode> := {legacy|anonymous|none|self}\fP
Pierangelo Masarati's avatar
cleanup    
Pierangelo Masarati committed
282

283
284
285
286
287
288
289
If 
.B <mode>
is not present, and 
.B authzId
is given, the proxy always authorizes that identity.
.B <authorization ID>
can be 
Pierangelo Masarati's avatar
cleanup    
Pierangelo Masarati committed
290

291
\fBu:<user>\fP
292

293
294
295
296
297
298
299
300
301
302
303
\fB[dn:]<DN>\fP

The former is supposed to be expanded by the remote server according 
to the authz rules; see
.BR slapd.conf (5)
for details.
In the latter case, whether or not the 
.B dn:
prefix is present, the string must pass DN validation and normalization.

The default mode is 
304
.BR legacy ,
305
306
307
308
which implies that the proxy will either perform a simple bind as the
.I authcDN
or a SASL bind as the
.I authcID
309
and assert the client's identity when it is not anonymous.
310
311
312
313
314
The other modes imply that the proxy will always either perform a simple bind 
as the
.IR authcDN
or a SASL bind as the
.IR authcID ,
315
unless restricted by
Howard Chu's avatar
Howard Chu committed
316
.BR idassert\-authzFrom
317
318
319
320
rules (see below), in which case the operation will fail;
eventually, it will assert some other identity according to
.BR <mode> .
Other identity assertion modes are
321
322
323
.BR anonymous
and
.BR self ,
324
325
326
327
328
329
330
331
which respectively mean that the 
.I empty 
or the 
.IR client 's 
identity
will be asserted;
.BR none ,
which means that no proxyAuthz control will be used, so the
332
333
334
.I authcDN
or the
.I authcID
335
identity will be asserted.
336
337
338
339
340
341
342
343
For all modes that require the use of the
.I proxyAuthz 
control, on the remote server the proxy identity must have appropriate 
.I authzTo
permissions, or the asserted identities must have appropriate
.I authzFrom 
permissions.  Note, however, that the ID assertion feature is mostly 
useful when the asserted identities do not exist on the remote server.
344

345
346
Flags can be

Pierangelo Masarati's avatar
Pierangelo Masarati committed
347
\fBoverride,[non\-]prescriptive,proxy\-authz\-[non\-]critical,dn\-{authzid|whoami}\fP
348

Pierangelo Masarati's avatar
cleanup    
Pierangelo Masarati committed
349
350
351
352
353
354
355
When the 
.B override
flag is used, identity assertion takes place even when the database
is authorizing for the identity of the client, i.e. after binding
with the provided identity, and thus authenticating it, the proxy
performs the identity assertion using the configured identity and
authentication method.
356

357
358
359
360
361
When the
.B prescriptive
flag is used (the default), operations fail with
\fIinappropriateAuthentication\fP
for those identities whose assertion is not allowed by the
Howard Chu's avatar
Howard Chu committed
362
.B idassert\-authzFrom
363
364
patterns.
If the 
Howard Chu's avatar
Howard Chu committed
365
.B non\-prescriptive
366
367
flag is used, operations are performed anonymously for those identities 
whose assertion is not allowed by the
Howard Chu's avatar
Howard Chu committed
368
.B idassert\-authzFrom
369
370
patterns.

371
372
373
374
375
376
377
When the
.B proxy\-authz\-non\-critical
flag is used (the default), the proxyAuthz control is not marked as critical,
in violation of RFC 4370.  Use of
.B proxy\-authz\-critical
is recommended.

Pierangelo Masarati's avatar
Pierangelo Masarati committed
378
379
380
381
382
383
384
385
386
When the
.B dn\-authzid
flag is used, RFC 3829 LDAP Authorization Identity Controls
is used to retrieve the identity associated to the SASL identity;
when the
.B dn\-whoami
flag is used, RFC 4532 LDAP Who am I? Operation is performed
after the bind for the same purpose.

Howard Chu's avatar
Howard Chu committed
387
388
389
390
391
The TLS settings default to the same as the main slapd TLS settings,
except for
.B tls_reqcert
which defaults to "demand".

392
The identity associated to this directive is also used for privileged
Howard Chu's avatar
Howard Chu committed
393
394
operations whenever \fBidassert\-bind\fP is defined and \fBacl\-bind\fP
is not.  See \fBacl\-bind\fP for details.
395

396
This directive obsoletes
Howard Chu's avatar
Howard Chu committed
397
398
399
.BR idassert\-authcDN ,
.BR idassert\-passwd ,
.BR idassert\-mode ,
400
and
Howard Chu's avatar
Howard Chu committed
401
.BR idassert\-method .
Pierangelo Masarati's avatar
Pierangelo Masarati committed
402
.RE
403

404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
.TP
.B idassert-passthru <authz-regexp>
if defined, selects what
.I local
identities bypass the identity assertion feature.
Those identities need to be known by the remote host.
The string
.B <authz-regexp>
follows the rules defined for the
.I authzFrom
attribute.
See 
.BR slapd.conf (5),
section related to
.BR authz\-policy ,
for details on the syntax of this field.


422
.TP
Howard Chu's avatar
Howard Chu committed
423
.B idle\-timeout <time>
424
425
426
This directive causes a cached connection to be dropped an recreated
after it has been idle for the specified time.

427
428
429
430
431
432
433
.TP
.B keepalive  <idle>:<probes>:<interval>
The
.B keepalive
parameter sets the values of \fIidle\fP, \fIprobes\fP, and \fIinterval\fP
used to check whether a socket is alive;
.I idle
434
is the number of seconds a connection needs to remain idle before TCP
435
436
437
438
439
440
441
442
443
444
445
starts sending keepalive probes;
.I probes
is the maximum number of keepalive probes TCP should send before dropping
the connection;
.I interval
is interval in seconds between individual keepalive probes.
Only some systems support the customization of these values;
the
.B keepalive
parameter is ignored otherwise, and system-wide settings are used.

446
.TP
Howard Chu's avatar
Howard Chu committed
447
.B network\-timeout <time>
448
449
450
451
452
453
Sets the network timeout value after which
.BR poll (2)/ select (2) 
following a 
.BR connect (2) 
returns in case of no activity.
The value is in seconds, and it can be specified as for
Howard Chu's avatar
Howard Chu committed
454
.BR idle\-timeout .
455

456
457
458
459
460
461
462
.TP
.B norefs <NO|yes>
If
.BR yes ,
do not return search reference responses.
By default, they are returned unless request is LDAPv2.

463
464
465
466
467
468
469
.TP
.B omit-unknown-schema <NO|yes>
If
.BR yes ,
do not return objectClasses or attributes that are not known to the local server.
The default is to return all schema elements.

470
471
472
473
474
475
476
477
478
479
480
.TP
.B noundeffilter <NO|yes>
If
.BR yes ,
return success instead of searching if a filter is undefined or contains
undefined portions.
By default, the search is propagated after replacing undefined portions
with
.BR (!(objectClass=*)) ,
which corresponds to the empty result set.

481
482
.TP
.B onerr {CONTINUE|stop}
483
This directive allows one to select the behavior in case an error is returned
484
485
486
487
by the remote server during a search.
The default, \fBcontinue\fP, consists in returning success.
If the value is set to \fBstop\fP, the error is returned to the client.

488
489
490
491
492
493
494
495
.TP
.B protocol\-version {0,2,3}
This directive indicates what protocol version must be used to contact
the remote server.
If set to 0 (the default), the proxy uses the same protocol version 
used by the client, otherwise the requested protocol is used.
The proxy returns \fIunwillingToPerform\fP if an operation that is 
incompatible with the requested protocol is attempted.
Pierangelo Masarati's avatar
cleanup    
Pierangelo Masarati committed
496

Pierangelo Masarati's avatar
Pierangelo Masarati committed
497
.TP
498
.B proxy\-whoami {NO|yes}
499
500
501
502
503
504
Turns on proxying of the WhoAmI extended operation. If this option is
given, back-ldap will replace slapd's original WhoAmI routine with its
own. On slapd sessions that were authenticated by back-ldap, the WhoAmI
request will be forwarded to the remote LDAP server. Other sessions will
be handled by the local slapd, as before. This option is mainly useful
in conjunction with Proxy Authorization.
505

506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
.TP
.B quarantine <interval>,<num>[;<interval>,<num>[...]]
Turns on quarantine of URIs that returned
.IR LDAP_UNAVAILABLE ,
so that an attempt to reconnect only occurs at given intervals instead
of any time a client requests an operation.
The pattern is: retry only after at least
.I interval
seconds elapsed since last attempt, for exactly
.I num
times; then use the next pattern.
If
.I num
for the last pattern is "\fB+\fP", it retries forever; otherwise, 
no more retries occur.
The process can be restarted by resetting the \fIolcDbQuarantine\fP
attribute of the database entry in the configuration backend.

524
.TP
Howard Chu's avatar
Howard Chu committed
525
.B rebind\-as\-user {NO|yes}
526
If this option is given, the client's bind credentials are remembered
527
528
for rebinds, when trying to re-establish a broken connection,
or when chasing a referral, if 
Howard Chu's avatar
Howard Chu committed
529
.B chase\-referrals
530
531
is set to
.IR yes .
532

533
534
535
536
537
538
539
.TP
.B session\-tracking\-request {NO|yes}
Adds session tracking control for all requests.
The client's IP and hostname, and the identity associated to each request,
if known, are sent to the remote server for informational purposes.
This directive is incompatible with setting \fIprotocol\-version\fP to 2.

540
541
542
543
.TP
.B single\-conn {NO|yes}
Discards current cached connection when the client rebinds.

544
.TP
Howard Chu's avatar
Howard Chu committed
545
.B t\-f\-support {NO|yes|discover}
546
enable if the remote server supports absolute filters
547
(see \fIRFC 4526\fP for details).
548
549
If set to
.BR discover ,
Hallvard Furuseth's avatar
Hallvard Furuseth committed
550
support is detected by reading the remote server's root DSE.
551

552
.TP
553
.B timeout [<op>=]<val> [...]
554
This directive allows one to set per-operation timeouts.
555
556
Operations can be

557
\fB<op> ::= bind, add, delete, modrdn, modify, compare, search\fP
558

559
The overall duration of the \fBsearch\fP operation is controlled either
560
561
by the \fBtimelimit\fP parameter or by server-side enforced
time limits (see \fBtimelimit\fP and \fBlimits\fP in
562
.BR slapd.conf (5)
563
for details).
564
565
This \fBtimeout\fP parameter controls how long the target can be 
irresponsive before the operation is aborted.
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
Timeout is meaningless for the remaining operations,
\fBunbind\fP and \fBabandon\fP, which do not imply any response,
while it is not yet implemented in currently supported \fBextended\fP 
operations.
If no operation is specified, the timeout \fBval\fP affects all
supported operations.

Note: if the timelimit is exceeded, the operation is cancelled
(according to the \fBcancel\fP directive);
the protocol does not provide any means to rollback operations,
so the client will not be notified about the result of the operation,
which may eventually succeeded or not.
In case the timeout is exceeded during a bind operation, the connection
is destroyed, according to RFC4511.

Note: in some cases, this backend may issue binds prior
to other operations (e.g. to bind anonymously or with some prescribed
Howard Chu's avatar
Howard Chu committed
583
identity according to the \fBidassert\-bind\fP directive).
584
585
In this case, the timeout of the operation that resulted in the bind
is used.
586

Howard Chu's avatar
Howard Chu committed
587
588
.HP
.hy 0
589
.B tls {none|[try\-]start|[try\-]propagate|ldaps}
590
.B [starttls=no]
Howard Chu's avatar
Howard Chu committed
591
592
593
594
595
.B [tls_cert=<file>]
.B [tls_key=<file>]
.B [tls_cacert=<file>]
.B [tls_cacertdir=<path>]
.B [tls_reqcert=never|allow|try|demand]
Quanah Gibson-Mount's avatar
Quanah Gibson-Mount committed
596
.B [tls_cipher_suite=<ciphers>]
Howard Chu's avatar
Howard Chu committed
597
598
.B [tls_crlcheck=none|peer|all]
.RS
599
600
601
602
603
604
605
Specify TLS settings for regular connections.

The first parameter only applies to \fBldap://\fP connections and so
at the moment, \fBnone\fP and \fBldaps\fP are equivalent.

With \fBpropagate\fP, the proxy issues StartTLS operation only if
the original connection has a TLS layer set up.
Howard Chu's avatar
Howard Chu committed
606
The \fBtry\-\fP prefix instructs the proxy to continue operations
607
if the StartTLS operation failed; its use is \fBnot\fP recommended.
608

Howard Chu's avatar
Howard Chu committed
609
610
611
The TLS settings default to the same as the main slapd TLS settings,
except for
.B tls_reqcert
612
613
which defaults to "demand" and
.B starttls
614
which is overshadowed by the first keyword and thus ignored.
Pierangelo Masarati's avatar
Pierangelo Masarati committed
615
.RE
Howard Chu's avatar
Howard Chu committed
616

617
.TP
Howard Chu's avatar
Howard Chu committed
618
.B use\-temporary\-conn {NO|yes}
619
620
621
622
623
when set to 
.BR yes ,
create a temporary connection whenever competing with other threads
for a shared one; otherwise, wait until the shared connection is available.

624
.SH BACKWARD COMPATIBILITY
625
626
627
The LDAP backend has been heavily reworked between releases 2.2 and 2.3,
and subsequently between 2.3 and 2.4.
As a side-effect, some of the traditional directives have been
628
629
deprecated and should be no longer used, as they might disappear
in future releases.
630
631

.TP
Howard Chu's avatar
Howard Chu committed
632
.B acl\-authcDN "<administrative DN for access control purposes>"
633
634
635
636
Formerly known as the
.BR binddn ,
it is the DN that is used to query the target server for acl checking;
it is supposed to have read access on the target server to attributes used
637
638
639
on the proxy for acl checking.
There is no risk of giving away such values; they are only used to
check permissions.
640

Howard Chu's avatar
Howard Chu committed
641
.B The acl\-authcDN identity is by no means implicitly used by the proxy 
642
.B when the client connects anonymously.
643
The
Howard Chu's avatar
Howard Chu committed
644
.B idassert\-*
645
646
feature can be used (at own risk) for that purpose instead.

647
648
649
This directive is obsoleted by the
.B binddn
arg of
Howard Chu's avatar
Howard Chu committed
650
.B acl\-bind
651
when \fIbindmethod\fP=\fBsimple\fP, and will be dismissed in the future.
652
653

.TP
Howard Chu's avatar
Howard Chu committed
654
.B acl\-passwd <password>
655
656
657
Formerly known as the
.BR bindpw ,
it is the password used with the above
Howard Chu's avatar
Howard Chu committed
658
.B acl\-authcDN
659
660
directive.
This directive is obsoleted by the
661
.B credentials
662
arg of
Howard Chu's avatar
Howard Chu committed
663
.B acl\-bind
664
when \fIbindmethod\fP=\fBsimple\fP, and will be dismissed in the future.
665
666

.TP
Howard Chu's avatar
Howard Chu committed
667
.B idassert\-authcDN "<administrative DN for proxyAuthz purposes>"
668
669
DN which is used to propagate the client's identity to the target
by means of the proxyAuthz control when the client does not
Hallvard Furuseth's avatar
Hallvard Furuseth committed
670
belong to the DIT fragment that is being proxied by back-ldap.
671
672
673
This directive is obsoleted by the
.B binddn
arg of
Howard Chu's avatar
Howard Chu committed
674
.BR idassert\-bind
675
when \fIbindmethod\fP=\fBsimple\fP, and will be dismissed in the future.
676
677

.TP
Howard Chu's avatar
Howard Chu committed
678
.B idassert\-passwd <password>
679
Password used with the
Howard Chu's avatar
Howard Chu committed
680
.B idassert\-authcDN
681
above.
682
This directive is obsoleted by the
Josh Soref's avatar
Josh Soref committed
683
.B credentials
684
arg of
Howard Chu's avatar
Howard Chu committed
685
.B idassert\-bind
686
when \fIbindmethod\fP=\fBsimple\fP, and will be dismissed in the future.
687
688

.TP
Howard Chu's avatar
Howard Chu committed
689
.B idassert\-mode <mode> [<flags>]
690
691
692
defines what type of
.I identity assertion
is used.
693
694
695
This directive is obsoleted by the
.B mode
arg of 
Howard Chu's avatar
Howard Chu committed
696
.BR idassert\-bind ,
697
and will be dismissed in the future.
698
699

.TP
Howard Chu's avatar
Howard Chu committed
700
.B idassert\-method <method> [<saslargs>]
701
702
703
This directive is obsoleted by the
.B bindmethod
arg of
Howard Chu's avatar
Howard Chu committed
704
.BR idassert\-bind ,
705
and will be dismissed in the future.
706

707
708
709
710
711
712
.TP
.B port <port>
this directive is no longer supported.  Use the 
.B uri
directive as described above.

713
714
715
716
717
718
.TP
.B server <hostname[:port]>
this directive is no longer supported.  Use the 
.B uri
directive as described above.

719
.TP
Pierangelo Masarati's avatar
cleanup    
Pierangelo Masarati committed
720
721
722
723
.B suffixmassage, map, rewrite*
These directives are no longer supported by back-ldap; their 
functionality is now delegated to the
.B rwm
724
725
726
727
728
overlay.  Essentially, add a statement

.B overlay rwm

first, and prefix all rewrite/map statements with
Howard Chu's avatar
Howard Chu committed
729
.B rwm\-
730
731
to obtain the original behavior.
See
Howard Chu's avatar
Howard Chu committed
732
.BR slapo\-rwm (5)
Pierangelo Masarati's avatar
cleanup    
Pierangelo Masarati committed
733
for details.
734
735
736
737
738
.\" However, to ease update from existing configurations, back-ldap still 
.\" recognizes them and automatically instantiates the
.\" .B rwm
.\" overlay if available and not instantiated yet.
.\" This behavior may change in the future.
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754

.SH ACCESS CONTROL
The
.B ldap
backend does not honor all ACL semantics as described in
.BR slapd.access (5).
In general, access checking is delegated to the remote server(s).
Only
.B read (=r)
access to the
.B entry
pseudo-attribute and to the other attribute values of the entries
returned by the
.B search
operation is honored, which is performed by the frontend.

755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
.SH OVERLAYS
The LDAP backend provides basic proxying functionalities to many overlays.
The 
.B chain
overlay, described in
.BR slapo\-chain (5),
and the
.B translucent
overlay, described in
.BR slapo\-translucent (5),
deserve a special mention.

Conversely, there are many overlays that are best used in conjunction
with the LDAP backend.
The
.B proxycache 
overlay allows caching of LDAP search requests (queries) 
in a local database.
See 
.BR slapo\-pcache (5)
for details.
The
.B rwm
overlay provides DN rewrite and attribute/objectClass mapping
capabilities to the underlying database.
780
See 
781
.BR slapo\-rwm (5)
782
for details.
783

784
.SH FILES
785
.TP
786
ETCDIR/slapd.conf
787
default slapd configuration file
788
789
.SH SEE ALSO
.BR slapd.conf (5),
790
.BR slapd\-config (5),
791
.BR slapd\-meta (5),
792
.BR slapo\-chain (5),
793
.BR slapo\-pcache (5),
Pierangelo Masarati's avatar
cleanup    
Pierangelo Masarati committed
794
.BR slapo\-rwm (5),
795
.BR slapo\-translucent (5),
796
797
.BR slapd (8),
.BR ldap (3).
Howard Chu's avatar
Howard Chu committed
798
799
.SH AUTHOR
Howard Chu, with enhancements by Pierangelo Masarati