comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/share/man/man5/krb5.conf.5 @ 68:5028fdace37b

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 16:23:26 -0400
parents
children
comparison
equal deleted inserted replaced
67:0e9998148a16 68:5028fdace37b
1 .\" Man page generated from reStructuredText.
2 .
3 .TH "KRB5.CONF" "5" " " "1.20.1" "MIT Kerberos"
4 .SH NAME
5 krb5.conf \- Kerberos configuration file
6 .
7 .nr rst2man-indent-level 0
8 .
9 .de1 rstReportMargin
10 \\$1 \\n[an-margin]
11 level \\n[rst2man-indent-level]
12 level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 -
14 \\n[rst2man-indent0]
15 \\n[rst2man-indent1]
16 \\n[rst2man-indent2]
17 ..
18 .de1 INDENT
19 .\" .rstReportMargin pre:
20 . RS \\$1
21 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 . nr rst2man-indent-level +1
23 .\" .rstReportMargin post:
24 ..
25 .de UNINDENT
26 . RE
27 .\" indent \\n[an-margin]
28 .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 .nr rst2man-indent-level -1
30 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 ..
33 .sp
34 The krb5.conf file contains Kerberos configuration information,
35 including the locations of KDCs and admin servers for the Kerberos
36 realms of interest, defaults for the current realm and for Kerberos
37 applications, and mappings of hostnames onto Kerberos realms.
38 Normally, you should install your krb5.conf file in the directory
39 \fB/etc\fP\&. You can override the default location by setting the
40 environment variable \fBKRB5_CONFIG\fP\&. Multiple colon\-separated
41 filenames may be specified in \fBKRB5_CONFIG\fP; all files which are
42 present will be read. Starting in release 1.14, directory names can
43 also be specified in \fBKRB5_CONFIG\fP; all files within the directory
44 whose names consist solely of alphanumeric characters, dashes, or
45 underscores will be read.
46 .SH STRUCTURE
47 .sp
48 The krb5.conf file is set up in the style of a Windows INI file.
49 Lines beginning with \(aq#\(aq or \(aq;\(aq (possibly after initial whitespace)
50 are ignored as comments. Sections are headed by the section name, in
51 square brackets. Each section may contain zero or more relations, of
52 the form:
53 .INDENT 0.0
54 .INDENT 3.5
55 .sp
56 .nf
57 .ft C
58 foo = bar
59 .ft P
60 .fi
61 .UNINDENT
62 .UNINDENT
63 .sp
64 or:
65 .INDENT 0.0
66 .INDENT 3.5
67 .sp
68 .nf
69 .ft C
70 fubar = {
71 foo = bar
72 baz = quux
73 }
74 .ft P
75 .fi
76 .UNINDENT
77 .UNINDENT
78 .sp
79 Placing a \(aq*\(aq after the closing bracket of a section name indicates
80 that the section is \fIfinal\fP, meaning that if the same section appears
81 within a later file specified in \fBKRB5_CONFIG\fP, it will be ignored.
82 A subsection can be marked as final by placing a \(aq*\(aq after either the
83 tag name or the closing brace.
84 .sp
85 The krb5.conf file can include other files using either of the
86 following directives at the beginning of a line:
87 .INDENT 0.0
88 .INDENT 3.5
89 .sp
90 .nf
91 .ft C
92 include FILENAME
93 includedir DIRNAME
94 .ft P
95 .fi
96 .UNINDENT
97 .UNINDENT
98 .sp
99 \fIFILENAME\fP or \fIDIRNAME\fP should be an absolute path. The named file or
100 directory must exist and be readable. Including a directory includes
101 all files within the directory whose names consist solely of
102 alphanumeric characters, dashes, or underscores. Starting in release
103 1.15, files with names ending in ".conf" are also included, unless the
104 name begins with ".". Included profile files are syntactically
105 independent of their parents, so each included file must begin with a
106 section header. Starting in release 1.17, files are read in
107 alphanumeric order; in previous releases, they may be read in any
108 order.
109 .sp
110 The krb5.conf file can specify that configuration should be obtained
111 from a loadable module, rather than the file itself, using the
112 following directive at the beginning of a line before any section
113 headers:
114 .INDENT 0.0
115 .INDENT 3.5
116 .sp
117 .nf
118 .ft C
119 module MODULEPATH:RESIDUAL
120 .ft P
121 .fi
122 .UNINDENT
123 .UNINDENT
124 .sp
125 \fIMODULEPATH\fP may be relative to the library path of the krb5
126 installation, or it may be an absolute path. \fIRESIDUAL\fP is provided
127 to the module at initialization time. If krb5.conf uses a module
128 directive, kdc.conf(5) should also use one if it exists.
129 .SH SECTIONS
130 .sp
131 The krb5.conf file may contain the following sections:
132 .TS
133 center;
134 |l|l|.
135 _
136 T{
137 \fI\%[libdefaults]\fP
138 T} T{
139 Settings used by the Kerberos V5 library
140 T}
141 _
142 T{
143 \fI\%[realms]\fP
144 T} T{
145 Realm\-specific contact information and settings
146 T}
147 _
148 T{
149 \fI\%[domain_realm]\fP
150 T} T{
151 Maps server hostnames to Kerberos realms
152 T}
153 _
154 T{
155 \fI\%[capaths]\fP
156 T} T{
157 Authentication paths for non\-hierarchical cross\-realm
158 T}
159 _
160 T{
161 \fI\%[appdefaults]\fP
162 T} T{
163 Settings used by some Kerberos V5 applications
164 T}
165 _
166 T{
167 \fI\%[plugins]\fP
168 T} T{
169 Controls plugin module registration
170 T}
171 _
172 .TE
173 .sp
174 Additionally, krb5.conf may include any of the relations described in
175 kdc.conf(5), but it is not a recommended practice.
176 .SS [libdefaults]
177 .sp
178 The libdefaults section may contain any of the following relations:
179 .INDENT 0.0
180 .TP
181 \fBallow_weak_crypto\fP
182 If this flag is set to false, then weak encryption types (as noted
183 in Encryption_types in kdc.conf(5)) will be filtered
184 out of the lists \fBdefault_tgs_enctypes\fP,
185 \fBdefault_tkt_enctypes\fP, and \fBpermitted_enctypes\fP\&. The default
186 value for this tag is false.
187 .TP
188 \fBcanonicalize\fP
189 If this flag is set to true, initial ticket requests to the KDC
190 will request canonicalization of the client principal name, and
191 answers with different client principals than the requested
192 principal will be accepted. The default value is false.
193 .TP
194 \fBccache_type\fP
195 This parameter determines the format of credential cache types
196 created by kinit(1) or other programs. The default value
197 is 4, which represents the most current format. Smaller values
198 can be used for compatibility with very old implementations of
199 Kerberos which interact with credential caches on the same host.
200 .TP
201 \fBclockskew\fP
202 Sets the maximum allowable amount of clockskew in seconds that the
203 library will tolerate before assuming that a Kerberos message is
204 invalid. The default value is 300 seconds, or five minutes.
205 .sp
206 The clockskew setting is also used when evaluating ticket start
207 and expiration times. For example, tickets that have reached
208 their expiration time can still be used (and renewed if they are
209 renewable tickets) if they have been expired for a shorter
210 duration than the \fBclockskew\fP setting.
211 .TP
212 \fBdefault_ccache_name\fP
213 This relation specifies the name of the default credential cache.
214 The default is \fBFILE:/tmp/krb5cc_%{uid}\fP\&. This relation is subject to parameter
215 expansion (see below). New in release 1.11.
216 .TP
217 \fBdefault_client_keytab_name\fP
218 This relation specifies the name of the default keytab for
219 obtaining client credentials. The default is \fBFILE:/opt/conda/var/krb5/user/%{euid}/client.keytab\fP\&. This
220 relation is subject to parameter expansion (see below).
221 New in release 1.11.
222 .TP
223 \fBdefault_keytab_name\fP
224 This relation specifies the default keytab name to be used by
225 application servers such as sshd. The default is \fBFILE:/etc/krb5.keytab\fP\&. This
226 relation is subject to parameter expansion (see below).
227 .TP
228 \fBdefault_rcache_name\fP
229 This relation specifies the name of the default replay cache.
230 The default is \fBdfl:\fP\&. This relation is subject to parameter
231 expansion (see below). New in release 1.18.
232 .TP
233 \fBdefault_realm\fP
234 Identifies the default Kerberos realm for the client. Set its
235 value to your Kerberos realm. If this value is not set, then a
236 realm must be specified with every Kerberos principal when
237 invoking programs such as kinit(1)\&.
238 .TP
239 \fBdefault_tgs_enctypes\fP
240 Identifies the supported list of session key encryption types that
241 the client should request when making a TGS\-REQ, in order of
242 preference from highest to lowest. The list may be delimited with
243 commas or whitespace. See Encryption_types in
244 kdc.conf(5) for a list of the accepted values for this tag.
245 Starting in release 1.18, the default value is the value of
246 \fBpermitted_enctypes\fP\&. For previous releases or if
247 \fBpermitted_enctypes\fP is not set, the default value is
248 \fBaes256\-cts\-hmac\-sha1\-96 aes128\-cts\-hmac\-sha1\-96 aes256\-cts\-hmac\-sha384\-192 aes128\-cts\-hmac\-sha256\-128 des3\-cbc\-sha1 arcfour\-hmac\-md5 camellia256\-cts\-cmac camellia128\-cts\-cmac\fP\&.
249 .sp
250 Do not set this unless required for specific backward
251 compatibility purposes; stale values of this setting can prevent
252 clients from taking advantage of new stronger enctypes when the
253 libraries are upgraded.
254 .TP
255 \fBdefault_tkt_enctypes\fP
256 Identifies the supported list of session key encryption types that
257 the client should request when making an AS\-REQ, in order of
258 preference from highest to lowest. The format is the same as for
259 default_tgs_enctypes. Starting in release 1.18, the default
260 value is the value of \fBpermitted_enctypes\fP\&. For previous
261 releases or if \fBpermitted_enctypes\fP is not set, the default
262 value is \fBaes256\-cts\-hmac\-sha1\-96 aes128\-cts\-hmac\-sha1\-96 aes256\-cts\-hmac\-sha384\-192 aes128\-cts\-hmac\-sha256\-128 des3\-cbc\-sha1 arcfour\-hmac\-md5 camellia256\-cts\-cmac camellia128\-cts\-cmac\fP\&.
263 .sp
264 Do not set this unless required for specific backward
265 compatibility purposes; stale values of this setting can prevent
266 clients from taking advantage of new stronger enctypes when the
267 libraries are upgraded.
268 .TP
269 \fBdns_canonicalize_hostname\fP
270 Indicate whether name lookups will be used to canonicalize
271 hostnames for use in service principal names. Setting this flag
272 to false can improve security by reducing reliance on DNS, but
273 means that short hostnames will not be canonicalized to
274 fully\-qualified hostnames. If this option is set to \fBfallback\fP (new
275 in release 1.18), DNS canonicalization will only be performed the
276 server hostname is not found with the original name when
277 requesting credentials. The default value is true.
278 .TP
279 \fBdns_lookup_kdc\fP
280 Indicate whether DNS SRV records should be used to locate the KDCs
281 and other servers for a realm, if they are not listed in the
282 krb5.conf information for the realm. (Note that the admin_server
283 entry must be in the krb5.conf realm information in order to
284 contact kadmind, because the DNS implementation for kadmin is
285 incomplete.)
286 .sp
287 Enabling this option does open up a type of denial\-of\-service
288 attack, if someone spoofs the DNS records and redirects you to
289 another server. However, it\(aqs no worse than a denial of service,
290 because that fake KDC will be unable to decode anything you send
291 it (besides the initial ticket request, which has no encrypted
292 data), and anything the fake KDC sends will not be trusted without
293 verification using some secret that it won\(aqt know.
294 .TP
295 \fBdns_uri_lookup\fP
296 Indicate whether DNS URI records should be used to locate the KDCs
297 and other servers for a realm, if they are not listed in the
298 krb5.conf information for the realm. SRV records are used as a
299 fallback if no URI records were found. The default value is true.
300 New in release 1.15.
301 .TP
302 \fBenforce_ok_as_delegate\fP
303 If this flag to true, GSSAPI credential delegation will be
304 disabled when the \fBok\-as\-delegate\fP flag is not set in the
305 service ticket. If this flag is false, the \fBok\-as\-delegate\fP
306 ticket flag is only enforced when an application specifically
307 requests enforcement. The default value is false.
308 .TP
309 \fBerr_fmt\fP
310 This relation allows for custom error message formatting. If a
311 value is set, error messages will be formatted by substituting a
312 normal error message for %M and an error code for %C in the value.
313 .TP
314 \fBextra_addresses\fP
315 This allows a computer to use multiple local addresses, in order
316 to allow Kerberos to work in a network that uses NATs while still
317 using address\-restricted tickets. The addresses should be in a
318 comma\-separated list. This option has no effect if
319 \fBnoaddresses\fP is true.
320 .TP
321 \fBforwardable\fP
322 If this flag is true, initial tickets will be forwardable by
323 default, if allowed by the KDC. The default value is false.
324 .TP
325 \fBignore_acceptor_hostname\fP
326 When accepting GSSAPI or krb5 security contexts for host\-based
327 service principals, ignore any hostname passed by the calling
328 application, and allow clients to authenticate to any service
329 principal in the keytab matching the service name and realm name
330 (if given). This option can improve the administrative
331 flexibility of server applications on multihomed hosts, but could
332 compromise the security of virtual hosting environments. The
333 default value is false. New in release 1.10.
334 .TP
335 \fBk5login_authoritative\fP
336 If this flag is true, principals must be listed in a local user\(aqs
337 k5login file to be granted login access, if a \&.k5login(5)
338 file exists. If this flag is false, a principal may still be
339 granted login access through other mechanisms even if a k5login
340 file exists but does not list the principal. The default value is
341 true.
342 .TP
343 \fBk5login_directory\fP
344 If set, the library will look for a local user\(aqs k5login file
345 within the named directory, with a filename corresponding to the
346 local username. If not set, the library will look for k5login
347 files in the user\(aqs home directory, with the filename .k5login.
348 For security reasons, .k5login files must be owned by
349 the local user or by root.
350 .TP
351 \fBkcm_mach_service\fP
352 On macOS only, determines the name of the bootstrap service used to
353 contact the KCM daemon for the KCM credential cache type. If the
354 value is \fB\-\fP, Mach RPC will not be used to contact the KCM
355 daemon. The default value is \fBorg.h5l.kcm\fP\&.
356 .TP
357 \fBkcm_socket\fP
358 Determines the path to the Unix domain socket used to access the
359 KCM daemon for the KCM credential cache type. If the value is
360 \fB\-\fP, Unix domain sockets will not be used to contact the KCM
361 daemon. The default value is
362 \fB/var/run/.heim_org.h5l.kcm\-socket\fP\&.
363 .TP
364 \fBkdc_default_options\fP
365 Default KDC options (Xored for multiple values) when requesting
366 initial tickets. By default it is set to 0x00000010
367 (KDC_OPT_RENEWABLE_OK).
368 .TP
369 \fBkdc_timesync\fP
370 Accepted values for this relation are 1 or 0. If it is nonzero,
371 client machines will compute the difference between their time and
372 the time returned by the KDC in the timestamps in the tickets and
373 use this value to correct for an inaccurate system clock when
374 requesting service tickets or authenticating to services. This
375 corrective factor is only used by the Kerberos library; it is not
376 used to change the system clock. The default value is 1.
377 .TP
378 \fBnoaddresses\fP
379 If this flag is true, requests for initial tickets will not be
380 made with address restrictions set, allowing the tickets to be
381 used across NATs. The default value is true.
382 .TP
383 \fBpermitted_enctypes\fP
384 Identifies the encryption types that servers will permit for
385 session keys and for ticket and authenticator encryption, ordered
386 by preference from highest to lowest. Starting in release 1.18,
387 this tag also acts as the default value for
388 \fBdefault_tgs_enctypes\fP and \fBdefault_tkt_enctypes\fP\&. The
389 default value for this tag is \fBaes256\-cts\-hmac\-sha1\-96 aes128\-cts\-hmac\-sha1\-96 aes256\-cts\-hmac\-sha384\-192 aes128\-cts\-hmac\-sha256\-128 des3\-cbc\-sha1 arcfour\-hmac\-md5 camellia256\-cts\-cmac camellia128\-cts\-cmac\fP\&.
390 .TP
391 \fBplugin_base_dir\fP
392 If set, determines the base directory where krb5 plugins are
393 located. The default value is the \fBkrb5/plugins\fP subdirectory
394 of the krb5 library directory. This relation is subject to
395 parameter expansion (see below) in release 1.17 and later.
396 .TP
397 \fBpreferred_preauth_types\fP
398 This allows you to set the preferred preauthentication types which
399 the client will attempt before others which may be advertised by a
400 KDC. The default value for this setting is "17, 16, 15, 14",
401 which forces libkrb5 to attempt to use PKINIT if it is supported.
402 .TP
403 \fBproxiable\fP
404 If this flag is true, initial tickets will be proxiable by
405 default, if allowed by the KDC. The default value is false.
406 .TP
407 \fBqualify_shortname\fP
408 If this string is set, it determines the domain suffix for
409 single\-component hostnames when DNS canonicalization is not used
410 (either because \fBdns_canonicalize_hostname\fP is false or because
411 forward canonicalization failed). The default value is the first
412 search domain of the system\(aqs DNS configuration. To disable
413 qualification of shortnames, set this relation to the empty string
414 with \fBqualify_shortname = ""\fP\&. (New in release 1.18.)
415 .TP
416 \fBrdns\fP
417 If this flag is true, reverse name lookup will be used in addition
418 to forward name lookup to canonicalizing hostnames for use in
419 service principal names. If \fBdns_canonicalize_hostname\fP is set
420 to false, this flag has no effect. The default value is true.
421 .TP
422 \fBrealm_try_domains\fP
423 Indicate whether a host\(aqs domain components should be used to
424 determine the Kerberos realm of the host. The value of this
425 variable is an integer: \-1 means not to search, 0 means to try the
426 host\(aqs domain itself, 1 means to also try the domain\(aqs immediate
427 parent, and so forth. The library\(aqs usual mechanism for locating
428 Kerberos realms is used to determine whether a domain is a valid
429 realm, which may involve consulting DNS if \fBdns_lookup_kdc\fP is
430 set. The default is not to search domain components.
431 .TP
432 \fBrenew_lifetime\fP
433 (duration string.) Sets the default renewable lifetime
434 for initial ticket requests. The default value is 0.
435 .TP
436 \fBspake_preauth_groups\fP
437 A whitespace or comma\-separated list of words which specifies the
438 groups allowed for SPAKE preauthentication. The possible values
439 are:
440 .TS
441 center;
442 |l|l|.
443 _
444 T{
445 edwards25519
446 T} T{
447 Edwards25519 curve (\fI\%RFC 7748\fP)
448 T}
449 _
450 T{
451 P\-256
452 T} T{
453 NIST P\-256 curve (\fI\%RFC 5480\fP)
454 T}
455 _
456 T{
457 P\-384
458 T} T{
459 NIST P\-384 curve (\fI\%RFC 5480\fP)
460 T}
461 _
462 T{
463 P\-521
464 T} T{
465 NIST P\-521 curve (\fI\%RFC 5480\fP)
466 T}
467 _
468 .TE
469 .sp
470 The default value for the client is \fBedwards25519\fP\&. The default
471 value for the KDC is empty. New in release 1.17.
472 .TP
473 \fBticket_lifetime\fP
474 (duration string.) Sets the default lifetime for initial
475 ticket requests. The default value is 1 day.
476 .TP
477 \fBudp_preference_limit\fP
478 When sending a message to the KDC, the library will try using TCP
479 before UDP if the size of the message is above
480 \fBudp_preference_limit\fP\&. If the message is smaller than
481 \fBudp_preference_limit\fP, then UDP will be tried before TCP.
482 Regardless of the size, both protocols will be tried if the first
483 attempt fails.
484 .TP
485 \fBverify_ap_req_nofail\fP
486 If this flag is true, then an attempt to verify initial
487 credentials will fail if the client machine does not have a
488 keytab. The default value is false.
489 .TP
490 \fBclient_aware_channel_bindings\fP
491 If this flag is true, then all application protocol authentication
492 requests will be flagged to indicate that the application supports
493 channel bindings when operating over a secure channel. The
494 default value is false.
495 .UNINDENT
496 .SS [realms]
497 .sp
498 Each tag in the [realms] section of the file is the name of a Kerberos
499 realm. The value of the tag is a subsection with relations that
500 define the properties of that particular realm. For each realm, the
501 following tags may be specified in the realm\(aqs subsection:
502 .INDENT 0.0
503 .TP
504 \fBadmin_server\fP
505 Identifies the host where the administration server is running.
506 Typically, this is the primary Kerberos server. This tag must be
507 given a value in order to communicate with the kadmind(8)
508 server for the realm.
509 .TP
510 \fBauth_to_local\fP
511 This tag allows you to set a general rule for mapping principal
512 names to local user names. It will be used if there is not an
513 explicit mapping for the principal name that is being
514 translated. The possible values are:
515 .INDENT 7.0
516 .TP
517 \fBRULE:\fP\fIexp\fP
518 The local name will be formulated from \fIexp\fP\&.
519 .sp
520 The format for \fIexp\fP is \fB[\fP\fIn\fP\fB:\fP\fIstring\fP\fB](\fP\fIregexp\fP\fB)s/\fP\fIpattern\fP\fB/\fP\fIreplacement\fP\fB/g\fP\&.
521 The integer \fIn\fP indicates how many components the target
522 principal should have. If this matches, then a string will be
523 formed from \fIstring\fP, substituting the realm of the principal
524 for \fB$0\fP and the \fIn\fP\(aqth component of the principal for
525 \fB$n\fP (e.g., if the principal was \fBjohndoe/admin\fP then
526 \fB[2:$2$1foo]\fP would result in the string
527 \fBadminjohndoefoo\fP). If this string matches \fIregexp\fP, then
528 the \fBs//[g]\fP substitution command will be run over the
529 string. The optional \fBg\fP will cause the substitution to be
530 global over the \fIstring\fP, instead of replacing only the first
531 match in the \fIstring\fP\&.
532 .TP
533 \fBDEFAULT\fP
534 The principal name will be used as the local user name. If
535 the principal has more than one component or is not in the
536 default realm, this rule is not applicable and the conversion
537 will fail.
538 .UNINDENT
539 .sp
540 For example:
541 .INDENT 7.0
542 .INDENT 3.5
543 .sp
544 .nf
545 .ft C
546 [realms]
547 ATHENA.MIT.EDU = {
548 auth_to_local = RULE:[2:$1](johndoe)s/^.*$/guest/
549 auth_to_local = RULE:[2:$1;$2](^.*;admin$)s/;admin$//
550 auth_to_local = RULE:[2:$2](^.*;root)s/^.*$/root/
551 auth_to_local = DEFAULT
552 }
553 .ft P
554 .fi
555 .UNINDENT
556 .UNINDENT
557 .sp
558 would result in any principal without \fBroot\fP or \fBadmin\fP as the
559 second component to be translated with the default rule. A
560 principal with a second component of \fBadmin\fP will become its
561 first component. \fBroot\fP will be used as the local name for any
562 principal with a second component of \fBroot\fP\&. The exception to
563 these two rules are any principals \fBjohndoe/*\fP, which will
564 always get the local name \fBguest\fP\&.
565 .TP
566 \fBauth_to_local_names\fP
567 This subsection allows you to set explicit mappings from principal
568 names to local user names. The tag is the mapping name, and the
569 value is the corresponding local user name.
570 .TP
571 \fBdefault_domain\fP
572 This tag specifies the domain used to expand hostnames when
573 translating Kerberos 4 service principals to Kerberos 5 principals
574 (for example, when converting \fBrcmd.hostname\fP to
575 \fBhost/hostname.domain\fP).
576 .TP
577 \fBdisable_encrypted_timestamp\fP
578 If this flag is true, the client will not perform encrypted
579 timestamp preauthentication if requested by the KDC. Setting this
580 flag can help to prevent dictionary attacks by active attackers,
581 if the realm\(aqs KDCs support SPAKE preauthentication or if initial
582 authentication always uses another mechanism or always uses FAST.
583 This flag persists across client referrals during initial
584 authentication. This flag does not prevent the KDC from offering
585 encrypted timestamp. New in release 1.17.
586 .TP
587 \fBhttp_anchors\fP
588 When KDCs and kpasswd servers are accessed through HTTPS proxies, this tag
589 can be used to specify the location of the CA certificate which should be
590 trusted to issue the certificate for a proxy server. If left unspecified,
591 the system\-wide default set of CA certificates is used.
592 .sp
593 The syntax for values is similar to that of values for the
594 \fBpkinit_anchors\fP tag:
595 .sp
596 \fBFILE:\fP \fIfilename\fP
597 .sp
598 \fIfilename\fP is assumed to be the name of an OpenSSL\-style ca\-bundle file.
599 .sp
600 \fBDIR:\fP \fIdirname\fP
601 .sp
602 \fIdirname\fP is assumed to be an directory which contains CA certificates.
603 All files in the directory will be examined; if they contain certificates
604 (in PEM format), they will be used.
605 .sp
606 \fBENV:\fP \fIenvvar\fP
607 .sp
608 \fIenvvar\fP specifies the name of an environment variable which has been set
609 to a value conforming to one of the previous values. For example,
610 \fBENV:X509_PROXY_CA\fP, where environment variable \fBX509_PROXY_CA\fP has
611 been set to \fBFILE:/tmp/my_proxy.pem\fP\&.
612 .TP
613 \fBkdc\fP
614 The name or address of a host running a KDC for that realm. An
615 optional port number, separated from the hostname by a colon, may
616 be included. If the name or address contains colons (for example,
617 if it is an IPv6 address), enclose it in square brackets to
618 distinguish the colon from a port separator. For your computer to
619 be able to communicate with the KDC for each realm, this tag must
620 be given a value in each realm subsection in the configuration
621 file, or there must be DNS SRV records specifying the KDCs.
622 .TP
623 \fBkpasswd_server\fP
624 Points to the server where all the password changes are performed.
625 If there is no such entry, DNS will be queried (unless forbidden
626 by \fBdns_lookup_kdc\fP). Finally, port 464 on the \fBadmin_server\fP
627 host will be tried.
628 .TP
629 \fBmaster_kdc\fP
630 The name for \fBprimary_kdc\fP prior to release 1.19. Its value is
631 used as a fallback if \fBprimary_kdc\fP is not specified.
632 .TP
633 \fBprimary_kdc\fP
634 Identifies the primary KDC(s). Currently, this tag is used in only
635 one case: If an attempt to get credentials fails because of an
636 invalid password, the client software will attempt to contact the
637 primary KDC, in case the user\(aqs password has just been changed, and
638 the updated database has not been propagated to the replica
639 servers yet. New in release 1.19.
640 .TP
641 \fBv4_instance_convert\fP
642 This subsection allows the administrator to configure exceptions
643 to the \fBdefault_domain\fP mapping rule. It contains V4 instances
644 (the tag name) which should be translated to some specific
645 hostname (the tag value) as the second component in a Kerberos V5
646 principal name.
647 .TP
648 \fBv4_realm\fP
649 This relation is used by the krb524 library routines when
650 converting a V5 principal name to a V4 principal name. It is used
651 when the V4 realm name and the V5 realm name are not the same, but
652 still share the same principal names and passwords. The tag value
653 is the Kerberos V4 realm name.
654 .UNINDENT
655 .SS [domain_realm]
656 .sp
657 The [domain_realm] section provides a translation from hostnames to
658 Kerberos realms. Each tag is a domain name, providing the mapping for
659 that domain and all subdomains. If the tag begins with a period
660 (\fB\&.\fP) then it applies only to subdomains. The Kerberos realm may be
661 identified either in the \fI\%realms\fP section or using DNS SRV records.
662 Tag names should be in lower case. For example:
663 .INDENT 0.0
664 .INDENT 3.5
665 .sp
666 .nf
667 .ft C
668 [domain_realm]
669 crash.mit.edu = TEST.ATHENA.MIT.EDU
670 .dev.mit.edu = TEST.ATHENA.MIT.EDU
671 mit.edu = ATHENA.MIT.EDU
672 .ft P
673 .fi
674 .UNINDENT
675 .UNINDENT
676 .sp
677 maps the host with the name \fBcrash.mit.edu\fP into the
678 \fBTEST.ATHENA.MIT.EDU\fP realm. The second entry maps all hosts under the
679 domain \fBdev.mit.edu\fP into the \fBTEST.ATHENA.MIT.EDU\fP realm, but not
680 the host with the name \fBdev.mit.edu\fP\&. That host is matched
681 by the third entry, which maps the host \fBmit.edu\fP and all hosts
682 under the domain \fBmit.edu\fP that do not match a preceding rule
683 into the realm \fBATHENA.MIT.EDU\fP\&.
684 .sp
685 If no translation entry applies to a hostname used for a service
686 principal for a service ticket request, the library will try to get a
687 referral to the appropriate realm from the client realm\(aqs KDC. If
688 that does not succeed, the host\(aqs realm is considered to be the
689 hostname\(aqs domain portion converted to uppercase, unless the
690 \fBrealm_try_domains\fP setting in [libdefaults] causes a different
691 parent domain to be used.
692 .SS [capaths]
693 .sp
694 In order to perform direct (non\-hierarchical) cross\-realm
695 authentication, configuration is needed to determine the
696 authentication paths between realms.
697 .sp
698 A client will use this section to find the authentication path between
699 its realm and the realm of the server. The server will use this
700 section to verify the authentication path used by the client, by
701 checking the transited field of the received ticket.
702 .sp
703 There is a tag for each participating client realm, and each tag has
704 subtags for each of the server realms. The value of the subtags is an
705 intermediate realm which may participate in the cross\-realm
706 authentication. The subtags may be repeated if there is more then one
707 intermediate realm. A value of "." means that the two realms share
708 keys directly, and no intermediate realms should be allowed to
709 participate.
710 .sp
711 Only those entries which will be needed on the client or the server
712 need to be present. A client needs a tag for its local realm with
713 subtags for all the realms of servers it will need to authenticate to.
714 A server needs a tag for each realm of the clients it will serve, with
715 a subtag of the server realm.
716 .sp
717 For example, \fBANL.GOV\fP, \fBPNL.GOV\fP, and \fBNERSC.GOV\fP all wish to
718 use the \fBES.NET\fP realm as an intermediate realm. ANL has a sub
719 realm of \fBTEST.ANL.GOV\fP which will authenticate with \fBNERSC.GOV\fP
720 but not \fBPNL.GOV\fP\&. The [capaths] section for \fBANL.GOV\fP systems
721 would look like this:
722 .INDENT 0.0
723 .INDENT 3.5
724 .sp
725 .nf
726 .ft C
727 [capaths]
728 ANL.GOV = {
729 TEST.ANL.GOV = .
730 PNL.GOV = ES.NET
731 NERSC.GOV = ES.NET
732 ES.NET = .
733 }
734 TEST.ANL.GOV = {
735 ANL.GOV = .
736 }
737 PNL.GOV = {
738 ANL.GOV = ES.NET
739 }
740 NERSC.GOV = {
741 ANL.GOV = ES.NET
742 }
743 ES.NET = {
744 ANL.GOV = .
745 }
746 .ft P
747 .fi
748 .UNINDENT
749 .UNINDENT
750 .sp
751 The [capaths] section of the configuration file used on \fBNERSC.GOV\fP
752 systems would look like this:
753 .INDENT 0.0
754 .INDENT 3.5
755 .sp
756 .nf
757 .ft C
758 [capaths]
759 NERSC.GOV = {
760 ANL.GOV = ES.NET
761 TEST.ANL.GOV = ES.NET
762 TEST.ANL.GOV = ANL.GOV
763 PNL.GOV = ES.NET
764 ES.NET = .
765 }
766 ANL.GOV = {
767 NERSC.GOV = ES.NET
768 }
769 PNL.GOV = {
770 NERSC.GOV = ES.NET
771 }
772 ES.NET = {
773 NERSC.GOV = .
774 }
775 TEST.ANL.GOV = {
776 NERSC.GOV = ANL.GOV
777 NERSC.GOV = ES.NET
778 }
779 .ft P
780 .fi
781 .UNINDENT
782 .UNINDENT
783 .sp
784 When a subtag is used more than once within a tag, clients will use
785 the order of values to determine the path. The order of values is not
786 important to servers.
787 .SS [appdefaults]
788 .sp
789 Each tag in the [appdefaults] section names a Kerberos V5 application
790 or an option that is used by some Kerberos V5 application[s]. The
791 value of the tag defines the default behaviors for that application.
792 .sp
793 For example:
794 .INDENT 0.0
795 .INDENT 3.5
796 .sp
797 .nf
798 .ft C
799 [appdefaults]
800 telnet = {
801 ATHENA.MIT.EDU = {
802 option1 = false
803 }
804 }
805 telnet = {
806 option1 = true
807 option2 = true
808 }
809 ATHENA.MIT.EDU = {
810 option2 = false
811 }
812 option2 = true
813 .ft P
814 .fi
815 .UNINDENT
816 .UNINDENT
817 .sp
818 The above four ways of specifying the value of an option are shown in
819 order of decreasing precedence. In this example, if telnet is running
820 in the realm EXAMPLE.COM, it should, by default, have option1 and
821 option2 set to true. However, a telnet program in the realm
822 \fBATHENA.MIT.EDU\fP should have \fBoption1\fP set to false and
823 \fBoption2\fP set to true. Any other programs in ATHENA.MIT.EDU should
824 have \fBoption2\fP set to false by default. Any programs running in
825 other realms should have \fBoption2\fP set to true.
826 .sp
827 The list of specifiable options for each application may be found in
828 that application\(aqs man pages. The application defaults specified here
829 are overridden by those specified in the \fI\%realms\fP section.
830 .SS [plugins]
831 .INDENT 0.0
832 .INDENT 3.5
833 .INDENT 0.0
834 .IP \(bu 2
835 \fI\%pwqual\fP interface
836 .IP \(bu 2
837 \fI\%kadm5_hook\fP interface
838 .IP \(bu 2
839 \fI\%clpreauth\fP and \fI\%kdcpreauth\fP interfaces
840 .UNINDENT
841 .UNINDENT
842 .UNINDENT
843 .sp
844 Tags in the [plugins] section can be used to register dynamic plugin
845 modules and to turn modules on and off. Not every krb5 pluggable
846 interface uses the [plugins] section; the ones that do are documented
847 here.
848 .sp
849 New in release 1.9.
850 .sp
851 Each pluggable interface corresponds to a subsection of [plugins].
852 All subsections support the same tags:
853 .INDENT 0.0
854 .TP
855 \fBdisable\fP
856 This tag may have multiple values. If there are values for this
857 tag, then the named modules will be disabled for the pluggable
858 interface.
859 .TP
860 \fBenable_only\fP
861 This tag may have multiple values. If there are values for this
862 tag, then only the named modules will be enabled for the pluggable
863 interface.
864 .TP
865 \fBmodule\fP
866 This tag may have multiple values. Each value is a string of the
867 form \fBmodulename:pathname\fP, which causes the shared object
868 located at \fIpathname\fP to be registered as a dynamic module named
869 \fImodulename\fP for the pluggable interface. If \fIpathname\fP is not an
870 absolute path, it will be treated as relative to the
871 \fBplugin_base_dir\fP value from \fI\%[libdefaults]\fP\&.
872 .UNINDENT
873 .sp
874 For pluggable interfaces where module order matters, modules
875 registered with a \fBmodule\fP tag normally come first, in the order
876 they are registered, followed by built\-in modules in the order they
877 are documented below. If \fBenable_only\fP tags are used, then the
878 order of those tags overrides the normal module order.
879 .sp
880 The following subsections are currently supported within the [plugins]
881 section:
882 .SS ccselect interface
883 .sp
884 The ccselect subsection controls modules for credential cache
885 selection within a cache collection. In addition to any registered
886 dynamic modules, the following built\-in modules exist (and may be
887 disabled with the disable tag):
888 .INDENT 0.0
889 .TP
890 \fBk5identity\fP
891 Uses a .k5identity file in the user\(aqs home directory to select a
892 client principal
893 .TP
894 \fBrealm\fP
895 Uses the service realm to guess an appropriate cache from the
896 collection
897 .TP
898 \fBhostname\fP
899 If the service principal is host\-based, uses the service hostname
900 to guess an appropriate cache from the collection
901 .UNINDENT
902 .SS pwqual interface
903 .sp
904 The pwqual subsection controls modules for the password quality
905 interface, which is used to reject weak passwords when passwords are
906 changed. The following built\-in modules exist for this interface:
907 .INDENT 0.0
908 .TP
909 \fBdict\fP
910 Checks against the realm dictionary file
911 .TP
912 \fBempty\fP
913 Rejects empty passwords
914 .TP
915 \fBhesiod\fP
916 Checks against user information stored in Hesiod (only if Kerberos
917 was built with Hesiod support)
918 .TP
919 \fBprinc\fP
920 Checks against components of the principal name
921 .UNINDENT
922 .SS kadm5_hook interface
923 .sp
924 The kadm5_hook interface provides plugins with information on
925 principal creation, modification, password changes and deletion. This
926 interface can be used to write a plugin to synchronize MIT Kerberos
927 with another database such as Active Directory. No plugins are built
928 in for this interface.
929 .SS kadm5_auth interface
930 .sp
931 The kadm5_auth section (introduced in release 1.16) controls modules
932 for the kadmin authorization interface, which determines whether a
933 client principal is allowed to perform a kadmin operation. The
934 following built\-in modules exist for this interface:
935 .INDENT 0.0
936 .TP
937 \fBacl\fP
938 This module reads the kadm5.acl(5) file, and authorizes
939 operations which are allowed according to the rules in the file.
940 .TP
941 \fBself\fP
942 This module authorizes self\-service operations including password
943 changes, creation of new random keys, fetching the client\(aqs
944 principal record or string attributes, and fetching the policy
945 record associated with the client principal.
946 .UNINDENT
947 .SS clpreauth and kdcpreauth interfaces
948 .sp
949 The clpreauth and kdcpreauth interfaces allow plugin modules to
950 provide client and KDC preauthentication mechanisms. The following
951 built\-in modules exist for these interfaces:
952 .INDENT 0.0
953 .TP
954 \fBpkinit\fP
955 This module implements the PKINIT preauthentication mechanism.
956 .TP
957 \fBencrypted_challenge\fP
958 This module implements the encrypted challenge FAST factor.
959 .TP
960 \fBencrypted_timestamp\fP
961 This module implements the encrypted timestamp mechanism.
962 .UNINDENT
963 .SS hostrealm interface
964 .sp
965 The hostrealm section (introduced in release 1.12) controls modules
966 for the host\-to\-realm interface, which affects the local mapping of
967 hostnames to realm names and the choice of default realm. The following
968 built\-in modules exist for this interface:
969 .INDENT 0.0
970 .TP
971 \fBprofile\fP
972 This module consults the [domain_realm] section of the profile for
973 authoritative host\-to\-realm mappings, and the \fBdefault_realm\fP
974 variable for the default realm.
975 .TP
976 \fBdns\fP
977 This module looks for DNS records for fallback host\-to\-realm
978 mappings and the default realm. It only operates if the
979 \fBdns_lookup_realm\fP variable is set to true.
980 .TP
981 \fBdomain\fP
982 This module applies heuristics for fallback host\-to\-realm
983 mappings. It implements the \fBrealm_try_domains\fP variable, and
984 uses the uppercased parent domain of the hostname if that does not
985 produce a result.
986 .UNINDENT
987 .SS localauth interface
988 .sp
989 The localauth section (introduced in release 1.12) controls modules
990 for the local authorization interface, which affects the relationship
991 between Kerberos principals and local system accounts. The following
992 built\-in modules exist for this interface:
993 .INDENT 0.0
994 .TP
995 \fBdefault\fP
996 This module implements the \fBDEFAULT\fP type for \fBauth_to_local\fP
997 values.
998 .TP
999 \fBrule\fP
1000 This module implements the \fBRULE\fP type for \fBauth_to_local\fP
1001 values.
1002 .TP
1003 \fBnames\fP
1004 This module looks for an \fBauth_to_local_names\fP mapping for the
1005 principal name.
1006 .TP
1007 \fBauth_to_local\fP
1008 This module processes \fBauth_to_local\fP values in the default
1009 realm\(aqs section, and applies the default method if no
1010 \fBauth_to_local\fP values exist.
1011 .TP
1012 \fBk5login\fP
1013 This module authorizes a principal to a local account according to
1014 the account\(aqs \&.k5login(5) file.
1015 .TP
1016 \fBan2ln\fP
1017 This module authorizes a principal to a local account if the
1018 principal name maps to the local account name.
1019 .UNINDENT
1020 .SS certauth interface
1021 .sp
1022 The certauth section (introduced in release 1.16) controls modules for
1023 the certificate authorization interface, which determines whether a
1024 certificate is allowed to preauthenticate a user via PKINIT. The
1025 following built\-in modules exist for this interface:
1026 .INDENT 0.0
1027 .TP
1028 \fBpkinit_san\fP
1029 This module authorizes the certificate if it contains a PKINIT
1030 Subject Alternative Name for the requested client principal, or a
1031 Microsoft UPN SAN matching the principal if \fBpkinit_allow_upn\fP
1032 is set to true for the realm.
1033 .TP
1034 \fBpkinit_eku\fP
1035 This module rejects the certificate if it does not contain an
1036 Extended Key Usage attribute consistent with the
1037 \fBpkinit_eku_checking\fP value for the realm.
1038 .TP
1039 \fBdbmatch\fP
1040 This module authorizes or rejects the certificate according to
1041 whether it matches the \fBpkinit_cert_match\fP string attribute on
1042 the client principal, if that attribute is present.
1043 .UNINDENT
1044 .SH PKINIT OPTIONS
1045 .sp
1046 \fBNOTE:\fP
1047 .INDENT 0.0
1048 .INDENT 3.5
1049 The following are PKINIT\-specific options. These values may
1050 be specified in [libdefaults] as global defaults, or within
1051 a realm\-specific subsection of [libdefaults], or may be
1052 specified as realm\-specific values in the [realms] section.
1053 A realm\-specific value overrides, not adds to, a generic
1054 [libdefaults] specification. The search order is:
1055 .UNINDENT
1056 .UNINDENT
1057 .INDENT 0.0
1058 .IP 1. 3
1059 realm\-specific subsection of [libdefaults]:
1060 .INDENT 3.0
1061 .INDENT 3.5
1062 .sp
1063 .nf
1064 .ft C
1065 [libdefaults]
1066 EXAMPLE.COM = {
1067 pkinit_anchors = FILE:/usr/local/example.com.crt
1068 }
1069 .ft P
1070 .fi
1071 .UNINDENT
1072 .UNINDENT
1073 .IP 2. 3
1074 realm\-specific value in the [realms] section:
1075 .INDENT 3.0
1076 .INDENT 3.5
1077 .sp
1078 .nf
1079 .ft C
1080 [realms]
1081 OTHERREALM.ORG = {
1082 pkinit_anchors = FILE:/usr/local/otherrealm.org.crt
1083 }
1084 .ft P
1085 .fi
1086 .UNINDENT
1087 .UNINDENT
1088 .IP 3. 3
1089 generic value in the [libdefaults] section:
1090 .INDENT 3.0
1091 .INDENT 3.5
1092 .sp
1093 .nf
1094 .ft C
1095 [libdefaults]
1096 pkinit_anchors = DIR:/usr/local/generic_trusted_cas/
1097 .ft P
1098 .fi
1099 .UNINDENT
1100 .UNINDENT
1101 .UNINDENT
1102 .SS Specifying PKINIT identity information
1103 .sp
1104 The syntax for specifying Public Key identity, trust, and revocation
1105 information for PKINIT is as follows:
1106 .INDENT 0.0
1107 .TP
1108 \fBFILE:\fP\fIfilename\fP[\fB,\fP\fIkeyfilename\fP]
1109 This option has context\-specific behavior.
1110 .sp
1111 In \fBpkinit_identity\fP or \fBpkinit_identities\fP, \fIfilename\fP
1112 specifies the name of a PEM\-format file containing the user\(aqs
1113 certificate. If \fIkeyfilename\fP is not specified, the user\(aqs
1114 private key is expected to be in \fIfilename\fP as well. Otherwise,
1115 \fIkeyfilename\fP is the name of the file containing the private key.
1116 .sp
1117 In \fBpkinit_anchors\fP or \fBpkinit_pool\fP, \fIfilename\fP is assumed to
1118 be the name of an OpenSSL\-style ca\-bundle file.
1119 .TP
1120 \fBDIR:\fP\fIdirname\fP
1121 This option has context\-specific behavior.
1122 .sp
1123 In \fBpkinit_identity\fP or \fBpkinit_identities\fP, \fIdirname\fP
1124 specifies a directory with files named \fB*.crt\fP and \fB*.key\fP
1125 where the first part of the file name is the same for matching
1126 pairs of certificate and private key files. When a file with a
1127 name ending with \fB\&.crt\fP is found, a matching file ending with
1128 \fB\&.key\fP is assumed to contain the private key. If no such file
1129 is found, then the certificate in the \fB\&.crt\fP is not used.
1130 .sp
1131 In \fBpkinit_anchors\fP or \fBpkinit_pool\fP, \fIdirname\fP is assumed to
1132 be an OpenSSL\-style hashed CA directory where each CA cert is
1133 stored in a file named \fBhash\-of\-ca\-cert.#\fP\&. This infrastructure
1134 is encouraged, but all files in the directory will be examined and
1135 if they contain certificates (in PEM format), they will be used.
1136 .sp
1137 In \fBpkinit_revoke\fP, \fIdirname\fP is assumed to be an OpenSSL\-style
1138 hashed CA directory where each revocation list is stored in a file
1139 named \fBhash\-of\-ca\-cert.r#\fP\&. This infrastructure is encouraged,
1140 but all files in the directory will be examined and if they
1141 contain a revocation list (in PEM format), they will be used.
1142 .TP
1143 \fBPKCS12:\fP\fIfilename\fP
1144 \fIfilename\fP is the name of a PKCS #12 format file, containing the
1145 user\(aqs certificate and private key.
1146 .TP
1147 \fBPKCS11:\fP[\fBmodule_name=\fP]\fImodname\fP[\fB:slotid=\fP\fIslot\-id\fP][\fB:token=\fP\fItoken\-label\fP][\fB:certid=\fP\fIcert\-id\fP][\fB:certlabel=\fP\fIcert\-label\fP]
1148 All keyword/values are optional. \fImodname\fP specifies the location
1149 of a library implementing PKCS #11. If a value is encountered
1150 with no keyword, it is assumed to be the \fImodname\fP\&. If no
1151 module\-name is specified, the default is \fBopensc\-pkcs11.so\fP\&.
1152 \fBslotid=\fP and/or \fBtoken=\fP may be specified to force the use of
1153 a particular smard card reader or token if there is more than one
1154 available. \fBcertid=\fP and/or \fBcertlabel=\fP may be specified to
1155 force the selection of a particular certificate on the device.
1156 See the \fBpkinit_cert_match\fP configuration option for more ways
1157 to select a particular certificate to use for PKINIT.
1158 .TP
1159 \fBENV:\fP\fIenvvar\fP
1160 \fIenvvar\fP specifies the name of an environment variable which has
1161 been set to a value conforming to one of the previous values. For
1162 example, \fBENV:X509_PROXY\fP, where environment variable
1163 \fBX509_PROXY\fP has been set to \fBFILE:/tmp/my_proxy.pem\fP\&.
1164 .UNINDENT
1165 .SS PKINIT krb5.conf options
1166 .INDENT 0.0
1167 .TP
1168 \fBpkinit_anchors\fP
1169 Specifies the location of trusted anchor (root) certificates which
1170 the client trusts to sign KDC certificates. This option may be
1171 specified multiple times. These values from the config file are
1172 not used if the user specifies X509_anchors on the command line.
1173 .TP
1174 \fBpkinit_cert_match\fP
1175 Specifies matching rules that the client certificate must match
1176 before it is used to attempt PKINIT authentication. If a user has
1177 multiple certificates available (on a smart card, or via other
1178 media), there must be exactly one certificate chosen before
1179 attempting PKINIT authentication. This option may be specified
1180 multiple times. All the available certificates are checked
1181 against each rule in order until there is a match of exactly one
1182 certificate.
1183 .sp
1184 The Subject and Issuer comparison strings are the \fI\%RFC 2253\fP
1185 string representations from the certificate Subject DN and Issuer
1186 DN values.
1187 .sp
1188 The syntax of the matching rules is:
1189 .INDENT 7.0
1190 .INDENT 3.5
1191 [\fIrelation\-operator\fP]\fIcomponent\-rule\fP ...
1192 .UNINDENT
1193 .UNINDENT
1194 .sp
1195 where:
1196 .INDENT 7.0
1197 .TP
1198 .B \fIrelation\-operator\fP
1199 can be either \fB&&\fP, meaning all component rules must match,
1200 or \fB||\fP, meaning only one component rule must match. The
1201 default is \fB&&\fP\&.
1202 .TP
1203 .B \fIcomponent\-rule\fP
1204 can be one of the following. Note that there is no
1205 punctuation or whitespace between component rules.
1206 .INDENT 7.0
1207 .INDENT 3.5
1208 .nf
1209 \fB<SUBJECT>\fP\fIregular\-expression\fP
1210 \fB<ISSUER>\fP\fIregular\-expression\fP
1211 \fB<SAN>\fP\fIregular\-expression\fP
1212 \fB<EKU>\fP\fIextended\-key\-usage\-list\fP
1213 \fB<KU>\fP\fIkey\-usage\-list\fP
1214 .fi
1215 .sp
1216 .UNINDENT
1217 .UNINDENT
1218 .sp
1219 \fIextended\-key\-usage\-list\fP is a comma\-separated list of
1220 required Extended Key Usage values. All values in the list
1221 must be present in the certificate. Extended Key Usage values
1222 can be:
1223 .INDENT 7.0
1224 .IP \(bu 2
1225 pkinit
1226 .IP \(bu 2
1227 msScLogin
1228 .IP \(bu 2
1229 clientAuth
1230 .IP \(bu 2
1231 emailProtection
1232 .UNINDENT
1233 .sp
1234 \fIkey\-usage\-list\fP is a comma\-separated list of required Key
1235 Usage values. All values in the list must be present in the
1236 certificate. Key Usage values can be:
1237 .INDENT 7.0
1238 .IP \(bu 2
1239 digitalSignature
1240 .IP \(bu 2
1241 keyEncipherment
1242 .UNINDENT
1243 .UNINDENT
1244 .sp
1245 Examples:
1246 .INDENT 7.0
1247 .INDENT 3.5
1248 .sp
1249 .nf
1250 .ft C
1251 pkinit_cert_match = ||<SUBJECT>.*DoE.*<SAN>.*@EXAMPLE.COM
1252 pkinit_cert_match = &&<EKU>msScLogin,clientAuth<ISSUER>.*DoE.*
1253 pkinit_cert_match = <EKU>msScLogin,clientAuth<KU>digitalSignature
1254 .ft P
1255 .fi
1256 .UNINDENT
1257 .UNINDENT
1258 .TP
1259 \fBpkinit_eku_checking\fP
1260 This option specifies what Extended Key Usage value the KDC
1261 certificate presented to the client must contain. (Note that if
1262 the KDC certificate has the pkinit SubjectAlternativeName encoded
1263 as the Kerberos TGS name, EKU checking is not necessary since the
1264 issuing CA has certified this as a KDC certificate.) The values
1265 recognized in the krb5.conf file are:
1266 .INDENT 7.0
1267 .TP
1268 \fBkpKDC\fP
1269 This is the default value and specifies that the KDC must have
1270 the id\-pkinit\-KPKdc EKU as defined in \fI\%RFC 4556\fP\&.
1271 .TP
1272 \fBkpServerAuth\fP
1273 If \fBkpServerAuth\fP is specified, a KDC certificate with the
1274 id\-kp\-serverAuth EKU will be accepted. This key usage value
1275 is used in most commercially issued server certificates.
1276 .TP
1277 \fBnone\fP
1278 If \fBnone\fP is specified, then the KDC certificate will not be
1279 checked to verify it has an acceptable EKU. The use of this
1280 option is not recommended.
1281 .UNINDENT
1282 .TP
1283 \fBpkinit_dh_min_bits\fP
1284 Specifies the size of the Diffie\-Hellman key the client will
1285 attempt to use. The acceptable values are 1024, 2048, and 4096.
1286 The default is 2048.
1287 .TP
1288 \fBpkinit_identities\fP
1289 Specifies the location(s) to be used to find the user\(aqs X.509
1290 identity information. If this option is specified multiple times,
1291 each value is attempted in order until certificates are found.
1292 Note that these values are not used if the user specifies
1293 \fBX509_user_identity\fP on the command line.
1294 .TP
1295 \fBpkinit_kdc_hostname\fP
1296 The presence of this option indicates that the client is willing
1297 to accept a KDC certificate with a dNSName SAN (Subject
1298 Alternative Name) rather than requiring the id\-pkinit\-san as
1299 defined in \fI\%RFC 4556\fP\&. This option may be specified multiple
1300 times. Its value should contain the acceptable hostname for the
1301 KDC (as contained in its certificate).
1302 .TP
1303 \fBpkinit_pool\fP
1304 Specifies the location of intermediate certificates which may be
1305 used by the client to complete the trust chain between a KDC
1306 certificate and a trusted anchor. This option may be specified
1307 multiple times.
1308 .TP
1309 \fBpkinit_require_crl_checking\fP
1310 The default certificate verification process will always check the
1311 available revocation information to see if a certificate has been
1312 revoked. If a match is found for the certificate in a CRL,
1313 verification fails. If the certificate being verified is not
1314 listed in a CRL, or there is no CRL present for its issuing CA,
1315 and \fBpkinit_require_crl_checking\fP is false, then verification
1316 succeeds.
1317 .sp
1318 However, if \fBpkinit_require_crl_checking\fP is true and there is
1319 no CRL information available for the issuing CA, then verification
1320 fails.
1321 .sp
1322 \fBpkinit_require_crl_checking\fP should be set to true if the
1323 policy is such that up\-to\-date CRLs must be present for every CA.
1324 .TP
1325 \fBpkinit_revoke\fP
1326 Specifies the location of Certificate Revocation List (CRL)
1327 information to be used by the client when verifying the validity
1328 of the KDC certificate presented. This option may be specified
1329 multiple times.
1330 .UNINDENT
1331 .SH PARAMETER EXPANSION
1332 .sp
1333 Starting with release 1.11, several variables, such as
1334 \fBdefault_keytab_name\fP, allow parameters to be expanded.
1335 Valid parameters are:
1336 .INDENT 0.0
1337 .INDENT 3.5
1338 .TS
1339 center;
1340 |l|l|.
1341 _
1342 T{
1343 %{TEMP}
1344 T} T{
1345 Temporary directory
1346 T}
1347 _
1348 T{
1349 %{uid}
1350 T} T{
1351 Unix real UID or Windows SID
1352 T}
1353 _
1354 T{
1355 %{euid}
1356 T} T{
1357 Unix effective user ID or Windows SID
1358 T}
1359 _
1360 T{
1361 %{USERID}
1362 T} T{
1363 Same as %{uid}
1364 T}
1365 _
1366 T{
1367 %{null}
1368 T} T{
1369 Empty string
1370 T}
1371 _
1372 T{
1373 %{LIBDIR}
1374 T} T{
1375 Installation library directory
1376 T}
1377 _
1378 T{
1379 %{BINDIR}
1380 T} T{
1381 Installation binary directory
1382 T}
1383 _
1384 T{
1385 %{SBINDIR}
1386 T} T{
1387 Installation admin binary directory
1388 T}
1389 _
1390 T{
1391 %{username}
1392 T} T{
1393 (Unix) Username of effective user ID
1394 T}
1395 _
1396 T{
1397 %{APPDATA}
1398 T} T{
1399 (Windows) Roaming application data for current user
1400 T}
1401 _
1402 T{
1403 %{COMMON_APPDATA}
1404 T} T{
1405 (Windows) Application data for all users
1406 T}
1407 _
1408 T{
1409 %{LOCAL_APPDATA}
1410 T} T{
1411 (Windows) Local application data for current user
1412 T}
1413 _
1414 T{
1415 %{SYSTEM}
1416 T} T{
1417 (Windows) Windows system folder
1418 T}
1419 _
1420 T{
1421 %{WINDOWS}
1422 T} T{
1423 (Windows) Windows folder
1424 T}
1425 _
1426 T{
1427 %{USERCONFIG}
1428 T} T{
1429 (Windows) Per\-user MIT krb5 config file directory
1430 T}
1431 _
1432 T{
1433 %{COMMONCONFIG}
1434 T} T{
1435 (Windows) Common MIT krb5 config file directory
1436 T}
1437 _
1438 .TE
1439 .UNINDENT
1440 .UNINDENT
1441 .SH SAMPLE KRB5.CONF FILE
1442 .sp
1443 Here is an example of a generic krb5.conf file:
1444 .INDENT 0.0
1445 .INDENT 3.5
1446 .sp
1447 .nf
1448 .ft C
1449 [libdefaults]
1450 default_realm = ATHENA.MIT.EDU
1451 dns_lookup_kdc = true
1452 dns_lookup_realm = false
1453
1454 [realms]
1455 ATHENA.MIT.EDU = {
1456 kdc = kerberos.mit.edu
1457 kdc = kerberos\-1.mit.edu
1458 kdc = kerberos\-2.mit.edu
1459 admin_server = kerberos.mit.edu
1460 primary_kdc = kerberos.mit.edu
1461 }
1462 EXAMPLE.COM = {
1463 kdc = kerberos.example.com
1464 kdc = kerberos\-1.example.com
1465 admin_server = kerberos.example.com
1466 }
1467
1468 [domain_realm]
1469 mit.edu = ATHENA.MIT.EDU
1470
1471 [capaths]
1472 ATHENA.MIT.EDU = {
1473 EXAMPLE.COM = .
1474 }
1475 EXAMPLE.COM = {
1476 ATHENA.MIT.EDU = .
1477 }
1478 .ft P
1479 .fi
1480 .UNINDENT
1481 .UNINDENT
1482 .SH FILES
1483 .sp
1484 \fB/etc/krb5.conf\fP
1485 .SH SEE ALSO
1486 .sp
1487 syslog(3)
1488 .SH AUTHOR
1489 MIT
1490 .SH COPYRIGHT
1491 1985-2022, MIT
1492 .\" Generated by docutils manpage writer.
1493 .