slapd-ldap.5 21.1 KB
Newer Older
1
.TH SLAPD-LDAP 5 "RELEASEDATE" "OpenLDAP LDVERSION"
Quanah Gibson-Mount's avatar
Quanah Gibson-Mount committed
2
.\" Copyright 1998-2021 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
Note: When looping back to the same instance of
.BR slapd (8), 
52
each connection requires a new thread; as a consequence, the
53
.BR slapd (8)
54
55
\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]
116
.B [tls_reqsan=never|allow|try|demand]
Quanah Gibson-Mount's avatar
Quanah Gibson-Mount committed
117
.B [tls_cipher_suite=<ciphers>]
118
.B [tls_ecname=<names>]
Howard Chu's avatar
Howard Chu committed
119
.B [tls_protocol_min=<major>[.<minor>]]
Howard Chu's avatar
Howard Chu committed
120
.B [tls_crlcheck=none|peer|all]
121
.RS
122
Allows one to define the parameters of the authentication method that is
123
124
125
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.
126
The identity defined by this directive, according to the properties
127
128
associated to the authentication method, is supposed to have read access 
on the target server to attributes used on the proxy for ACL checking.
129

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

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.
142

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

The TLS settings default to the same as the main slapd TLS settings,
except for
.B tls_reqcert
153
154
155
which defaults to "demand", and
.B tls_reqsan
which defaults to "allow".
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
195
196
197
.TP
.B conn\-pool\-max <int>
This directive defines the maximum size of the privileged connections pool.

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

.TP
Howard Chu's avatar
Howard Chu committed
204
.B idassert\-authzFrom <authz-regexp>
205
206
207
208
209
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
210
mostly follows the rules defined for the
211
212
213
214
215
.I authzFrom
attribute.
See 
.BR slapd.conf (5),
section related to
Howard Chu's avatar
Howard Chu committed
216
.BR authz\-policy ,
Quanah Gibson-Mount's avatar
Quanah Gibson-Mount committed
217
218
219
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.
220

221
222
.HP
.hy 0
Howard Chu's avatar
Howard Chu committed
223
.B idassert\-bind
224
225
226
227
.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>]
228
.B [starttls=no|yes|critical]
Howard Chu's avatar
Howard Chu committed
229
230
231
232
233
.B [tls_cert=<file>]
.B [tls_key=<file>]
.B [tls_cacert=<file>]
.B [tls_cacertdir=<path>]
.B [tls_reqcert=never|allow|try|demand]
234
.B [tls_reqsan=never|allow|try|demand]
Quanah Gibson-Mount's avatar
Quanah Gibson-Mount committed
235
.B [tls_cipher_suite=<ciphers>]
236
.B [tls_ecname=<names>]
237
.B [tls_protocol_min=<version>]
Howard Chu's avatar
Howard Chu committed
238
.B [tls_crlcheck=none|peer|all]
239
.RS
240
Allows one to define the parameters of the authentication method that is
241
242
internally used by the proxy to authorize connections that are 
authenticated by other databases.
243
244
Direct binds are always proxied without any idassert handling.

245
246
247
248
249
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
250
251
.B proxyAuthz
privileges on a wide set of DNs, e.g.
Pierangelo Masarati's avatar
Pierangelo Masarati committed
252
.BR authzTo=dn.subtree:"" ,
253
and the remote server to have
Howard Chu's avatar
Howard Chu committed
254
.B authz\-policy
255
set to
256
.B to
257
or
258
.BR both .
259
See
260
261
262
.BR slapd.conf (5)
for details on these statements and for remarks and drawbacks about
their usage.
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
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
282
283
is used, i.e. the proxyAuthz control (Proxied Authorization, RFC 4370)
is added to all operations.
284

285
The supported modes are:
Pierangelo Masarati's avatar
cleanup    
Pierangelo Masarati committed
286

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

289
290
291
292
293
294
295
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
296

297
\fBu:<user>\fP
298

299
300
301
302
303
304
305
306
307
308
309
\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 
310
.BR legacy ,
311
312
313
314
which implies that the proxy will either perform a simple bind as the
.I authcDN
or a SASL bind as the
.I authcID
315
and assert the client's identity when it is not anonymous.
316
317
318
319
320
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 ,
321
unless restricted by
Howard Chu's avatar
Howard Chu committed
322
.BR idassert\-authzFrom
323
324
325
326
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
327
328
329
.BR anonymous
and
.BR self ,
330
331
332
333
334
335
336
337
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
338
339
340
.I authcDN
or the
.I authcID
341
identity will be asserted.
342
343
344
345
346
347
348
349
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.
350

351
352
Flags can be

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

Pierangelo Masarati's avatar
cleanup    
Pierangelo Masarati committed
355
356
357
358
359
360
361
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.
362

363
364
365
366
367
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
368
.B idassert\-authzFrom
369
370
patterns.
If the 
Howard Chu's avatar
Howard Chu committed
371
.B non\-prescriptive
372
373
flag is used, operations are performed anonymously for those identities 
whose assertion is not allowed by the
Howard Chu's avatar
Howard Chu committed
374
.B idassert\-authzFrom
375
376
patterns.

377
378
379
380
381
382
383
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
384
385
386
387
388
389
390
391
392
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
393
394
395
The TLS settings default to the same as the main slapd TLS settings,
except for
.B tls_reqcert
396
397
398
which defaults to "demand", and
.B tls_reqsan
which defaults to "allow".
Howard Chu's avatar
Howard Chu committed
399

