Personalizar declarações de token SAML
A plataforma de identidade da Microsoft oferece suporte ao logon único (SSO) na maioria dos aplicativos pré-integrados na galeria de aplicativos e aplicativos personalizados. Quando um usuário é autenticado em um aplicativo por meio da plataforma de identidade da Microsoft usando o protocolo SAML 2.0, a plataforma de identidade da Microsoft envia um token para o aplicativo. O aplicativo valida e usa o token para conectar o usuário em vez de solicitar um nome de usuário e senha.
Esses tokens SAML contêm partes de informações sobre o usuário conhecidas como declarações. Uma declaração são informações que um provedor de identidade declara sobre um usuário dentro do token que emite para esse usuário. No Token SAML, os dados de declarações normalmente estão encontrados na Instrução de Atributo SAML. A ID única do usuário normalmente é representada no Assunto SAML, que também é chamado de identificador do nome (nameID
).
Por padrão, a plataforma de identidade da Microsoft emite um token SAML a um aplicativo que contém uma declaração com um valor do nome do usuário (também conhecido como o nome UPN) no Azure AD, que pode identificar o usuário de maneira exclusiva. O token SAML também contém outras declarações que incluem o endereço de email, nome e sobrenome do usuário.
Exibir ou editar declarações
Para exibir ou editar as declarações emitidas no token SAML para o aplicativo:
- Entre no Centro de administração do Microsoft Entra como pelo menos Administrador de Aplicativo de nuvem.
- Navegue até Identidade>Aplicativos>Aplicativos Empresariais>Todos os aplicativos.
- Selecione o aplicativo, selecione Logon único no menu à esquerda e, em seguida, selecione Editar na seção Atributos e Declarações.
Você pode precisar de editar as declarações emitidas no token SAML pelos seguintes motivos:
- O aplicativo exige que a declaração
NameIdentifier
ounameID
seja diferente do nome de usuário (ou do nome UPN). - O aplicativo foi escrito para exigir um conjunto diferente de URIs ou valores de declaração.
Editar nameID
Para editar a declaração valor do identificador de nome:
- Abra a página Valor do identificador de nome.
- Selecione o atributo ou a transformação que você deseja aplicar ao atributo. Opcionalmente, você pode especificar o formato que você deseja que a declaração
nameID
tenha.
Formato de NameID
Se a solicitação SAML contiver o elemento NameIDPolicy
com um formato específico, a plataforma de identidade da Microsoft honrará o formato na solicitação.
Se a solicitação SAML não contiver um elemento para NameIDPolicy
, então a plataforma de identidade da Microsoft emitirá o nameID
com o formato que você especificar. Se nenhum formato for especificado, a plataforma de identidade da Microsoft usará o formato de origem padrão associado à origem de declaração selecionada. Se uma transformação resultar em um valor nulo ou ilegal, o Microsoft Entra ID enviará um identificador emparelhado persistente no nameID
.
No menu suspenso Escolher formato de identificador do nome, selecione uma das opções na tabela a seguir.
Formato nameID |
Descrição |
---|---|
Default | A plataforma de identidade da Microsoft usa o formato de origem padrão. |
Persistente | A plataforma de identidade da Microsoft usa o Persistent como o formato nameID . |
Endereço de email | A plataforma de identidade da Microsoft usa o EmailAddress como o formato nameID . |
Não especificado | A plataforma de identidade da Microsoft usa o Unspecified como o formato nameID . |
Nome qualificado de domínio do Windows | A plataforma de identidade da Microsoft usa o formato WindowsDomainQualifiedName . |
O nameID
transitório também é compatível, mas não está disponível na lista suspensa e não pode ser configurado através do Azure. Para saber mais sobre o atributo NameIDPolicy
, consulte Protocolo SAML de logon único.
Atributos
Dica
As etapas neste artigo podem variar ligeiramente com base no portal do qual você começa.
Selecione a fonte desejada para a declaração NameIdentifier
(ou nameID
). Você pode selecionar a partir das opções de aceitar na tabela a seguir.
Nome | Descrição |
---|---|
Email |
O endereço de email do usuário. |
userprincipalName |
O UPN (nome principal do usuário) do usuário. |
onpremisessamaccountname |
O nome da conta SAM que foi sincronizada a partir do Microsoft Entra ID local. |
objectid |
A ID do objeto do usuário no Microsoft Entra ID. |
employeeid |
A ID de funcionário do usuário. |
Directory extensions |
As extensões de diretório sincronizadas do Active Directory local usando a Sincronização do Microsoft Entra Connect. |
Extension Attributes 1-15 |
Os atributos de extensão no local usados para estender o esquema do Microsoft Entra. |
pairwiseid |
A forma persistente do identificador de usuário. |
Para obter mais informações sobre valores de identificadores, consulte a tabela que lista os valores de ID válidos por origem mais adiante nesta página.
Os valores constantes (estáticos) podem ser atribuídos a qualquer declaração. Use as seguintes etapas para atribuir um valor constante:
- Na folha Atributos e Declarações, selecione a declaração necessária que você deseja modificar.
- Insira o valor constante sem aspas no Atributo de origem de acordo com sua organização e selecione Salvar. O valor constante é exibido.
Extensões de esquema de diretório
Você também pode configurar os atributos de extensão de esquema de diretório como atributos não condicionais/condicionais. Use as seguintes etapas para configurar o atributo de extensão de esquema de diretório único ou de vários valores como uma declaração:
- Na folha Atributos e Declarações, selecione Adicionar nova declaração ou edite uma declaração existente.
- Selecione aplicativo de origem no seletor de aplicativos em que a propriedade de extensão está definida.
- Selecione Adicionar para adicionar a seleção às declarações.
- Clique em Salvar para confirmar as alterações.
Transformações de declarações especiais
Você pode usar as funções de transformações de declarações especiais a seguir.
Função | Descrição |
---|---|
ExtractMailPrefix() | Remove o sufixo de domínio de endereço de email ou nome UPN. Essa função extrai somente a primeira parte do nome de usuário que está sendo passada (por exemplo, "joe_smith" em vez de joe_smith@contoso.com). |
ToLower() | Converte os caracteres do atributo selecionado em caracteres minúsculos. |
ToUpper() | Converte os caracteres do atributo selecionado em caracteres maiúsculos. |
Adicionar declarações específicas do aplicativo
Para adicionar declarações específicas a um aplicativo:
- Na folha Atributos e Declarações, selecione Adicionar nova declaração para abrir a página Gerenciar declarações do usuário.
- Insira o nome das declarações. O valor não precisa necessariamente seguir um padrão de URI segundo a especificação de SAML. Se você precisar de um padrão de URI, poderá colocá-lo no campo Namespace.
- Selecione a Origem em que a declaração vai recuperar o valor dela. Você pode selecionar um atributo de usuário na lista suspensa de atributo de origem ou aplicar uma transformação ao atributo de usuário antes de emiti-lo como uma declaração.
Adicionar uma declaração de grupo
As declarações de grupo são usadas para tomar decisões de autorização para acessar um recurso por um aplicativo ou um provedor de serviços. Para adicionar declarações de grupo;
- Navegue até registros de aplicativo e selecione o aplicativo ao qual você deseja adicionar uma declaração de grupo.
- Selecione Adicionar declaração de grupos.
- Selecione os tipos de grupo a serem incluídos no token. Você pode adicionar grupos de segurança, grupos de diretórios ou grupos atribuídos a um aplicativo específico.
- Escolha os valores que deseja incluir na declaração de grupos e selecione Adicionar.
Transformações de declaração
Para aplicar uma transformação a um atributo de usuário:
- Em Gerenciar declaração, selecione Transformação como a origem da declaração para abrir a página Gerenciar transformação.
- Selecione a função na lista suspensa de transformação. Dependendo da função selecionada, você precisará fornecer parâmetros e um valor constante a serem avaliados na transformação.
- Selecione a origem do atributo clicando no botão de opção apropriado.
- Selecione o nome do atributo do menu suspenso.
- Trate a fonte como múltiplos valores é uma caixa de seleção que indica se a transformação deve ser aplicada a todos os valores ou apenas ao primeiro. Por padrão, as transformações são aplicadas somente ao primeiro elemento em uma declaração de vários valores, ao verificar essa caixa, ela garante que ela seja aplicada a todos. Essa caixa de seleção só é habilitada para atributos com vários valores, por exemplo
user.proxyaddresses
. - Para aplicar várias transformações, selecione Adicionar transformação. Você pode aplicar um máximo de duas transformações a uma declaração. Por exemplo, você pode primeiro extrair o prefixo de email do
user.mail
. Em seguida, converta a cadeia de caracteres em maiúsculas.
É possível usar as funções a seguir para transformar declarações.
Função | Descrição |
---|---|
ExtractMailPrefix() | Remove o sufixo de domínio de endereço de email ou nome UPN. Essa função extrai apenas a primeira parte do nome de usuário passado. Por exemplo, joe_smith em vez de joe_smith@contoso.com . |
Join() | Cria um valor unindo dois atributos. Opcionalmente, você pode usar um separador entre os dois atributos. Para a transformação de declaração nameID , a funçãoJoin() tem um comportamento específico quando a entrada de transformação tem uma parte de domínio. Ele remove a parte de domínio da entrada antes de juntá-la com o separador e o parâmetro selecionado. Por exemplo, se a entrada da transformação for "joe_smith@contoso.com ", o separador for @ e o parâmetro for fabrikam.com , essa combinação de entradas resultará em joe_smith@fabrikam.com . |
ToLowercase() | Converte os caracteres do atributo selecionado em caracteres minúsculos. |
ToUppercase() | Converte os caracteres do atributo selecionado em caracteres maiúsculos. |
Contains() | Gera um atributo ou constante se a entrada corresponde ao valor especificado. Caso contrário, você poderá especificar outra saída se não houver correspondência. Por exemplo, se você quiser emitir uma declaração cujo valor seja o endereço de email do usuário caso ele contenha o domínio "@contoso.com ". Caso contrário, você deve querer gerar o nome UPN. Para executar essa função, configure os seguintes valores: Parameter 1(input): user.email , Value: "@contoso.com" , Parameter 2 (output): user.email e Parameter 3 (output if there's no match): user.userprincipalname . |
EndWith() | Gera um atributo ou constante se a entrada termina com o valor especificado. Caso contrário, você poderá especificar outra saída se não houver correspondência. Por exemplo, se você quiser emitir uma declaração que terá o valor da ID do funcionário quando essa ID terminar com 000 , mas quiser gerar um atributo de extensão quando o final dessa ID for diferente. Para executar essa função, configure os seguintes valores: Parameter 1(input): user.employeeid , Value: "000" , Parameter 2 (output): user.employeeid e Parameter 3 (output if there's no match): user.extensionattribute1 . |
StartWith() | Gera um atributo ou constante se a entrada começa com o valor especificado. Caso contrário, você poderá especificar outra saída se não houver correspondência. Por exemplo, se você quiser emitir uma declaração em que o valor será a ID de funcionário do usuário quando o país/região começar comUS , mas quiser gerar um atributo de extensão quando o início do país/região for diferente. Para executar essa função, configure os seguintes valores:Parameter 1(input): user.country , Value: "US" , Parameter 2 (output): user.employeeid e Parameter 3 (output if there's no match): user.extensionattribute1 |
Extract() – Após a correspondência | Retorna a substring após ela corresponder ao valor especificado. Por exemplo, se o valor da entrada for Finance_BSimon , o valor correspondente é Finance_ e a saída da declaração será BSimon . |
Extract() – Antes da correspondência | Retorna a substring até ela corresponder ao valor especificado. Por exemplo, se o valor da entrada for BSimon_US , o valor correspondente é _US e a saída da declaração será BSimon . |
Extract() – Entre a correspondência | Retorna a substring até ela corresponder ao valor especificado. Por exemplo, se o valor da entrada for Finance_BSimon_US , o primeiro valor correspondente é Finance_ , o segundo valor correspondente é _US e a saída da declaração será BSimon . |
ExtractAlpha() – Prefixo | Retorna a parte alfabética do prefixo da cadeia de caracteres. Por exemplo, se for BSimon_123 , o valor da entrada retornará BSimon . |
ExtractAlpha() – Sufixo | Retorna a parte alfabética do sufixo da cadeia de caracteres. Por exemplo, se for 123_Simon , o valor da entrada retornará Simon . |
ExtractNumeric() – Prefixo | Retorna a parte numérica do prefixo da cadeia de caracteres. Por exemplo, se for 123_BSimon , o valor da entrada retornará 123 . |
ExtractNumeric() – Sufixo | Retorna a parte numérica do sufixo da cadeia de caracteres. Por exemplo, se for BSimon_123 , o valor da entrada retornará 123 . |
IfEmpty() | Gera um atributo ou constante se a entrada for nula ou vazia. Por exemplo, se você quiser gerar um atributo armazenado em um atributo de extensão no caso de a ID de funcionário de um determinado usuário estar vazia. Para executar essa função, configure os seguintes valores: Parameter 1(input): user.employeeid , Parameter 2 (output): user.extensionattribute1 e Parameter 3 (output if there's no match): user.employeeid . |
IfNotEmpty() | Gera um atributo ou constante se a entrada não for nula ou vazia. Por exemplo, se você quiser gerar um atributo armazenado em um atributo de extensão no caso de a ID de funcionário de um determinado usuário não estar vazia. Para executar essa função, configure os seguintes valores: Parameter 1(input): user.employeeid e Parameter 2 (output): user.extensionattribute1 . |
Substring() - Comprimento Fixo | Extrai partes de um tipo de declaração de cadeia de caracteres, iniciando pelo caractere na posição especificada e retorna o número especificado de caracteres. O sourceClaim é a origem da declaração da transformação que deve ser executada. O StartIndex é o caractere inicial com base em zero de uma substring nessa instância. O Length é o comprimento em caracteres da substring. Por exemplo, sourceClaim - PleaseExtractThisNow , StartIndex - 6 e Length - 11 produz uma saída de ExtractThis . |
Substring() - EndOfString | Extrai partes de um tipo de declaração de cadeia de caracteres, iniciando pelo caractere na posição especificada e retorna o restante da declaração do índice inicial especificado. O sourceClaim é a origem da declaração da transformação que deve ser executada. O StartIndex é o caractere inicial com base em zero de uma substring nessa instância. Por exemplo, sourceClaim - PleaseExtractThisNow e StartIndex - 6 produz uma saída de ExtractThisNow . |
RegexReplace() | Para obter mais informações sobre a transformação de declarações baseadas em regex, consulte a próxima seção. |
Transformação de declarações baseadas em Regex
A imagem a seguir mostra um exemplo do primeiro nível de transformação:
As ações listadas na tabela a seguir fornecem informações sobre o primeiro nível de transformações e correspondem aos rótulos na imagem anterior. Selecionar Editar para abrir a folha de transformação de declarações.
Ação | Campo | Descrição |
---|---|---|
1 |
Transformation |
Selecione a opção RegexReplace() nas opções Transformação para usar o método de transformação de declarações baseada em regex para transformação de declarações. |
2 |
Parameter 1 |
A entrada para a transformação de expressão regular. Por exemplo, user.mail que tem um endereço de email do usuário, como admin@fabrikam.com . |
3 |
Treat source as multivalued |
Alguns atributos de usuário de entrada podem ser atributos de usuário de vários valores. Se o atributo de usuário selecionado der suporte a vários valores e o usuário quiser usar vários valores para a transformação, precisará selecionar Tratar a fonte como múltiplos valores. Se selecionado, todos os valores serão usados para a correspondência regex, caso contrário, somente o primeiro valor será usado. |
4 |
Regex pattern |
Uma expressão regular que é avaliada em relação ao valor do atributo de usuário selecionado como Parâmetro 1. Por exemplo, uma expressão regular para extrair o alias do usuário do endereço de email do usuário seria representado como (?'domain'^.*?)(?i)(\@fabrikam\.com)$ . |
5 |
Add additional parameter |
Mais de um atributo de usuário pode ser usado para a transformação. Os valores dos atributos seriam mesclados com a saída da transformação regex. Há suporte para até mais cinco parâmetros. |
6 |
Replacement pattern |
O padrão de substituição é o modelo de texto, que contém espaços reservados para o resultado regex. Todos os nomes de grupo precisam ser encapsulados dentro das chaves, como {group-name} . Digamos que a administração queira usar o alias de usuário com algum outro nome de domínio, por exemplo, xyz.com e mesclar o nome do país/região com ele. Nesse caso, o padrão de substituição seria {country}.{domain}@xyz.com , em que {country} é o valor do parâmetro de entrada e {domain} é a saída do grupo da avaliação de expressão regular. Num caso destes, o resultado esperado será US.swmal@xyz.com . |
A imagem a seguir mostra um exemplo do segundo nível de transformação:
A tabela a seguir fornece informações sobre o segundo nível de transformações. As ações listadas na tabela correspondem aos rótulos na imagem anterior.
Ação | Campo | Descrição |
---|---|---|
1 |
Transformation |
As transformações de declarações baseadas em Regex não se limitam à primeira transformação e podem ser usadas como a transformação de segundo nível. Qualquer outro método de transformação pode ser usado como a primeira transformação. |
2 |
Parameter 1 |
Se o RegexReplace() for selecionado como uma transformação de segundo nível, a saída da transformação de primeiro nível é usada como uma entrada para a transformação de segundo nível. Para aplicar a transformação, a expressão de segundo nível da regex deve corresponder à saída da primeira transformação. |
3 |
Regex pattern |
Padrão Regex é a expressão regular da transformação de segundo nível. |
4 |
Parameter input |
Entradas de atributo de usuário para as transformações de segundo nível. |
5 |
Parameter input |
Os administradores podem excluir o parâmetro de entrada selecionado se não precisar mais dele. |
6 |
Replacement pattern |
O padrão de substituição é o modelo de texto, que contém espaços reservados para o nome do grupo de resultados regex, o nome do grupo de parâmetros de entrada e o valor de texto estático. Todos os nomes de grupo precisam ser encapsulados dentro das chaves, como {group-name} . Digamos que a administração queira usar o alias de usuário com algum outro nome de domínio, por exemplo, xyz.com e mesclar o nome do país/região com ele. Nesse caso, o padrão de substituição seria {country}.{domain}@xyz.com , em que {country} é o valor do parâmetro de entrada e {domain} é a saída do grupo da avaliação de expressão regular. Num caso destes, o resultado esperado será US.swmal@xyz.com . |
7 |
Test transformation |
A transformação RegexReplace() será avaliada somente se o valor do atributo de usuário selecionado como Parâmetro 1 corresponder à expressão regular fornecida na caixa de texto Padrão Regex. Se eles não corresponderem, o valor de declaração padrão será adicionado ao token. Para validar a expressão regular em relação ao valor do parâmetro de entrada, uma experiência de teste está disponível na folha de transformação. Essa experiência de teste opera somente em valores fictícios. Quando mais parâmetros de entrada são usados, o nome do parâmetro é adicionado ao resultado do teste em vez do valor real. Para acessar a seção de teste, selecione Transformação de teste. |
A imagem abaixo mostra um exemplo do teste de transformações:
A tabela a seguir fornece informações sobre o teste de transformações. As ações listadas na tabela correspondem aos rótulos na imagem anterior.
Ação | Campo | Descrição |
---|---|---|
1 |
Test transformation |
Selecione o botão fechar ou (X) para ocultar a seção de teste e renderize novamente o botão Testar transformação na folha. |
2 |
Test regex input |
Aceita a entrada usada para a avaliação de teste de expressão regular. Caso a transformação de declarações baseada em regex esteja configurada como uma transformação de segundo nível, forneça um valor que seja a saída esperada da primeira transformação. |
3 |
Run test |
Depois que a entrada regex de teste for fornecida e o padrão Regex, o Padrão de substituição e os Parâmetros de entrada forem configurados, a expressão poderá ser avaliada selecionando Executar teste. |
4 |
Test transformation result |
Se a avaliação for bem-sucedida, uma saída da transformação de teste será renderizada em relação no rótulo Resultado de transformação de teste. |
5 |
Remove transformation |
A transformação de segundo nível pode ser removida selecionando Remover transformação. |
6 |
Specify output if no match |
Quando um valor de entrada regex é configurado em relação ao Parâmetro 1 que não corresponde à Expressão regular, a transformação é ignorada. Nesses casos, o atributo de usuário alternativo pode ser configurado, que é adicionado ao token para a declaração marcando Especificar saída se não houver correspondência. |
7 |
Parameter 3 |
Se um atributo de usuário alternativo precisar ser retornado quando não houver correspondência e Especificar a saída se não houver nenhuma correspondência estiver marcado, um atributo de usuário alternativo poderá ser selecionado usando a lista suspensa. Essa lista suspensa está disponível em Parâmetro 3 (saída se não houver correspondência). |
8 |
Summary |
Na parte inferior da folha, é exibido um resumo completo do formato que explica o significado da transformação em texto simples. |
9 |
Add |
Depois que as definições de configuração da transformação forem verificadas, ela poderá ser salva em uma política de declarações selecionando Adicionar. Selecione Salvar na folha Gerenciar Declaração para salvar as alterações. |
A transformação RegexReplace() também está disponível para as transformações de declarações de grupo.
Validações de transformação RegexReplace()
Quando as seguintes condições ocorrem após selecionar Adicionar ou Executar teste, será exibida uma mensagem que fornece mais informações sobre o problema:
- Os parâmetros de entrada com atributos de usuário duplicados não são permitidos.
- Parâmetros de entrada não utilizados encontrados. Os parâmetros de entrada definidos devem ter o respectivo uso no texto de padrão de substituição.
- A entrada de regex de teste fornecida não corresponde à expressão regular fornecida.
- A origem dos grupos no padrão de substituição não foi encontrada.
Adicione a declaração UPN aos tokens SAML
A declaração http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
faz parte do conjunto de declarações restritas do SAML. Se você tiver a chave de assinatura personalizada configurada, poderá adicioná-la na seção Atributos e declarações.
Caso não haja nenhuma chave de assinatura personalizada configurada, confira Conjunto de declarações restritas do SAML. Você pode adicioná-la como uma declaração opcional usando os Registros de aplicativo no portal do Azure.
Abra o aplicativo em Registros de aplicativo, selecione Configuração de token e, em seguida, Adicionar declaração opcional. Selecione o tipo de token SAML, escolha upn na lista e clique em Adicionar para incluir a declaração no token.
A personalização feita na seção Atributos e declarações pode substituir as declarações opcionais no Registro de Aplicativo.
Emitir declarações com base em condições
Você pode especificar a origem de uma declaração com base no tipo de usuário e no grupo ao qual o usuário pertence.
O tipo de usuário pode ser:
- Qualquer – todos os usuários têm permissão para acessar o aplicativo.
- Membros: membro nativo do locatário
- Todos os convidados: o usuário é trazido de uma organização externa com ou sem o Microsoft Entra ID.
- Convidados do Microsoft Entra: o usuário convidado pertence a outra organização usando o Microsoft Entra ID.
- Convidados externos: o usuário convidado pertence a uma organização externa que não tem o Microsoft Entra ID.
Um cenário em que o tipo de usuário é útil é quando a origem de uma declaração é diferente para um convidado e um funcionário acessando um aplicativo. Você pode especificar que, se o usuário for um funcionário, o NameID será originado de user.email. Se o usuário for um convidado, o NameID será originado de user.extensionattribute1.
Para adicionar uma condição de declaração:
- Em Gerenciar declaração, expanda as Condições de declaração.
- Selecione o tipo de usuário.
- Selecione os grupos aos quais o usuário deve pertencer. Selecione até 50 grupos exclusivos em todas as declarações para um determinado aplicativo.
- Selecione a Origem em que a declaração vai recuperar o valor dela. Você pode selecionar um atributo de usuário na lista suspensa para o atributo de origem ou aplicar uma transformação ao atributo de usuário. Você também pode selecionar uma extensão de esquema de diretório antes de emiti-la como uma declaração.
A ordem na qual você adiciona as condições é importante. O Microsoft Entra primeiro avalia todas as condições com a origem Attribute
e depois avalia todas as condições com a origem Transformation
para decidir qual valor emitir na declaração. As condições com a mesma fonte são avaliadas de cima para baixo. O último valor que corresponde à expressão é emitido na declaração. As transformações como IsNotEmpty
e Contains
atuam como restrições.
Por exemplo, Brenda Fernandes é um usuário convidado no locatário da Contoso. Brenda pertence a outra organização que também usa o Microsoft Entra ID. Dada a configuração a seguir para o aplicativo Fabrikam, quando Brenda tenta entrar no Fabrikam, a plataforma de identidade da Microsoft avalia as condições.
Primeiro, a plataforma de identidade da Microsoft verifica se o tipo de usuário da Brenda é Todos os convidados. Como o tipo é Todos os convidados, a plataforma de identidade da Microsoft atribui a origem da declaração a user.extensionattribute1
. Em segundo lugar, a plataforma de identidade da Microsoft verifica se o tipo de usuário da Brenda é Convidados do Microsoft Entra. Como o tipo é Todos os convidados, a plataforma de identidade da Microsoft atribui a origem da declaração a user.mail
. Por fim, a declaração é emitida com um valor de user.mail
para Brenda.
Como outro exemplo, considere quando Brenda Fernandes tenta entrar e a configuração a seguir é usada. Todas as condições são avaliadas primeiro com a origem de Attribute
. Como o tipo de usuário de Brenda é Convidados do Microsoft Entra, user.mail
é atribuído como a origem da declaração. Em seguida, as transformações são avaliadas. Como Brenda é um convidado, user.extensionattribute1
agora é a nova fonte da declaração. Como Brenda está em Convidados do Microsoft Entra, user.othermail
agora é a nova fonte da declaração. Por fim, a declaração é emitida com um valor de user.othermail
para Brenda.
Como exemplo final, considere o que acontecerá se a Brenda não tiver um user.othermail
configurado ou se ele estiver vazio. Nos dois casos, a entrada de condição é ignorada e a declaração retorna para user.extensionattribute1
.
Opções avançadas de declarações SAML
Opções de declarações avançadas podem ser configuradas para os aplicativos SAML2.0 exporem a mesma declaração que tokens OIDC e vice-versa para aplicativos que pretendem usar a mesma declaração para tokens de resposta SAML2.0 e OIDC.
As opções de declaração avançadas podem ser configuradas marcando a caixa em Opções de declarações SAML avançadas na folha Gerenciar declarações.
A tabela a seguir lista outras opções avançadas que podem ser configuradas para um aplicativo.
Opção | Descrição |
---|---|
Anexar a ID do aplicativo ao emissor | Adiciona automaticamente a ID do aplicativo à declaração do emissor. Essa opção garante um valor de declaração exclusivo para cada instância quando há várias instâncias do mesmo aplicativo. Essa configuração será ignorada se uma chave de assinatura personalizada não estiver configurada para o aplicativo. |
Substituir declaração do público-alvo | Permite a substituição da declaração de público-alvo enviada ao aplicativo. O valor fornecido deve ser um URI absoluto válido. Essa configuração será ignorada se uma chave de assinatura personalizada não estiver configurada para o aplicativo. |
Incluir o formato do nome do atributo | Se selecionado, o Microsoft Entra ID adicionará um atributo chamado NameFormat que descreve o formato do nome para declarações restritas, principais e opcionais no aplicativo. Para obter mais informações, confira Tipo de política de mapeamento de declarações |