Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode usar essa regra nos Serviços de Federação do Active Directory (AD FS) quando precisar fazer um tipo de declaração de entrada específico e aplicar uma ação que determinará qual saída deve ocorrer com base nos valores na declaração de entrada. Ao usar essa regra, você passa ou filtra todas as declarações que correspondem à lógica da regra na tabela a seguir, com base em qualquer uma das opções configuradas na regra.
Opção de regras | Lógica de regras |
---|---|
Passagem de todos os valores de declaração | Se o tipo de declaração de entrada for igual ao tipo de declaração especificado e o valor for igual a qualquer valor, passe a declaração |
Passar apenas um valor de declaração específica | Se o tipo de declaração de entrada for igual ao tipo de declaração especificado e o valor for igual ao valor de declaração especificado, passe a declaração |
Passar apenas valores de declaração que correspondam a um valor de sufixo de email específico | Se o tipo de declaração de entrada for igual ao tipo de declaração especificado e o valor for igual ao valor do sufixo especificado, passe a declaração |
Transmitir apenas valores de reivindicação que começam com um valor específico | Se o tipo de declaração de entrada for igual ao tipo de declaração especificado e o valor começar com o valor de declaração especificado, passe a declaração por meio |
As seções a seguir fornecem uma introdução básica às regras de declaração e fornecem mais detalhes sobre quando usar essa regra.
Sobre regras de declaração
Uma regra de declaração representa uma instância da lógica de negócios que usará uma declaração de entrada, aplicará uma condição a ela (se x então y) e produzirá uma declaração de saída com base nos parâmetros de condição. A lista a seguir descreve dicas importantes que você deve saber sobre regras de declaração antes de ler mais neste tópico:
No snap-in Gerenciamento do AD FS, as regras de declaração só podem ser criadas usando modelos de regra de declaração
Regras de declaração processam declarações de entrada diretamente de um provedor de declarações (como o Active Directory ou outro Serviço de Federação) ou da saída das regras de transformação de aceitação em uma relação de confiança com o provedor de declarações.
As regras de declaração são processadas pelo mecanismo de emissão de declarações em ordem cronológica dentro de um determinado conjunto de regras. Ao definir precedência em regras, você pode refinar ou filtrar ainda mais as declarações geradas por regras anteriores dentro de um determinado conjunto de regras.
Modelos de regra de declaração sempre exigirão que você especifique um tipo de declaração de entrada. No entanto, você pode processar vários valores de declaração com o mesmo tipo de declaração usando uma única regra.
Para obter informações mais detalhadas sobre regras de declaração e conjuntos de regras de declaração, consulte a função de regras de declaração. Para obter mais informações sobre como as regras são processadas, consulte a função do mecanismo de declarações. Para obter mais informações sobre como os conjuntos de regras de declaração são processados, consulte A Função do Pipeline de Declarações.
Passagem de todos os valores de declaração
Ao usar essa ação, todos os valores de declaração de entrada para o tipo de declaração especificado são passados como declarações de saída. Por exemplo, quando o tipo de declaração de entrada é especificado como o tipo de declaração de função, todos os valores de declaração de entrada são copiados individualmente em novas declarações de saída com o tipo de saída de Função.
Filtrando uma declaração
No AD FS, o termo filtragem de declarações significa filtrar ou restringir valores de declarações recebidos, de modo que apenas determinados valores sejam transformados ou enviados como declarações de saída. É o modelo de regra Passar ou filtrar uma declaração de entrada que torna essa função possível. Dentro das propriedades dessa regra, você pode definir condições para filtrar valores de entrada para que somente os valores que atendem aos critérios especificados sejam passados.
Por exemplo, você pode usar essa regra para passar apenas declarações que correspondam ao o valor da declaração do Comprador quando o tipo de declaração de entrada corresponder ao tipo de declaração da Função, ou emita apenas declarações sobre o nome do usuário, mas não as declarações contendo cadastro de pessoas físicas do usuário.
Quando você usa uma condição de filtro com essa regra, todas as declarações de entrada são examinadas para determinar quais declarações correspondem aos critérios definidos pela regra. Todas as outras declarações são ignoradas para que somente os valores de declaração especificados que correspondam a um tipo de declaração selecionado passem.
Por exemplo, conforme mostrado na ilustração a seguir, quando uma regra é definida com a condição de filtrar apenas as declarações de entrada que são chaveadas para o tipo de declaração UPN e também terminam com @fabrikam.com, todas as outras declarações de entrada são ignoradas, a menos que atendam a esses critérios. Isso inclui a declaração de entrada com o tipo de declaração Endereço de email, mesmo que o valor da declaração termine com @fabrikam.com. Nesse caso, somente a declaração que contém o valor de Nick@fabrikam.com é enviada para a parte confiável.
Configurando essa regra em uma relação de confiança do provedor de declarações
Quando você usa uma relação de confiança do provedor de declarações, essa regra pode ser ajustada para passar apenas as declarações de entrada do provedor de declarações que correspondam a determinados critérios. Por exemplo, talvez você queira aceitar apenas declarações de email do provedor de declarações; portanto, você usaria esse modelo de regra para aceitar tipos de declaração de email que terminam no nome DNS (Sistema de Nomes de Domínio) do provedor de declarações.
Configurando essa regra em um objeto de confiança de terceira parte confiável
Quando você usa um objeto de confiança de terceira parte confiável, essa regra pode ser configurada para passar ou filtrar declarações de saída que serão enviadas para a terceira parte confiável. Algumas partes confiáveis podem não entender determinados tipos de declaração ou determinadas declarações podem conter informações confidenciais que não devem ser enviadas a determinadas partes confiáveis. Esse modelo de regra pode ajudar a impor essas políticas para um objeto de confiança de terceira parte confiável específico.
Como criar essa regra
Crie essa regra usando a linguagem de regra de declaração ou o modelo de regra Passar ou filtrar uma declaração de entrada no snap-in de gerenciamento do AD FS. Este modelo de regra fornece as seguintes opções de configuração:
Especificar um nome de regra de declaração
Especificar um tipo de reivindicação de entrada
Passagem de todos os valores de declaração
Passar apenas um valor de declaração específica
Passar apenas valores de declaração que correspondam a um valor de sufixo de email específico
Transmitir apenas valores de reivindicação que começam com um valor específico
Para obter mais instruções sobre como criar esse modelo, consulte Criar uma regra para passar ou filtrar uma declaração de entrada no Guia de Implantação do AD FS.
Usando linguagem de regra de declaração
Se uma declaração deve ser enviada somente quando o valor da declaração corresponde a um padrão personalizado, você deve usar uma regra personalizada. Para obter mais informações, consulte Quando usar uma regra personalizada.
Exemplos de como construir uma sintaxe de regra de passagem ou filtro
Uma regra de filtragem simples filtraria declarações com base em uma das propriedades descritas acima. Por exemplo, a seguinte regra passará por todas as declarações de email:
c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"] => issue(claim = c);
Filtros podem ser logicamente unidos por AND. Por exemplo, a regra a seguir aceitará todas as declarações de email com valor johndoe@fabrikam.com:
c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", value == "johndoe@fabrikam.com "] => issue(claim = c);
Nos exemplos acima, os filtros sempre usaram um operador de igualdade. O idioma da regra de declaração dá suporte aos seguintes operadores:
== - igual a (diferencia maiúsculas de minúsculas)
== - diferente de (diferencia maiúsculas de minúsculas)
=~- correspondência de expressão regular
!~ - não correspondência de expressão regular
Por exemplo, a regra a seguir aceitará todas as declarações de email não emitidas pelo servidor de federação local que têm um sufixo de boeing.com:
c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", value =~ "^.*@boeing\.com$" , issuer != "LOCAL AUTHORITY"] => issue(claim = c);
Práticas recomendadas para criar regras personalizadas
Um filtro pode ser aplicado a uma ou mais das propriedades de cada declaração, conforme descrito na tabela a seguir.
Reivindicar Propriedade | Descrição |
---|---|
Tipo | O tipo de declaração (geralmente representado como um Uri) reflete um acordo implícito entre parceiros em uma Federação sobre que tipo de informação é transmitida na declaração. Por exemplo, declarações do tipo http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress conterão o endereço de email do usuário. |
Valor | O valor da reivindicação. Por exemplo, uma declaração de tipo http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress pode ter um valor de johndoe@fabrikam.com |
Tipo de valor | O ValueType representa como as informações contidas no Valor da declaração devem ser interpretadas. Normalmente, o ValueType será definido como http://www.w3.org/2001/XMLSchema#string, mas o valor da declaração pode conter dados codificados em Base64Binary (por exemplo, uma imagem) ou uma data, booliano e assim por diante. |
Emissor | O emissor representa a parte que emitiu as declarações sobre o usuário pela última vez. Se as declarações forem obtidas em um servidor de federação do provedor de declarações, o emissor de todas as declarações será definido como "AUTORIDADE LOCAL". Se as declarações foram recebidas por um servidor de federação do Provedor de Federações, o emissor das declarações será definido como o identificador do provedor de declarações do provedor de declarações que assinou o token. Assim, durante o processamento de regras de declarações recebidas de um provedor de declarações, o emissor de todas as declarações será definido como o mesmo valor. Ao criar regras para uma terceira parte confiável, a propriedade do emissor pode ser usada para distinguir entre reivindicações originadas de diferentes provedores de reivindicações. |
Emissor original | Essa propriedade de declaração deve transmitir o servidor de federação emitiu originalmente a declaração. Como a propriedade 'emissor' das declarações é definida pelo último servidor de federação que assinou o token, o emissor original é útil em cenários em que uma declaração passou por mais de um servidor de federação (por exemplo, uma parte confiável que recebe um token de um servidor de federação de um provedor de federação pode estar interessada em qual servidor de federação de um provedor de declarações autenticou o usuário) |
Propriedades | Além das cinco propriedades descritas acima, cada declaração também tem um recipiente de propriedades no qual as propriedades nomeadas podem ser armazenadas. Essas propriedades não são serializadas no token e só fazem sentido para passar informações entre componentes do pipeline de emissão de declarações no escopo de um único servidor federado. Por exemplo, configuração de uma propriedade durante processamento de regras do provedor de declarações e depois fazer referência a ela nas regras da terceira parte confiável. |