'\" t
.\" Title: sss-certmap
.\" Author: O autor do SSSD - https://github.com/SSSD/sssd/
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 01/18/2026
.\" Manual: Formatos de Ficheiros e Convenções
.\" Source: SSSD
.\" Language: English
.\"
.TH "SSS\-CERTMAP" "5" "01/18/2026" "SSSD" "Formatos de Ficheiros e Conven"
.\" -----------------------------------------------------------------
.\" * 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 \- Correspondência de Certificados e Regras de Mapeamento do SSSD
.SH "DESCRIÇÃO"
.PP
Este manual descreve as regras que podem ser usadas pelo SSSD e outros componentes para corresponder a certificados X\&.509 e os mapear em contas\&.
.PP
Cada regra tem quatro componentes, um
\(lqpriority\(rq, um
\(lqmatching rule\(rq, um
\(lqmapping rule\(rq
e um
\(lqdomain list\(rq\&. Todos os componentes são opcionais\&. Um
\(lqpriority\(rq
em falta irá adicionar a regra com a prioridade mais baixa\&. A
\(lqmatching rule\(rq
predefinida irá corresponder a certificados com a utilização de chave digitalSignature e utilização de chave estendida clientAuth, Se a
\(lqmapping rule\(rq
estiver vazia os certificados serão procurados no atributo userCertificate como binário codificado em DER\&. Se nenhum domínio for dado apenas será procurado o domínio local\&.
.PP
Para permitir extensões ou estilo completamente diferente de regra o
\(lqmapping\(rq
e
\(lqmatching rules\(rq
podem conter um prefixo separado por um \*(Aq:\*(Aq da principal parte de regra\&. O prefixo só pode conter letras maiúsculas ASCII e números\&. Se o prefixo for omitido será usado o tipo predefinido que é \*(AqKRB5\*(Aq para as regras de correspondência e "LDAP\*(Aq para as regras de mapeamento\&.
.PP
O utilitário \*(Aqsssctl\*(Aq fornece o comando \*(Aqcert\-eval\-rule\*(Aq para verificar se um dado certificado corresponde a uma regra de correspondência e como o resultado de uma regra de mapeamento se iria parecer\&.
.SH "COMPONENTES DE REGRA"
.SS "PRIORIDADE"
.PP
As regras são processadas pela prioridade e o número \*(Aq0\*(Aq (zero) indica a prioridade mais alta\&. Quanto mais alto o número mais baixa a prioridade\&. Um valor em falta indica a prioridade mais baixa\&. O processamento de regras é parado quando é encontrada uma regra correspondente e não são verificadas mais regras\&.
.PP
Internamente a prioridade é tratada como um inteiro de 32bit não assinado, usar um valor de prioridade maior que 4294967295 irá causar um erro\&.
.PP
Se várias regras tiverem a mesma prioridade e apenas uma das regras correspondentes relacionadas se aplica, essa regra será escolhida\&. Se existirem com a mesma prioridade que correspondem, é escolhida uma mas qual delas é não está definido\&. Para evitar este comportamento indefinido ou se usa diferentes prioridades ou torne as regras de correspondência mas específicas ex\&. ao usar padrões distintos\&.
.SS "REGRA DE CORRESPONDÊNCIA"
.PP
A regra correspondente é usada para selecionar o certificado ao qual a regra de mapeamento deve ser aplicada\&. Usa um sistema semelhante aquele usado pela opção
\(lqpkinit_cert_match\(rq
do MIT Kerberos\&. Consiste de uma palavra chave envolta por \*(Aq<\*(Aq e \*(Aq>\*(Aq o que identifica uma certa parte do certificado e um padrão que deve ser encontrado para que a regra corresponda\&. Múltiplos pares de padrões de palavra chave pode ser ou juntados com \*(Aq&&\*(Aq (e) ou \*(Aq||\*(Aq (ou)\&.
.PP
Dada a semelhança com o MIT Kerberos o prefixo de tipo para esta regra é \*(AqKRB5\*(Aq\&. Mas \*(AqKRB5\*(Aq irá ser também a predefinição para
\(lqmatching rules\(rq
para que "\&.*,DC=MY,DC=DOMAIN" e "KRB5:\&.*,DC=MY,DC=DOMAIN" sejam equivalentes\&.
.PP
As opções disponíveis são:
.PP
expressão\-regular
.RS 4
Com isto uma parte ou o nome completo de sujeito do certificado pode ser correspondido\&. Para correspondência é usada sintaxe Extended Regular Expression do POSIX, veja regex(7) para detalhes\&.
.sp
Para corresponder o nome do sujeito guardado no certificado em ASN\&.1 codificado em DER é convertido numa string de acordo com RFC 4514\&. Isto significa que o componente nome mais especifico vem primeiro\&. Por favor note que nem todos os nomes de atributo possíveis são cobertos por by RFC 4514\&. Os nomes incluídos são \*(AqCN\*(Aq, \*(AqL\*(Aq, \*(AqST\*(Aq, \*(AqO\*(Aq, \*(AqOU\*(Aq, \*(AqC\*(Aq, \*(AqSTREET\*(Aq, \*(AqDC\*(Aq e \*(AqUID\*(Aq\&. Outros nomes de atributos podem ser mostrados de maneira diferente em plataformas diferentes ou por diferentes ferramentas\&. Para evitar confusões é melhor não usar esses nomes de atributos ou cobri\-los por uma expressão regular apropriada\&.
.sp
Exemplo: \&.*,DC=MY,DC=DOMAIN
.sp
Por favor note que os caracteres "^\&.[$()|*+?{\e\e" têm um significado especial em expressões regulares e têm de ser escapados com a ajuda do caractere \*(Aq\e\*(Aq para que correspondam como caracteres normais\&.
.sp
Exemplo: ^CN=\&.* \e(Admin\e),DC=MY,DC=DOMAIN$
.RE
.PP
expressão\-regular
.RS 4
Com isto uma parte do nome completo do emissor do certificado pode ser correspondida\&. Todos os comentários para também se aplicam aqui\&.
.sp
Exemplo: ^CN=My\-CA,DC=MY,DC=DOMAIN$
.RE
.PP
key\-usage
.RS 4
Esta opção pode ser usada para especificar quais valores de utilização de chave o certificado deve ter\&. Os seguintes valores podem ser usados numa lista separados por vírgulas:
.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
Um valor numérico no alcance de inteiro de 32bit não assinado pode ser usado também para cobrir casos de utilização especiais\&.
.sp
Exemplo: digitalSignature,keyEncipherment
.RE
.PP
extended\-key\-usage
.RS 4
Esta opção pode ser usada para especificar qual utilização de chave estendida o certificado deve ter\&. Os seguintes valores podem ser usados numa lista separados por vírgulas:
.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
Utilizações de chave estendida que não estejam listadas em cima podem ser especificadas com o seu OID em notação de pontuação\-decimal\&.
.sp
Exemplo: clientAuth,1\&.3\&.6\&.1\&.5\&.2\&.3\&.4
.RE
.PP
expressão\-regular
.RS 4
Para ser compatível com a utilização de MIT Kerberos esta opção irá corresponder aos principais de Kerberos no SAN Principal PKINIT ou AD NT como faz o \&.
.sp
Exemplo: \&.*@MY\e\&.REALM
.RE
.PP
expressão\-regular
.RS 4
Corresponde aos principais de Kerberos no SAN Principal PKINIT ou AD NT\&.
.sp
Exemplo: \&.*@MY\e\&.REALM
.RE
.PP
expressão\-regular
.RS 4
Corresponde aos principais de Kerberos no SAN Principal AD NT\&.
.sp
Exemplo: \&.*@MY\&.AD\&.REALM
.RE
.PP
expressão\-regular
.RS 4
Corresponde aos principais de Kerberos no SAN PKINIT\&.
.sp
Exemplo: \&.*@MY\e\&.PKINIT\e\&.REALM
.RE
.PP
expressão\-regular
.RS 4
Toma o valor do componente SAN otherName dado pelo OID em notação de pontuação\-decimal, interpreta\-o como uma string e tenta corresponde\-lo com a expressão regular\&.
.sp
Exemplo: test
.RE
.PP
base64\-string
.RS 4
Faz uma correspondência binária com o borrão codificado em base64 contra todos os componentes SAN otherName\&. Com esta opção é possível corresponder contra componentes otherName personalizados com codificações especiais que não podem ser tratados como strings\&.
.sp
Exemplo: MTIz
.RE
.PP
expressão\-regular
.RS 4
Corresponde ao valor de rfc822Name SAN\&.
.sp
Exemplo: \&.*@email\e\e\&.domain
.RE
.PP
expressão\-regular
.RS 4
Corresponde ao valor de dNSName SAN\&.
.sp
Exemplo: \&.*\e\e\&.my\e\e\&.dns\e\e\&.domain
.RE
.PP
base64\-string
.RS 4
Corresponde em binário ao valor de x400Address SAN\&.
.sp
Exemplo: MTIz
.RE
.PP
expressão\-regular
.RS 4
Corresponde o valor do SAN directoryName\&. OS mesmos comentários que são dados para e aplicam\-se aqui também\&.
.sp
Exemplo: \&.*,DC=com
.RE
.PP
base64\-string
.RS 4
Corresponde em binário ao valor de ediPartyName SAN\&.
.sp
Exemplo: MTIz
.RE
.PP
expressão\-regular
.RS 4
Corresponde ao valor de uniformResourceIdentifier SAN\&.
.sp
Exemplo: URN:\&.*
.RE
.PP
expressão\-regular
.RS 4
Corresponde ao valor de iPAddress SAN\&.
.sp
Exemplo: 192\e\e\&.168\e\e\&.\&.*
.RE
.PP
expressão\-regular
.RS 4
Corresponde o valor de SAN registeredID como string de pontuação\-decimal\&.
.sp
Exemplo: 1\e\e\&.2\e\e\&.3\e\e\&.\&.*
.RE
.SS "REGRA DE MAPEAMENTO"
.PP
A regra de mapeamento é usada para associar um certificado com uma ou mais contas\&. Uma Smartcard com o certificado e a chave privada correspondente podem então ser usadas para autenticar como uma dessas contas\&.
.PP
Actualmente o SSSD basicamente apenas suporta o LDAP para procurar informação do utilizador (a excepção é o provedor proxy o qual não é relevante aqui)\&. Devido a isto, a regra de mapeamento é baseada na sintaxe do filtro de busca do LDAP com modelos para adicionar o conteúdo de certificados ao filtro\&. É esperado que o filtro apenas contenha os dados específicos necessários para o mapeamento e que o chamador irá embebe\-lo noutro filtro para fazer a própria procura\&. Devido a isto, a string do filtro deve começar e terminar com \*(Aq(\*(Aq e \*(Aq)\*(Aq respetivamente\&.
.PP
Em geral é recomendado usar atributos a partir do certificado e adiciona\-los a atributos especiais ao objecto utilizador do LDAP\&. Ex\&. pode ser usado o atributo \*(AqaltSecurityIdentities\*(Aq em AD ou o atributo \*(AqipaCertMapData\*(Aq para IPA\&.
.PP
Isto deve ser preferido a ler dados específicos do utilizador a partir do certificado tal como, ex\&. um endereço de email e procurar por ele no servidor LDAP\&. A razão é que os dados específicos do utilizador podem mudar por várias razões e iria quebrar o mapeamento\&. Do outro modo, seria difícil quebrar o mapeamento de propósito a um utilizador específico\&.
.PP
O tipo predefinido de
\(lqmapping rule\(rq
é \*(AqLDAP\*(Aq que pode ser adicionado como prefixo a uma regra como ex\&. \*(AqLDAP:(userCertificate;binary={cert!bin})\*(Aq\&. Existe uma extensão chamada \*(AqLDAPU1\*(Aq que oferece mais modelos para mais flexibilidade\&. Para permitir a versões mais antigas desta biblioteca ignorar a extensão, o prefixo \*(AqLDAPU1\*(Aq tem de ser usado quando se usa os novos modelos numa
\(lqmapping rule\(rq
caso contrário a versão antiga desta biblioteca irá falhar com um erro de análise\&. Os novos modelos estão descritos na secção
the section called \(lqExtensão LDAPU1\(rq\&.
.PP
Os modelos para adicionar dados de certificados aos filtros de busca são baseados em strings de formatação de estilo\-Python\&. Consistem duma palavra chave entre chavetas com um especificador de sub\-componente opcional separado por um \*(Aq\&.\*(Aq ou uma opção de conversão/formatação opcional separada por um \*(Aq!\*(Aq\&. Os valores permitidos são:
.PP
{issuer_dn[!((ad|ad_x500)|ad_ldap|nss_x500|(nss|nss_ldap))]}
.RS 4
Este modelo irá adicionar o emissor total DN convertido numa string conforme RFC 4514\&. Se encomendar X\&.500 (RDN mais específico chega em último) deve ser usado uma opção com o prefixo \*(Aq_x500\*(Aq\&.
.sp
As opções de conversão que começam com \*(Aqad_\*(Aq irão usar nomes de atributo como usado pelo AD, ex\&. \*(AqS\*(Aq em vez de \*(AqST\*(Aq\&.
.sp
As opções de conversão que começam com \*(Aqnss_\*(Aq irão usar nomes de atributo como usado pelo NSS\&.
.sp
A opção de conversão predefinida é \*(Aqnss\*(Aq, isto é, nomes de atributos de acordo para pedidos NSS e LDAP/RFC 4514\&.
.sp
Exemplo: (ipacertmapdata=X509:{issuer_dn!ad}{subject_dn!ad})
.RE
.PP
{subject_dn[!((ad|ad_x500)|ad_ldap|nss_x500|(nss|nss_ldap))]}
.RS 4
Este modelo irá adicionar o sujeito total DN convertido numa string conforme RFC 4514\&. Se encomendar X\&.500 (RDN mais específico chega em último) deve ser usado uma opção com o prefixo \*(Aq_x500\*(Aq\&.
.sp
As opções de conversão que começam com \*(Aqad_\*(Aq irão usar nomes de atributo como usado pelo AD, ex\&. \*(AqS\*(Aq em vez de \*(AqST\*(Aq\&.
.sp
As opções de conversão que começam com \*(Aqnss_\*(Aq irão usar nomes de atributo como usado pelo NSS\&.
.sp
A opção de conversão predefinida é \*(Aqnss\*(Aq, isto é, nomes de atributos de acordo para pedidos NSS e LDAP/RFC 4514\&.
.sp
Exemplo: (ipacertmapdata=X509:{issuer_dn!nss_x500}{subject_dn!nss_x500})
.RE
.PP
{cert[!(bin|base64)]}
.RS 4
Este modelo irá adicionar o certificado completo codificado em DER como uma string ao filtro de busca\&. Dependendo da opção de conversão o certificado binário é ou convertido para uma sequência hexadecimal escapada \e\exx\*(Aq ou base64\&. A sequência hexadecimal escapada é a predefinição e pode, por exemplo, ser usada com o atributo do LDAP \*(AquserCertificate;binary\*(Aq\&.
.sp
Exemplo: (userCertificate;binary={cert!bin})
.RE
.PP
{subject_principal[\&.short_name]}
.RS 4
Este modelo irá adicionar o principal Kerberos o qual é tomado ou a partir do SAN usado pelo pkinit ou daquele usado pelo AD\&. O componente \*(Aqshort_name\*(Aq representa a primeira parte do principal antes do sinal \*(Aq@\*(Aq\&.
.sp
Exemplo: (|(userPrincipal={subject_principal})(samAccountName={subject_principal\&.short_name}))
.RE
.PP
{subject_pkinit_principal[\&.short_name]}
.RS 4
Este modelo irá adicionar o principal Kerberos o qual é dado pelo SAN usado pelo pkinit\&. O componente \*(Aqshort_name\*(Aq representa a primeira parte do principal antes do sinal \*(Aq@\*(Aq\&.
.sp
Exemplo: (|(userPrincipal={subject_pkinit_principal})(uid={subject_pkinit_principal\&.short_name}))
.RE
.PP
{subject_nt_principal[\&.short_name]}
.RS 4
Este modelo irá adicionar o principal Kerberos o qual é dado pelo SAN usado pelo AD\&. O componente \*(Aqshort_name\*(Aq representa a primeira parte do principal antes do sinal \*(Aq@\*(Aq\&.
.sp
Exemplo: (|(userPrincipalName={subject_nt_principal})(samAccountName={subject_nt_principal\&.short_name}))
.RE
.PP
{subject_rfc822_name[\&.short_name]}
.RS 4
Este modelo irá adicionar a string que está guardada no componente rfc822Name do SAN, tipicamente um endereço de email\&. O componente \*(Aqshort_name\*(Aq representa a primeira parte do endereço antes do sinal \*(Aq@\*(Aq\&.
.sp
Exemplo: (|(mail={subject_rfc822_name})(uid={subject_rfc822_name\&.short_name}))
.RE
.PP
{subject_dns_name[\&.short_name]}
.RS 4
Este modelo irá adicionar a string que está guardada no componente dNSName do SAN, tipicamente um nome de máquina totalmente qualificado\&. O componente \*(Aqshort_name\*(Aq representa a primeira parte do nome antes do primeiro sinal \*(Aq\&.\*(Aq\&.
.sp
Exemplo: (|(fqdn={subject_dns_name})(host={subject_dns_name\&.short_name}))
.RE
.PP
{subject_uri}
.RS 4
Este modelo irá adicionar a string que está guardada no componente uniformResourceIdentifier do SAN\&.
.sp
Exemplo: (uri={subject_uri})
.RE
.PP
{subject_ip_address}
.RS 4
Este modelo irá adicionar a string que está guardada no componente iPAddress do SAN\&.
.sp
Exemplo: (ip={subject_ip_address})
.RE
.PP
{subject_x400_address}
.RS 4
Este modelo irá adicionar o valor que está guardado no componente x400Address do SAN como sequência hexadecimal escapada\&.
.sp
Exemplo: (attr:binary={subject_x400_address})
.RE
.PP
{subject_directory_name[!((ad|ad_x500)|ad_ldap|nss_x500|(nss|nss_ldap))]}
.RS 4
Este modelo irá adicionar a string DN do valor que está guardado no componente directoryName do SAN\&.
.sp
Exemplo: (orig_dn={subject_directory_name})
.RE
.PP
{subject_ediparty_name}
.RS 4
Este modelo irá adicionar o valor que está guardado no componente ediPartyName do SAN como sequência hexadecimal escapada\&.
.sp
Exemplo: (attr:binary={subject_ediparty_name})
.RE
.PP
{subject_registered_id}
.RS 4
Este modelo irá adicionar o OID que está guardado no componente registeredID do SAN como uma string decimal\-pontuada\&.
.sp
Exemplo: (oid={subject_registered_id})
.RE
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBExtensão LDAPU1\fR
.RS 4
.PP
The following templates are available when using the \*(AqLDAPU1\*(Aq extension:
.PP
.PP
{serial_number[!(dec|hex[_ucr])]}
.RS 4
Este modelo irá adicionar o número de série do certificado\&. Por predefinição será escrito como um número hexadecimal com letras minúsculas\&.
.sp
Com a opção de formatação \*(Aq!dec\*(Aq o número será escrito em string decimal\&. O resultado hexadecimal pode ser escrito com letras maiúsculas (\*(Aq!hex_u\*(Aq), com dois\-pontos a separar os bytes hexadecimais (\*(Aq!hex_c\*(Aq) ou com os bytes hexadecimais em ordem reversa (\*(Aq!hex_r\*(Aq)\&. As letras posteriores podem ser combinadas para que ex\&. \*(Aq!hex_uc\*(Aq produza uma string hexadecimal separada por dois\-pontos com letras maiúsculas\&.
.sp
Exemplo: LDAPU1:(serial={serial_number})
.RE
.PP
{subject_key_id[!hex[_ucr]]}
.RS 4
Este modelo irá adicionar o id de chave de objeto do certificado\&. Por predefinição será escrito como um número hexadecimal com letras minúsculas\&.
.sp
O resultado em hexadecimal pode ser escrito com letras maiúsculas (\*(Aq!hex_u\*(Aq), com dois\-pontos a separar os bytes hexadecimais (\*(Aq!hex_c\*(Aq) ou com os bytes hexadecimais em ordem reversa (\*(Aq!hex_r\*(Aq)\&. As letras posteriores podem ser combinadas para que ex\&. \*(Aq!hex_uc\*(Aq produza uma string hexadecimal com dois\-pontos a separar e letras maiúsculas\&.
.sp
Exemplo: LDAPU1:(ski={subject_key_id})
.RE
.PP
{cert[!DIGEST[_ucr]]}
.RS 4
Este modelo irá adicionar a digestão/cinza hexadecimal do certificado onde DIGEST tem de ser substituído pelo nome da função digest/hash suportada pelo OpenSSL, ex\&. \*(Aqsha512\*(Aq\&.
.sp
O resultado em hexadecimal pode ser escrito com letras maiúsculas (\*(Aq!sha512_u\*(Aq), com dois\-pontos a separar os bytes hexadecimais (\*(Aq!sha512_c\*(Aq) ou com os bytes hexadecimais em ordem reversa (\*(Aq!sha512_r\*(Aq)\&. As letras posteriores podem ser combinadas para que ex\&. \*(Aq!sha512_uc\*(Aq produza uma string hexadecimal com dois\-pontos a separar e letras maiúsculas\&.
.sp
Exemplo: LDAPU1:(dgst={cert!sha256})
.RE
.PP
{subject_dn_component[(\&.attr_name|[number]]}
.RS 4
Este modelo irá adicionar um valor de atributo de um componente do objeto DN, por predefinição o valor do componente mais específico\&.
.sp
A different component can be selected by either attribute name, e\&.g\&. {subject_dn_component\&.uid} or by position, e\&.g\&. {subject_dn_component\&.[2]} where positive numbers start counting from the most specific component and negative numbers start counting from the least specific component\&. Attribute name and the position can be combined as e\&.g\&. {subject_dn_component\&.uid[2]} which means that the name of the second component must be \*(Aquid\*(Aq\&.
.sp
Exemplo: LDAPU1:(uid={subject_dn_component\&.uid})
.RE
.PP
{issuer_dn_component[(\&.attr_name|[number]]}
.RS 4
Este modelo irá adicionar um valor de atributo de um componente do publicador DN, por predefinição o valor é o componente mais específico\&.
.sp
Veja \*(Aqsubject_dn_component\*(Aq para detalhes acerca de nome de atributo e especificadores de posição\&.
.sp
Exemplo: LDAPU1:(domain={issuer_dn_component\&.[\-2]}\&.{issuer_dn_component\&.dc[\-1]})
.RE
.PP
{sid[\&.rid]}
.RS 4
Este modelo irá adicionar o SID se a extensão correspondente introduzida pela Microsoft com o OID 1\&.3\&.6\&.1\&.4\&.1\&.311\&.25\&.2 estiver disponível\&. Com o seletor \*(Aq\&.rid\*(Aq apenas o último componente, isto é, o RID, será adicionado\&.
.sp
Exemplo: LDAPU1:(objectsid={sid})
.RE
.RE
.SS "LISTA DE DOMÍNIOS"
.PP
Se a lista de domínios não estiver vazia, os utilizadores mapeados a um dado certificado não são apenas procurados no domínio local mas também nos domínios listados desde que sejam conhecidos pelo SSSD\&. Os domínios não conhecidos do SSSD serão ignorados\&.
.SH "AUTHORS"
.PP
\fBO autor do SSSD \-
https://github\&.com/SSSD/sssd/\fR