400
The identity associated to this directive is also used for privileged
Howard Chu's avatar
Howard Chu committed
401
402
operations whenever \fBidassert\-bind\fP is defined and \fBacl\-bind\fP
is not.  See \fBacl\-bind\fP for details.
403

404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
.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.

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

426
427
428
429
430
431
432
.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
433
is the number of seconds a connection needs to remain idle before TCP
434
435
436
437
438
439
440
441
442
443
444
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.

445
446
447
448
449
450
451
452
.TP
.B tcp\-user\-timeout  <milliseconds>
If non-zero, corresponds to the
.B TCP_USER_TIMEOUT
set on the target connections, overriding the operating system setting.
Only some systems support the customization of this parameter, it is
ignored otherwise and system-wide settings are used.

453
.TP
Howard Chu's avatar
Howard Chu committed
454
.B network\-timeout <time>
455
456
457
458
459
460
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
461
.BR idle\-timeout .
462

463
464
465
466
467
468
469
.TP
.B norefs <NO|yes>
If
.BR yes ,
do not return search reference responses.
By default, they are returned unless request is LDAPv2.

470
471
472
473
474
475
476
.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.

477
478
479
480
481
482
483
484
485
486
487
.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.

488
489
.TP
.B onerr {CONTINUE|stop}
490
This directive allows one to select the behavior in case an error is returned
491
492
493
494
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.

495
496
497
498
499
500
501
502
.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
503

Pierangelo Masarati's avatar
Pierangelo Masarati committed
504
.TP
505
.B proxy\-whoami {NO|yes}
506
507
508
509
510
511
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.
512

513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
.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.

531
.TP
Howard Chu's avatar
Howard Chu committed
532
.B rebind\-as\-user {NO|yes}
533
If this option is given, the client's bind credentials are remembered
534
535
for rebinds, when trying to re-establish a broken connection,
or when chasing a referral, if 
Howard Chu's avatar
Howard Chu committed
536
.B chase\-referrals
537
538
is set to
.IR yes .
539

540
541
542
543
544
545
546
.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.

547
548
549
550
.TP
.B single\-conn {NO|yes}
Discards current cached connection when the client rebinds.

551
.TP
Howard Chu's avatar
Howard Chu committed
552
.B t\-f\-support {NO|yes|discover}
553
enable if the remote server supports absolute filters
554
(see \fIRFC 4526\fP for details).
555
556
If set to
.BR discover ,
Hallvard Furuseth's avatar
Hallvard Furuseth committed
557
support is detected by reading the remote server's root DSE.
558

559
.TP
560
.B timeout [<op>=]<val> [...]
561
This directive allows one to set per-operation timeouts.
562
563
Operations can be

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

566
The overall duration of the \fBsearch\fP operation is controlled either
567
568
by the \fBtimelimit\fP parameter or by server-side enforced
time limits (see \fBtimelimit\fP and \fBlimits\fP in
569
.BR slapd.conf (5)
570
for details).
571
572
This \fBtimeout\fP parameter controls how long the target can be 
irresponsive before the operation is aborted.
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
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
590
identity according to the \fBidassert\-bind\fP directive).
591
592
In this case, the timeout of the operation that resulted in the bind
is used.
593

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

Howard Chu's avatar
Howard Chu committed
610
611
612
613
614
615
If the first parameter is not "none" then this configures the TLS
settings to be used for regular connections.
The StartTLS extended operation will be used when establishing the
connection unless the URI directive protocol scheme is \fBldaps://\fP.
In that case this keyword may only be set to "ldaps" and the StartTLS
operation will not be used.
616
617
618

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
619
The \fBtry\-\fP prefix instructs the proxy to continue operations
620
if the StartTLS operation failed; its use is \fBnot\fP recommended.
621

Howard Chu's avatar
Howard Chu committed
622
623
624
The TLS settings default to the same as the main slapd TLS settings,
except for
.B tls_reqcert
625
626
627
which defaults to "demand",
.B tls_reqsan
which defaults to "allow", and
628
.B starttls
629
which is overshadowed by the first keyword and thus ignored.
Pierangelo Masarati's avatar
Pierangelo Masarati committed
630
.RE
Howard Chu's avatar
Howard Chu committed
631

632
.TP
Howard Chu's avatar
Howard Chu committed
633
.B use\-temporary\-conn {NO|yes}
634
635
636
637
638
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.

639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
.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.

654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
.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.
679
See 
680
.BR slapo\-rwm (5)
681
for details.
682

683
.SH FILES
684
.TP
685
ETCDIR/slapd.conf
686
default slapd configuration file
687
688
.SH SEE ALSO
.BR slapd.conf (5),
689
.BR slapd\-config (5),
690
.BR slapd\-meta (5),
691
.BR slapo\-chain (5),
692
.BR slapo\-pcache (5),
Pierangelo Masarati's avatar
cleanup    
Pierangelo Masarati committed
693
.BR slapo\-rwm (5),
694
.BR slapo\-translucent (5),
695
696
.BR slapd (8),
.BR ldap (3).
Howard Chu's avatar
Howard Chu committed
697
698
.SH AUTHOR
Howard Chu, with enhancements by Pierangelo Masarati