'\" t
.\"     Title: sss-certmap
.\"    Author: Восходящий источник (\(Foапстрим\(Fc) SSSD \(em https://github.com/SSSD/sssd/
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\"      Date: 12/17/2024
.\"    Manual: Форматы файлов и рекомендации
.\"    Source: SSSD
.\"  Language: English
.\"
.TH "SSS\-CERTMAP" "5" "12/17/2024" "SSSD" "Форматы файлов и рекомендации"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
sss-certmap \- Правила установления соответствия и сопоставления сертификатов SSSD
.SH "ОПИСАНИЕ"
.PP
На этой справочной странице приводится описание правил, которые могут использоваться SSSD и другими компонентами для установления соответствия сертификатов X\&.509 и их сопоставления с учётными записями\&.
.PP
Каждое правило содержит четыре компонента,
\(lqприоритет\(rq,
\(lqправило установления соответствия\(rq,
\(lqправило сопоставления\(rq
и
\(lqсписок доменов\(rq\&. Все компоненты являются необязательными\&. Если отсутствует
\(lqприоритет\(rq, будет добавлено правило с самым низким приоритетом\&. Стандартное
\(lqправило установления соответствия\(rq
устанавливает соответствие сертификатов с использованием ключа digitalSignature и расширенным использованием ключа clientAuth\&. Если
\(lqправило сопоставления\(rq
не указано, в атрибуте userCertificate будет выполняться поиск сертификатов как двоичных файлов в кодировке DER\&. Если не указаны домены, поиск будет выполняться только в локальном домене\&.
.PP
Чтобы разрешить расширения или совершенно другой стиль правила,
\(lqсопоставления\(rq
и
\(lqправила соответствия\(rq
могут содержать префикс, отделенный символом \(Fo:\(Fc от основной части правила\&. Префикс может содержать только ASCII\-буквы верхнего регистра и цифры\&. Если префикс опущен, будет использоваться тип по умолчанию: \(FoKRB5\(Fc для правил соответствия и \(FoLDAP\(Fc для правил сопоставления\&.
.PP
Утилита \*(Aqsssctl\*(Aq предоставляет команду \*(Aqcert\-eval\-rule\*(Aq, предназначенную для проверки, соответствует ли указанный сертификат правилам соответствия, и определяет, как будет выглядеть вывод правила сопоставления\&.
.SH "КОМПОНЕНТЫ ПРАВИЛА"
.SS "ПРИОРИТЕТ"
.PP
Правила обрабатываются в порядке приоритета\&. Ноль \(Fo0\(Fc означает наивысший приоритет\&. Чем больше число, тем выше приоритет\&. Отсутствие значения означает самый низкий приоритет\&. Обработка правил останавливается при обнаружении соответствующего условиям правила, и никакие другие правила уже не проверяются\&.
.PP
На внутреннем уровне приоритет обрабатывается как беззнаковое 32\-битное целое\&. Использование значения приоритета, превышающего 4294967295, приведёт к ошибке\&.
.PP
Если несколько правил имеют одинаковый приоритет, но только одно соответствует связанным правилам установления соответствия, будет выбрано это правило\&. Если имеется несколько правил с одинаковым приоритетом, которые соответствуют, будет выбрано одно из них, но не будет определено, какое именно\&. Чтобы предотвратить такое неопределённое поведение, следует либо задать разный приоритет, либо сделать правила установления соответствия более чёткими (например, с помощью разных шаблонов <ISSUER>)\&.
.SS "ПРАВИЛО УСТАНОВЛЕНИЯ СООТВЕТСТВИЯ"
.PP
Правило установления соответствия используется для выбора сертификата, к которому следует применить правило сопоставления\&. В нём используется система, похожую на ту, которая используется в параметре
\(lqpkinit_cert_match\(rq
MIT Kerberos\&. Правило состоит из ключевого слова, расположенного между \(Fo<\(Fc и \(Fo>\(Fc, которое идентифицирует определённую часть сертификата, и шаблона, который должен быть найден для установления соответствия правила\&. Несколько пар \(Foключевое слово \(em шаблон\(Fc можно соединить с помощью логического оператора \(Fo&&\(Fc (и) или \(Fo||\(Fc (или)\&.
.PP
Учитывая сходство с MIT Kerberos, префиксом для этого правила является \(FoKRB5\(Fc\&. Но \(FoKRB5\(Fc также будет использоваться по умолчанию для
\(lqправил установления соответствия\(rq, поэтому \(Fo<SUBJECT>\&.*,DC=MY,DC=DOMAIN\(Fc и \(FoKRB5:<SUBJECT>\&.*,DC= MY,DC=DOMAIN\(Fc эквивалентны\&.
.PP
Доступные параметры:
.PP
<SUBJECT>регулярное_выражение
.RS 4
Это правило позволяет установить соответствие части или всего имени субъекта сертификата\&. Для установления соответствия используется синтаксис расширенных регулярных выражений POSIX\&. Подробное описание синтаксиса доступно на справочной странице regex(7)\&.
.sp
Для установления соответствия имени субъекта, которое хранится в сертификате в кодировке DER, ASN\&.1 преобразуется в строку в соответствии с RFC 4514\&. Это означает, что сначала идёт наиболее специфичный компонент имени\&. Обратите внимание, что в стандарте RFC 4514 перечислены не все возможные имени атрибутов\&. В него включены имена \(FoCN\(Fc, \(FoL\(Fc, \(FoST\(Fc, \(FoO\(Fc, \(FoOU\(Fc, \(FoC\(Fc, \(FoSTREET\(Fc, \(FoDC\(Fc и \(FoUID\(Fc\&. Другие имена атрибутов могут отображаться по\-разному на различных платформах и с помощью различных инструментов\&. Чтобы избежать путаницы, рекомендуется не использовать такие имена и не покрывать их соответствующим регулярным выражением\&.
.sp
Пример: <SUBJECT>\&.*,DC=MY,DC=DOMAIN
.sp
Обратите внимание, что символы \(Fo^\&.[$()|*+?{\e\(Fc имеют специальное значение в регулярных выражениях, поэтому их необходимо экранировать с помощью символа \(Fo\e\(Fc, чтобы программа воспринимала их как обычные символы\&.
.sp
Пример: <SUBJECT>^CN=\&.* \e(Admin\e),DC=MY,DC=DOMAIN$
.RE
.PP
<ISSUER>регулярное_выражение
.RS 4
Это правило позволяет установить соответствие части или всего имени издателя сертификата\&. Этого параметра касаются те же комментарии, которые были указаны для <SUBJECT>\&.
.sp
Пример: <ISSUER>^CN=My\-CA,DC=MY,DC=DOMAIN$
.RE
.PP
<KU>использование_ключа
.RS 4
С помощью этого параметра можно указать, какие значения использования ключа должен иметь сертификат\&. В разделённом запятыми списке можно указать следующие значения:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
digitalSignature
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
nonRepudiation
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
keyEncipherment
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
dataEncipherment
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
keyAgreement
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
keyCertSign
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
cRLSign
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
encipherOnly
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
decipherOnly
.RE
.sp
Для покрытия особых вариантов использования также можно использовать значение в диапазоне 32\-битного беззнакового целого\&.
.sp
Пример: <KU>digitalSignature,keyEncipherment
.RE
.PP
<EKU>расширенное_использование_ключа
.RS 4
С помощью этого параметра можно указать, какие значения расширенного использования ключа должен иметь сертификат\&. В разделённом запятыми списке можно указать следующие значения:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
serverAuth
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
clientAuth
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
codeSigning
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
emailProtection
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
timeStamping
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
OCSPSigning
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
KPClientAuth
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
pkinit
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
msScLogin
.RE
.sp
Расширенные использования ключа, которые не входят в представленный выше список, можно указать по их OID в десятичной записи\&.
.sp
Пример: <EKU>clientAuth,1\&.3\&.6\&.1\&.5\&.2\&.3\&.4
.RE
.PP
<SAN>регулярное_выражение
.RS 4
Для обеспечения совместимости с использованием MIT Kerberos этот параметр будет устанавливать соответствие участников Kerberos в SAN PKINIT или SAN AD NT Principal так, как это делает <SAN:Principal>\&.
.sp
Пример: <SAN>\&.*@MY\e\&.REALM
.RE
.PP
<SAN:Principal>регулярное_выражение
.RS 4
Установить соответствие участников Kerberos в SAN PKINIT или SAN AD NT Principal\&.
.sp
Пример: <SAN:Principal>\&.*@MY\e\&.REALM
.RE
.PP
<SAN:ntPrincipalName>регулярное_выражение
.RS 4
Установить соответствие участников Kerberos в SAN AD NT Principal\&.
.sp
Пример: <SAN:ntPrincipalName>\&.*@MY\&.AD\&.REALM
.RE
.PP
<SAN:pkinit>регулярное_выражение
.RS 4
Установить соответствие участников Kerberos в SAN PKINIT\&.
.sp
Пример: <SAN:ntPrincipalName>\&.*@MY\e\&.PKINIT\e\&.REALM
.RE
.PP
<SAN:dotted\-decimal\-oid>регулярное_выражение
.RS 4
Взять значение компонента otherName SAN, указанное с помощью OID в десятичном формате, интерпретировать его как строку и попытаться установить его соответствие регулярному выражению\&.
.sp
Пример: <SAN:1\&.2\&.3\&.4>test
.RE
.PP
<SAN:otherName>строка_base64
.RS 4
Выполнить установление двоичного соответствия blob\-объекта в кодировке base64 всем компонентам otherName SAN\&. С помощью этого параметра возможно устанавливать соответствие пользовательским компонентам otherName в особых кодировках, которые не могут обрабатываться как строки\&.
.sp
Пример: <SAN:otherName>MTIz
.RE
.PP
<SAN:rfc822Name>регулярное_выражение
.RS 4
Установить соответствие значения SAN rfc822Name\&.
.sp
Пример: <SAN:rfc822Name>\&.*@email\e\&.domain
.RE
.PP
<SAN:dNSName>регулярное_выражение
.RS 4
Установить соответствие значения SAN dNSName\&.
.sp
Пример: <SAN:dNSName>\&.*\e\&.my\e\&.dns\e\&.domain
.RE
.PP
<SAN:x400Address>строка_base64
.RS 4
Установить двоичное соответствие значения SAN x400Address\&.
.sp
Пример: <SAN:x400Address>MTIz
.RE
.PP
<SAN:directoryName>регулярное_выражение
.RS 4
Установить соответствие значения SAN directoryName\&. Этого параметра касаются те же комментарии, которые были указаны для <ISSUER> и <SUBJECT>\&.
.sp
Пример: <SAN:directoryName>\&.*,DC=com
.RE
.PP
<SAN:ediPartyName>строка_base64
.RS 4
Установить двоичное соответствие значения SAN ediPartyName\&.
.sp
Пример: <SAN:ediPartyName>MTIz
.RE
.PP
<SAN:uniformResourceIdentifier>регулярное_выражение
.RS 4
Установить соответствие значения SAN uniformResourceIdentifier\&.
.sp
Пример: <SAN:uniformResourceIdentifier>URN:\&.*
.RE
.PP
<SAN:iPAddress>регулярное_выражение
.RS 4
Установить соответствие значения SAN iPAddress\&.
.sp
Пример: <SAN:iPAddress>192\e\&.168\e\&.\&.*
.RE
.PP
<SAN:registeredID>регулярное_выражение
.RS 4
Установить соответствие значения SAN registeredID в виде десятичной строки\&.
.sp
Пример: <SAN:registeredID>1\e\&.2\e\&.3\e\&.\&.*
.RE
.SS "ПРАВИЛО СОПОСТАВЛЕНИЯ"
.PP
Правило сопоставления используется для связывания сертификата с одной или несколькими учётными записями\&. После этого для прохождения проверки подлинности в качестве одной из этих учётных записей будет можно использовать смарт\-карту с сертификатом и соответствующим закрытым ключом\&.
.PP
В настоящее время SSSD поддерживает поиск данных пользователей в основном только в LDAP (исключение \(em поставщик данных прокси, что несущественно в данном контексте)\&. Поэтому правило сопоставления основано на синтаксисе фильтра поиска LDAP с шаблонами для добавления содержимого сертификата в фильтр\&. Ожидается, что фильтр будет содержать только определённые данные, необходимые для сопоставления, и что вызывающая сторона внедрит их в другой фильтр для выполнения фактического поиска\&. Поэтому строка фильтра должна, соответственно, начинаться символом \(Fo(\(Fc и заканчиваться символом \(Fo)\(Fc\&.
.PP
В целом, рекомендуется использовать атрибуты из сертификата и добавлять их к специальным атрибутам объекта пользователя LDAP\&. Например, можно использовать атрибут \(FoaltSecurityIdentities\(Fc в AD или атрибут \(FoipaCertMapData\(Fc для IPA\&.
.PP
Это предпочтительнее чтения относящихся к пользователю данных из сертификата (например, адреса электронной почты) и поиска этих данных на сервере LDAP\&. Дело в том, что относящиеся к пользователю данные в LDAP могут меняться по ряду причин, и это приведёт к ошибке сопоставления\&. С другой стороны, сложно специально вызвать ошибку сопоставления для определённого пользователя\&.
.PP
Типом
\(lqправила сопоставления\(rq
по умолчанию является \(FoLDAP\(Fc, который можно добавить в качестве префикса к правилу, например\&. \*(AqLDAP:(userCertificate;binary={cert!bin})\*(Aq\&. Расширение \(FoLDAPU1\(Fc предоставляет дополнительные шаблоны для увеличения гибкости\&. Чтобы разрешить устаревшим версиям этой библиотеки игнорировать расширения, при использовании новых шаблонов в
\(lqправиле сопоставления\(rq
должен быть использован префикс \(FoLDAPU1\(Fc, иначе работа устаревшей версии этой библиотеки будет завершена с сообщением об ошибке при обработке входных данных\&. Новые шаблоны описаны в разделе
the section called \(lqРасширение LDAPU1\(rq\&.
.PP
Шаблоны для добавления данных сертификата в фильтр поиска основаны на строках форматирования в стиле Python\&. Они состоят из ключевого слова в фигурных скобках с необязательным указателем подкомпонента, который отделён знаком \(Fo\&.\(Fc, или необязательным параметром преобразования/форматирования, который отделён знаком \(Fo!\(Fc\&. Допустимые значения:
.PP
{issuer_dn[!((ad|ad_x500)|ad_ldap|nss_x500|(nss|nss_ldap))]}
.RS 4
Этот шаблон добавит полное DN издателя, преобразованное в строку в соответствии с RFC 4514\&. Для упорядочения X\&.500 (самое специфичное RDN в конце) следует использовать параметр с префиксом \(Fo_x500\(Fc\&.
.sp
Параметры преобразования, которые начинаются с \(Foad_\(Fc, используют имена атрибутов, используемые AD (например, \(FoS\(Fc вместо \(FoST\(Fc)\&.
.sp
Параметры преобразования, которые начинаются с \(Fonss_\(Fc, используют имена атрибутов, используемые NSS\&.
.sp
Стандартным вариантом преобразования является \(Fonss\(Fc, то есть имена атрибутов согласно NSS и упорядочение LDAP/RFC 4514\&.
.sp
Пример: (ipacertmapdata=X509:<I>{issuer_dn!ad}<S>{subject_dn!ad})
.RE
.PP
{subject_dn[!((ad|ad_x500)|ad_ldap|nss_x500|(nss|nss_ldap))]}
.RS 4
Этот шаблон добавит полное DN субъекта, преобразованное в строку в соответствии с RFC 4514\&. Для упорядочения X\&.500 (самое специфичное RDN в конце) следует использовать параметр с префиксом \(Fo_x500\(Fc\&.
.sp
Параметры преобразования, которые начинаются с \(Foad_\(Fc, используют имена атрибутов, используемые AD (например, \(FoS\(Fc вместо \(FoST\(Fc)\&.
.sp
Параметры преобразования, которые начинаются с \(Fonss_\(Fc, используют имена атрибутов, используемые NSS\&.
.sp
Стандартным вариантом преобразования является \(Fonss\(Fc, то есть имена атрибутов согласно NSS и упорядочение LDAP/RFC 4514\&.
.sp
Пример: (ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})
.RE
.PP
{cert[!(bin|base64)]}
.RS 4
Этот шаблон добавит в фильтр поиска весь сертификат в кодировке DER как строку\&. В зависимости от значения параметра преобразования двоичный сертификат будет преобразован либо в экранированную шестнадцатеричную последовательность \(Fo\exx\(Fc, либо в код base64\&. Стандартным вариантом является экранированная шестнадцатеричная последовательность\&. Она может использоваться, например, с атрибутом LDAP \(FouserCertificate;binary\(Fc\&.
.sp
Пример: (userCertificate;binary={cert!bin})
.RE
.PP
{subject_principal[\&.short_name]}
.RS 4
Этот шаблон добавит участника Kerberos, взятого либо из SAN, используемого pkinit, либо из SAN, используемого AD\&. Компонент \(Foshort_name\(Fc представляет первую часть записи участника, до знака \(Fo@\(Fc\&.
.sp
Пример: (|(userPrincipal={subject_principal})(samAccountName={subject_principal\&.short_name}))
.RE
.PP
{subject_pkinit_principal[\&.short_name]}
.RS 4
Этот шаблон добавит участника Kerberos, который указан в SAN, используемом pkinit\&. Компонент \(Foshort_name\(Fc представляет первую часть записи участника, до знака \(Fo@\(Fc\&.
.sp
Пример: (|(userPrincipal={subject_pkinit_principal})(uid={subject_pkinit_principal\&.short_name}))
.RE
.PP
{subject_nt_principal[\&.short_name]}
.RS 4
Этот шаблон добавит участника Kerberos, который указан в SAN, используемом AD\&. Компонент \(Foshort_name\(Fc представляет первую часть записи участника, до знака \(Fo@\(Fc\&.
.sp
Пример: (|(userPrincipalName={subject_nt_principal})(samAccountName={subject_nt_principal\&.short_name}))
.RE
.PP
{subject_rfc822_name[\&.short_name]}
.RS 4
Этот шаблон добавит строку, которая хранится в компоненте rfc822Name SAN (обычно это адрес электронной почты)\&. Компонент \(Foshort_name\(Fc представляет первую часть записи адреса, до знака \(Fo@\(Fc\&.
.sp
Пример: (|(mail={subject_rfc822_name})(uid={subject_rfc822_name\&.short_name}))
.RE
.PP
{subject_dns_name[\&.short_name]}
.RS 4
Этот шаблон добавит строку, которая хранится в компоненте dNSName SAN (обычно это полное имя узла) Компонент \(Foshort_name\(Fc представляет первую часть записи имени, до первого знака \(Fo\&.\(Fc\&.
.sp
Пример: (|(fqdn={subject_dns_name})(host={subject_dns_name\&.short_name}))
.RE
.PP
{subject_uri}
.RS 4
Этот шаблон добавит строку, которая хранится в компоненте uniformResourceIdentifier SAN\&.
.sp
Пример: (uri={subject_uri})
.RE
.PP
{subject_ip_address}
.RS 4
Этот шаблон добавит строку, которая хранится в компоненте iPAddress SAN\&.
.sp
Пример: (ip={subject_ip_address})
.RE
.PP
{subject_x400_address}
.RS 4
Этот шаблон добавит значение, которое хранится в компоненте x400Address SAN как экранированная шестнадцатеричная последовательность\&.
.sp
Пример: (attr:binary={subject_x400_address})
.RE
.PP
{subject_directory_name[!((ad|ad_x500)|ad_ldap|nss_x500|(nss|nss_ldap))]}
.RS 4
Этот шаблон добавит строку DN значения, которое хранится в компоненте directoryName SAN\&.
.sp
Пример: (orig_dn={subject_directory_name})
.RE
.PP
{subject_ediparty_name}
.RS 4
Этот шаблон добавит значение, которое хранится в компоненте ediPartyName SAN как экранированная шестнадцатеричная последовательность\&.
.sp
Пример: (attr:binary={subject_ediparty_name})
.RE
.PP
{subject_registered_id}
.RS 4
Этот шаблон добавит OID, который хранится в компоненте registeredID SAN как десятичная строка\&.
.sp
Пример: (oid={subject_registered_id})
.RE
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBРасширение LDAPU1\fR
.RS 4
.PP
При использовании расширения \(FoLDAPU1\(Fc доступны следующие шаблоны:
.PP
.PP
{serial_number[!(dec|hex[_ucr])]}
.RS 4
Этот шаблон добавит серийный номер сертификата\&. По умолчанию он будет напечатан как шестнадцатеричное число буквами нижнего регистра\&.
.sp
Если используется параметр форматирования \(Fo!dec\(Fc, число будет выведено в виде десятичной строки\&. Шестнадцатеричный вывод может быть показан буквами в верхнем регистре (\(Fo!hex_u\(Fc), с двоеточием, разделяющим шестнадцатеричные байты (\(Fo!hex_c\(Fc), или с шестнадцатеричными байтами в обратном порядке (\(Fo!hex_r\(Fc)\&. Буквы постфикса можно комбинировать, например, \(Fo!hex_uc\(Fc приведет к выводу шестнадцатеричной строки, разделенной двоеточием, с буквами в верхнем регистре\&.
.sp
Пример: LDAPU1:(serial={серийный_номер})
.RE
.PP
{subject_key_id[!hex[_ucr]]}
.RS 4
Этот шаблон добавит идентификатор ключа назначения сертификата\&. По умолчанию он будет напечатан как шестнадцатеричное число буквами нижнего регистра\&.
.sp
Шестнадцатеричный вывод может быть показан буквами в верхнем регистре (\(Fo!hex_u\(Fc), с двоеточием, разделяющим шестнадцатеричные байты (\(Fo!hex_c\(Fc), или с шестнадцатеричными байтами в обратном порядке (\(Fo!hex_r\(Fc)\&. Буквы постфикса можно комбинировать, например, \(Fo!hex_uc\(Fc приведет к выводу шестнадцатеричной строки, разделенной двоеточием, с буквами в верхнем регистре\&.
.sp
Пример: LDAPU1:(ski={subject_key_id})
.RE
.PP
{cert[!DIGEST[_ucr]]}
.RS 4
Этот шаблон добавит шестнадцатеричную контрольную сумму или хэш к сертификату\&. Запись DIGEST должна быть заменена названием функции контрольной суммы или хэша, поддержка которых предусмотрена в OpenSSL, например\&. \(Fosha512\(Fc\&.
.sp
Шестнадцатеричный вывод может быть показан буквами в верхнем регистре (\(Fo!sha512_u\(Fc), с двоеточием, разделяющим шестнадцатеричные байты (\(Fo!sha512_c\(Fc), или с шестнадцатеричными байтами в обратном порядке (\(Fo!sha512_r\(Fc)\&. Буквы постфикса можно комбинировать, например, \(Fo!sha512_uc\(Fc приведет к выводу шестнадцатеричной строки, разделенной двоеточием, с буквами в верхнем регистре\&.
.sp
Пример: LDAPU1:(dgst={cert!sha256})
.RE
.PP
{subject_dn_component[(\&.attr_name|[number]]}
.RS 4
Этот шаблон добавит значение атрибуту компонента DN субъекта, по умолчанию значением является самый специфический компонент\&.
.sp
Другой компонент может быть выбран по имени атрибута, например, {subject_dn_component\&.uid} или по позиции, например, {subject_dn_component\&.[2]}, где положительные числа означают отсчет от наиболее специфичного компонента, а отрицательные числа \(em от наименее специфичного компонента\&. Название атрибута и позиция могут быть объединены, например, {subject_dn_component\&.uid[2]} означает, что имя второго компонента должно быть \(Fouid\(Fc\&.
.sp
Пример: LDAPU1:(uid={subject_dn_component\&.uid})
.RE
.PP
{issuer_dn_component[(\&.attr_name|[number]]}
.RS 4
Этот шаблон добавит значение атрибуту компонента DN издателя, по умолчанию значением является самый специфический компонент\&.
.sp
См\&. раздел \(Fosubject_dn_component\(Fc для получения более подробной информации о названиях атрибутов и спецификаторов позиции\&.
.sp
Пример: LDAPU1:(domain={issuer_dn_component\&.[\-2]}\&.{issuer_dn_component\&.dc[\-1]})
.RE
.PP
{sid[\&.rid]}
.RS 4
Этот шаблон добавит SID, если доступно соответствующее расширение, представленное Microsoft с OID 1\&.3\&.6\&.1\&.4\&.1\&.311\&.25\&.2\&. С помощью селектора \(Fo\&.rid\(Fc будет добавлен только последний компонент, то есть RID\&.
.sp
Пример: LDAPU1:(objectsid={sid})
.RE
.RE
.SS "СПИСОК ДОМЕНОВ"
.PP
Когда список доменов не пуст, поиск пользователей, сопоставленных указанному сертификату, будет выполняться не только в локальном домене, но также и в перечисленных в списке доменах, если они известны SSSD\&. Домены, которые неизвестны SSSD, будут игнорироваться\&.
.SH "AUTHORS"
.PP
\fBВосходящий источник (\(Foапстрим\(Fc)
SSSD \(em https://github\&.com/SSSD/sssd/\fR
