1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
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
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
<reference>
<title>SSSD manualsidor</title>
<refentry>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="include/upstream.xml" />
<refmeta>
<refentrytitle>sss-certmap</refentrytitle>
<manvolnum>5</manvolnum>
<refmiscinfo class="manual">Filformat och konventioner</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>sss-certmap</refname>
<refpurpose>SSSD:s certifikatmatchnings- och -mappningsregler</refpurpose>
</refnamediv>
<refsect1 id='description'>
<title>BESKRIVNING</title>
<para>
Manualsidan beskriver reglerna som kan användas av SSSD och andra
komponenter för att matcha X.509-certifikat och koppla dem till konton.
</para>
<para>
Varje regel har fyra komponenter, en <quote>prioritet</quote>, en
<quote>matchningsregel</quote>, en <quote>mappningsregel</quote> och en
<quote>domänlista</quote>. Alla komponenter är frivilliga. En saknad
<quote>prioritet</quote> kommer lägga till regeln med den lägsta
prioriteten. Standard-<quote>matchningsregeln</quote> kommer matcha
certifikat med digitalSignature-nyckelanvändning och
clientAuth-utökadnyckelanvändning. Om <quote>mappningsregeln</quote> är tom
kommer certifikaten sökas efter i attributet userCertificate som DER-kodade
binärer. Om inga domäner anges kommer endast den lokala domänen sökas.
</para>
<para>
För att tillåta utökningar eller helt annorluda regelstil kan
<quote>mapping</quote> och <quote>matching rules</quote> innehålla ett
prefix separerat med ett ”:” från huvuddelen av regeln. Prefixet får bara
innehålla versala ASCII-bokstäver och siffror. Om prefixet utelämnas kommer
standardtypen användas vilken är ”KRB5” för matchningsregler och ”LDAP” för
avbildningsregler.
</para>
<para>
Verktyget ”sssctl” tillhandahåller kommandot ”cert-eval-rule” för att
kontrollera om ett givet certifikat stämmer med en matchningsregel och hur
utdata från en avbildningsregel skulle se ut.
</para>
</refsect1>
<refsect1 id='components'>
<title>REGELKOMPONENTER</title>
<refsect2 id='priority'>
<title>PRIORITET</title>
<para>
Reglerna bearbetas i prioritetsordning där ”0” (noll) indikerar den högsta
prioriteten. Ju högre talet är desto lägre är prioriteten. Ett saknat
värde indikerar den lägsta prioriteten. Regelbearbetningen stoppas när en
regel som matchar hittas och inga ytterligare regler kontrolleras.
</para>
<para>
Internt behandlas prioriteten som teckenlösa 32-bitars heltal, att använda
ett prioritetsvärde större än 4294967295 kommer orsaka ett fel.
</para>
<para>
Om flera regler har samma prioritet och bara en av de relaterade
matchningsreglerna gäller kommer denna regel att väljas. Om det finns flera
regler med samma prioritet som matchar väljs en men vilken av den är
odefinierat. För att undvika detta beteende, använd antingen olika
prioriteter eller gör matchningsregeln mer specifik, t.ex. genom att använda
olika <ISSUER>-mönster.
</para>
</refsect2>
<refsect2 id='match'>
<title>MATCHNINGSREGEL</title>
<para>
Matchningsregeln används för att välja ett certifikat som
översättningsregeln skall tillämpas på. Det använder ett system liknande det
som används av alternativet <quote>pkinit_cert_match</quote> i MIT
Kerberos. Det består av ett nyckelord omgivet av ”<” och ”>” som
identifierar en specifik del av certifikatet och ett mönster som skall
finnas för att regeln skall matcha. Flera nyckelord/mönster-par kan antingen
sammanfogas med ”&&” (och) eller ”||” (eller).
</para>
<para>
Givet likheten med MIT Kerberos är typprefixet för denna regel ”KRB5”. Men
”KRB5” kommer även vara standardvärdet för <quote>matching rules</quote> så
att ”<SUBJEKT>.*,DC=MIN,DC=DOMÄN” och
”KRB5:<SUBJEKT>.*,DC=MIN,DC=DOMÄN” är likvärdiga.
</para>
<para>
De tillgängliga alternativen är: <variablelist>
<varlistentry>
<term><SUBJECT>reguljärt-uttryck</term>
<listitem>
<para>
Med denna kan en del eller hela certifikatets subject-namn matchas. För
matchningen används POSIX syntax för utökade reguljära uttryck, se regex(7)
för detaljer.
</para>
<para>
För matchningen konverteras subject-namnet lagrat i certifikatet i DER-kodad
ASN.1 till en sträng i enlighet med RFC 4514. Detta betyder att den mest
specifika namnkomponenten kommer först. Observera att inte alla möjliga
attributnamn täcks av RFC 4514. De inkluderade namnen är ”CN”, ”L”, ”ST”,
”O”, ”OU”, ”C”, ”STREET”, ”DC” och ”UID”. Andra attributnamn kan visas olika
på olika plattformar och av olika verktyg. För att undvika förvirring är det
bäst att dessa attributnamn inte används eller täcks av ett lämpligt
reguljärt uttryck.
</para>
<para>
Exempel: <SUBJECT>.*,DC=MIN,DC=DOMÄN
</para>
<para>
Observera att tecknen ”^.[$()|*+?{\” har en särskild betydelse i reguljära
uttryck och måste skyddas med hjälp av tecknet ”\” så att de kan matchas som
vanliga tecken.
</para>
<para>
Exempel: <SUBJECT>^CN=.* \(Admin\),DC=MIN,DC=DOMÄN$
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><ISSUER>reguljärt-uttryck</term>
<listitem>
<para>
Med denna kan en del eller hela certifikatets issuer-namn matchas. Alla
kommentarer för <SUBJECT> är tillämpliga här också.
</para>
<para>
Exempel: <ISSUER>^CN=Min-CA,DC=MIN,DC=DOMÄN$
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><KU>nyckelanvändning</term>
<listitem>
<para>
Detta alternativ kan användas för att specificera vilka
nyckelanvändningsvärden certifikatet skall ha. Följande värden kan användas
i en kommaseparerad lista:
<itemizedlist>
<listitem><para>digitalSignature</para></listitem>
<listitem><para>nonRepudiation</para></listitem>
<listitem><para>keyEncipherment</para></listitem>
<listitem><para>dataEncipherment</para></listitem>
<listitem><para>keyAgreement</para></listitem>
<listitem><para>keyCertSign</para></listitem>
<listitem><para>cRLSign</para></listitem>
<listitem><para>encipherOnly</para></listitem>
<listitem><para>decipherOnly</para></listitem>
</itemizedlist>
</para>
<para>
Ett numeriskt värde i intervallet hos ett 32-bitars teckenlöst heltal kan
användas också för att täcka speciella användningsfall.
</para>
<para>
Exempel: <KU>digitalSignature,keyEncipherment
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><EKU>utökad-nyckel-användning</term>
<listitem>
<para>
Detta alternativ kan användas för att specificera vilka
utökade-nyckel-användningsvärden certifikatet skall ha. Följande värden kan
användas i en kommaseparerad lista:
<itemizedlist>
<listitem><para>serverAuth</para></listitem>
<listitem><para>clientAuth</para></listitem>
<listitem><para>codeSigning</para></listitem>
<listitem><para>emailProtection</para></listitem>
<listitem><para>timeStamping</para></listitem>
<listitem><para>OCSPSigning</para></listitem>
<listitem><para>KPClientAuth</para></listitem>
<listitem><para>pkinit</para></listitem>
<listitem><para>msScLogin</para></listitem>
</itemizedlist>
</para>
<para>
Användningar av utökade nycklar som inte listas ovanför kan specificeras med
sina OID:er i punktad decimal notation.
</para>
<para>
Exempel: <EKU>clientAuth,1.3.6.1.5.2.3.4
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><SAN>reguljärt-uttryck</term>
<listitem>
<para>
För att vara kompatibel med användningen av MIT Kerberos kommer detta
alternativ matcha Kerberos-huvudmän i PKINIT eller AD NT-Principal SAN som
<SAN:Principal> gör.
</para>
<para>
Exempel: <SAN>.*@MITT\.RIKE
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><SAN:Principal>reguljärt-uttryck</term>
<listitem>
<para>
Matcha Kerberos-huvudmännen i PKINIT eller AD NT Principal SAN.
</para>
<para>
Exempel: <SAN:Principal>.*@MITT\.RIKE
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><SAN:ntPrincipalName>reguljärt-uttryck</term>
<listitem>
<para>
Matcha Kerberos-huvudmän från AD NT Principal SAN.
</para>
<para>
Exempel: <SAN:ntPrincipalName>.*@MITT.AD.RIKE
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><SAN:pkinit>reguljärt-uttryck</term>
<listitem>
<para>
Matcha Kerberos-huvudmän från PKINIT SAN.
</para>
<para>
Exempel: <SAN:ntPrincipalName>.*@MITT\.PKINIT\.RIKE
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><SAN:dotted-decimal-oid>reguljärt-uttryck</term>
<listitem>
<para>
Ta värdet från otherName SAN-komponenten som anges av OID:n i punktad
decimal notation, tolka den som en sträng och försök att matcha den mot det
reguljära uttrycket.
</para>
<para>
Exempel: <SAN:1.2.3.4>test
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><SAN:otherName>base64-sträng</term>
<listitem>
<para>
Gör en binär matchning med den base64-kodade klicken mot alla otherName
SAN-komponenter. Med detta alternativ är det möjligt att matcha mot
anpassade otherName-komponenter med speciella kodningar som inte kan
hanteras som strängar.
</para>
<para>
Exempel: <SAN:otherName>MTIz
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><SAN:rfc822Name>reguljärt-uttryck</term>
<listitem>
<para>
Matcha värdet på rfc822Name SAN.
</para>
<para>
Exempel: <SAN:rfc822Name>.*@epost\.domän
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><SAN:dNSName>reguljärt-uttryck</term>
<listitem>
<para>
Matcha värdet på dNSName SAN.
</para>
<para>
Exempel: <SAN:dNSName>.*\.min\.dns\.domän
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><SAN:x400Address>base64-sträng</term>
<listitem>
<para>
Matcha binärt värdet på x400Address SAN.
</para>
<para>
Exempel: <SAN:x400Address>MTIz
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><SAN:directoryName>reguljärt-uttryck</term>
<listitem>
<para>
Matcha värdet på directoryName SAN. Samma kommentarer som gavs för
<ISSUER> och <SUBJECT> gäller här också.
</para>
<para>
Exempel: <SAN:directoryName>.*,DC=com
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><SAN:ediPartyName>base64-sträng</term>
<listitem>
<para>
Matcha binärt värdet på ediPartyName SAN.
</para>
<para>
Exempel: <SAN:ediPartyName>MTIz
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><SAN:uniformResourceIdentifier>reguljärt-uttryck</term>
<listitem>
<para>
Matcha värdet på uniformResourceIdentifier SAN.
</para>
<para>
Exempel: <SAN:uniformResourceIdentifier>URN:.*
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><SAN:iPAddress>reguljärt-uttryck</term>
<listitem>
<para>
Matcha värdet på iPAddress SAN.
</para>
<para>
Exempel: <SAN:iPAddress>192\.168\..*
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><SAN:registeredID>reguljärt-uttryck</term>
<listitem>
<para>
Matcha värdet på registeredID SAN som punktad decimal sträng.
</para>
<para>
Exempel: <SAN:registeredID>1\.2\.3\..*
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect2>
<refsect2 id='map'>
<title>MAPPNINGSREGEL</title>
<para>
Mappningsregeln används för att koppla ett certifikat med ett eller flera
konton. Ett smartkort med certifikat och den matchande privata nyckeln kan
då användas för autentisering som ett av dessa konton.
</para>
<para>
För närvarande stödjer SSSD egentligen bara LDAP för att slå upp
användarinformation (undantaget är proxy-leverantören som inte är relevant
här. På grund av detta är mappningsregeln baserad på syntaxen för
LDAP-sökfilter med mallar för att lägga till certifikatinnehåll till
filtret. Det antas att filtret endast kommer innehålla de specifika data
som behövs för mappningen och att anroparen kommer bädda in dem i ett annat
filter för att göra den egentliga sökningen. Därför skall filtersträngen
börja och sluta med ”(” respektive ”)”.
</para>
<para>
I allmänhet rekommenderas det att använda attribut från certifikatet och
lägga till dem till speciella attribut till LDAP-användarobjektet.
T.ex. kan attributet ”altSecurityIdentities” i AD eller attributet
”ipaCertMapData” i IPA användas.
</para>
<para>
Detta bör hellre användas än att läsa användarspecifik data från
certifikatet som t.ex. en e-postadress och söka efter den i LDAP-servern.
Anledningen är att användarspecifika data i LDAP kan ändras av olika
anledningar vilket skulle göra sönder mappningen. Å andra sidan skulle det
vara svårt att bryta mappningen avsiktligt för en specifik användare.
</para>
<para>
Standardtypen för <quote>mapping rule</quote> är ”LDAP” vilket kan läggas
till som ett prefix till en regel som
t.ex. ”LDAP:(userCertificate;binary={cert!bin})”. Det finns en utökning som
heter ”LDAPU1” som erbjuder fler mallar för mer flexibilitet. För att
tillåta äldre versioner av detta bibliotek att ignorera utökningen måste
prefixet ”LDAPU1” användas när de nya mallarna i en <quote>mapping
rule</quote> används annars kommer den gamla versionen av biblioteket
misslyckas med ett tolkningsfel. Den nya mallarna beskrivs i avsnittet <xref
linkend="map_ldapu1"/>.
</para>
<para>
Mallarna för att lägga till certifikatdata till sökfiltret baseras på
formateringssträngar i Python-stil. De består av ett nyckelord i
krullparenteser med en valfri underkomponentspecificerare separerad av en
”.” eller ett valfritt konverterings-/formateringsalternativ separerat av
ett ”!”. Tillåtna värden är: <variablelist>
<varlistentry>
<term>{issuer_dn[!((ad|ad_x500)|ad_ldap|nss_x500|(nss|nss_ldap))]}</term>
<listitem>
<para>
Mallen kommer lägga till den fullständiga utgivar-DN:en konverterad till en
sträng enligt RFC 4514. Om X.500-ordning (mest specifik RDN kommer sist)
skall ett alternativ med prefixet ”_x500” användas.
</para>
<para>
Konverteringsalternativen som börjar med ”ad_” kommer använda attribut som
de används av AD, t.ex. ”S” istället för ”ST”.
</para>
<para>
Konverteringsalternativen som börjar med ”nss_” kommer använda attributnamn
som de används av NSS.
</para>
<para>
Standard för konverteringsalternativ är ”nss”, d.v.s. attributnamn enligt
NSS och LDAP/RFC 4514-ordning.
</para>
<para>
Exempel:
(ipacertmapdata=X509:<I>{issuer_dn!ad}<S>{subject_dn!ad})
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{subject_dn[!((ad|ad_x500)|ad_ldap|nss_x500|(nss|nss_ldap))]}</term>
<listitem>
<para>
Mallen kommer lägga till den fullständiga subjekt-DN:en konverterad till en
sträng enligt RFC 4514. Om X.500-ordning (mest specifik RDN kommer sist)
skall ett alternativ med prefixet ”_x500” användas.
</para>
<para>
Konverteringsalternativen som börjar med ”ad_” kommer använda attribut som
de används av AD, t.ex. ”S” istället för ”ST”.
</para>
<para>
Konverteringsalternativen som börjar med ”nss_” kommer använda attributnamn
som de används av NSS.
</para>
<para>
Standard för konverteringsalternativ är ”nss”, d.v.s. attributnamn enligt
NSS och LDAP/RFC 4514-ordning.
</para>
<para>
Exempel:
(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{cert[!(bin|base64)]}</term>
<listitem>
<para>
Denna mall kommer lägga till hela det DER-kodade certifikatet som än sträng
till sökfiltret. Beroende på konverteringsalternativen konverteras antingen
certifikatet till en hex-sekvens med styrtecken ”\xx” eller till base64.
Hex-strängen med styrtecken är standard och kan t.ex. användas med
LDAP-attributet ”userCertificate;binary”.
</para>
<para>
Exempel: (userCertificate;binary={cert!bin})
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{subject_principal[.short_name]}</term>
<listitem>
<para>
Denna mall kommer lägga till Kerberos-huvudmannen som hämtas antingen från
den SAN som används av pkinit eller den som används av AD. Komponenten
”short_name” representerar första delen av huvudmannen före tecknet ”@”.
</para>
<para>
Exempel:
(|(userPrincipal={subject_principal})(samAccountName={subject_principal.short_name}))
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{subject_pkinit_principal[.short_name]}</term>
<listitem>
<para>
Denna mall kommer lägga till Kerberos-huvudmannen som hämtas från den SAN
som används av pkinit. Komponenten ”short_name” representerar första delen
av huvudmannen före tecknet ”@”.
</para>
<para>
Exempel:
(|(userPrincipal={subject_pkinit_principal})(uid={subject_pkinit_principal.short_name}))
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{subject_nt_principal[.short_name]}</term>
<listitem>
<para>
Denna mall kommer lägga till Kerberos-huvudmannen som hämtas från den SAN
som används av AD. Komponenten ”short_name” representerar första delen av
huvudmannen före tecknet ”@”.
</para>
<para>
Exempel:
(|(userPrincipalName={subject_nt_principal})(samAccountName={subject_nt_principal.short_name}))
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{subject_rfc822_name[.short_name]}</term>
<listitem>
<para>
Denna mall kommer lägga till strängen som lagras i komponenten rfc822Name i
SAN:en, normalt en e-postadress. Komponenten ”short_name” representerar
första delen av huvudmannen före tecknet ”@”.
</para>
<para>
Exempel:
(|(mail={subject_rfc822_name})(uid={subject_rfc822_name.short_name}))
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{subject_dns_name[.short_name]}</term>
<listitem>
<para>
Denna mall kommer lägga till strängen som lagras i komponenten dNSName i
SAN:en, normalt ett fullständigt kvalificerat värdnamn. Komponenten
”short_name” representerar första delen av huvudmannen före det första
”.”-tecknet.
</para>
<para>
Exempel: (|(fqdn={subject_dns_name})(host={subject_dns_name.short_name}))
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{subject_uri}</term>
<listitem>
<para>
Denna mall kommer lägga till strängen som lagras i komponenten
uniformResourceIdentifier i SAN:en.
</para>
<para>
Exempel: (uri={subject_uri})
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{subject_ip_address}</term>
<listitem>
<para>
Denna mall kommer lägga till strängen som lagras i komponenten iPAddress i
SAN:en.
</para>
<para>
Exempel: (ip={subject_ip_address})
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{subject_x400_address}</term>
<listitem>
<para>
Denna mall kommer lägga till värdet som lagras i komponenten x400Address i
SAN:en som en hex-sekvens med styrtecken.
</para>
<para>
Exempel: (attr:binary={subject_x400_address})
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{subject_directory_name[!((ad|ad_x500)|ad_ldap|nss_x500|(nss|nss_ldap))]}</term>
<listitem>
<para>
Denna mall kommer lägga till DN-strängen för värdet som lagras i komponenten
directoryName i SAN:en.
</para>
<para>
Exempel: (orig_dn={subject_directory_name})
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{subject_ediparty_name}</term>
<listitem>
<para>
Denna mall kommer lägga till värdet som lagras i komponenten ediPartyName i
SAN:en som en hex-sekvens med styrtecken.
</para>
<para>
Exempel: (attr:binary={subject_ediparty_name})
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{subject_registered_id}</term>
<listitem>
<para>
Denna mall kommer lägga till OID:n som lagras i komponenten registeredID i
SAN:en som en punktad decimal sträng.
</para>
<para>
Exempel: (oid={subject_registered_id})
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<refsect3 id='map_ldapu1'>
<title>LDAPU1-utvidgningen</title>
<para>
Följande mall är tillgänglig när utökningen ”LDAPU1” används:
</para>
<para>
<variablelist>
<varlistentry>
<term>{serial_number[!(dec|hex[_ucr])]}</term>
<listitem>
<para>
Denna mall kommer lägga till certifikatets serienummer. Som standard kommer
det skrivas som ett hexadecimalt tal med gemena bokstäver.
</para>
<para>
Med formateringsalternativet ”!dec” kommer numret skrivas som en decimal
sträng. Den exadecimala utdatan kan skrivas med versala bokstäver
(”!hex_u”), med ett kolon som separator mellan hexadecimala byte (”!hex_c”)
eller med de hexadecimala byten i omvänd ordning
(”!hex_r”). Postfixbokstäverna kan kombineras så att t.ex. ”!hex_uc" kommer
producera en kolonseparerad hexadecimal sträng med versaler.
</para>
<para>
Exempel: LDAPU1:(serial={serial_number})
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{subject_key_id[!hex[_ucr]]}</term>
<listitem>
<para>
Denna mall kommer lägga till certifikatets subjektnyckel-id. Som standard
kommer det skrivas som ett hexadecimalt tal med gemena bokstäver.
</para>
<para>
Den hexadecimala utdatan kan skrivas med versala bokstäver (”!hex_u”), med
ett kolon som separator mellan hexadecimala byte (”!hex_c”) eller med de
hexadecimala byten i omvänd ordning (”!hex_r”). Postfixbokstäverna kan
kombineras så att t.ex. ”!hex_uc" kommer producera en kolonseparerad
hexadecimal sträng med versaler.
</para>
<para>
Exempel: LDAPU1:(ski={subject_key_id})
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{cert[!KONTROLLSUMMA[_ucr]]}</term>
<listitem>
<para>
Denna mall kommer läga till certifikatets hexadecimala kontrollsumma/hash
där KONTROLLSUMMA måste ersättas med namnet på en
kontrollsumme-/hash-funktion som stödjs av OpenSSL, t.ex. ”sha512”.
</para>
<para>
Den hexadecimala utdatan kan skrivas med versala bokstäver (”!sha512_u”),
med ett kolon som separator mellan hexadecimala byte (”!sha512_c”) eller med
de hexadecimala byten i omvänd ordning (”!sha512_r”). Postfixbokstäverna kan
kombineras så att t.ex. ”!sha512_uc" kommer producera en kolonseparerad
hexadecimal sträng med versaler.
</para>
<para>
Exempel: LDAPU1:(dgst={cert!sha256})
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{subject_dn_component[(.attr_name|[number]]}</term>
<listitem>
<para>
Denna mall kommer lägga till ett av komponentens attributvärden från
subjekt-DN, som standard värdet på den mest specifika komponenten.
</para>
<para>
En annan komponent kan antingen väljas via attributnamnet,
t.ex. {subject_dn_component.uid} eller via position,
t.ex. {subject_dn_component.[2]} där positiva tal börjar räknas från den
mest specifika komponenten och negativa tal börjar räkna från den minst
specifika komponenten Attributnamn och positionen kan kombineras,
t.ex. {subject_dn_component.uid[2]} vilket betyder att namnet på den andra
komponenten måste vara ”uid”.
</para>
<para>
Exempel: LDAPU1:(uid={subject_dn_component.uid})
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{issuer_dn_component[(.attr_namn|[tal]]}</term>
<listitem>
<para>
Denna mall kommer lägga till ett av komponentens attributvärden från
utgivar-DN, som standard värdet på den mest specifika komponenten.
</para>
<para>
Se ”subject_dn_component” för detaljer om attributnamn och
positionsangivelser.
</para>
<para>
Exempel:
LDAPU1:(domain={issuer_dn_component.[-2]}.{issuer_dn_component.dc[-1]})
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>{sid[.rid]}</term>
<listitem>
<para>
Denna mall kommer lägga till SID:n om den motsvarande utökningen
introducerad av Microsoft med OID 1.3.6.1.4.1.311.25.2 är tillgänglig. Med
selektorn ”.rid” kommer endast den sista komponenten, d.v.s RID:n, att
läggas till.
</para>
<para>
Exempel: LDAPU1:(objectsid={sid})
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect3>
</refsect2>
<refsect2 id='domains'>
<title>DOMÄNLISTA</title>
<para>
Om domänlistan inte är tom söks användare mappade till ett givet certifikat
inte bara i den lokala domänen utan i de listade domänerna också förutsatt
att de är kända av SSSD. Domäner som SSSD inte känner till kommer
ignoreras.
</para>
</refsect2>
</refsect1>
</refentry>
</reference>
|