Resolução de problemas do AD FS: sintaxe das regras de declarações
Uma reivindicação é uma declaração que um sujeito faz sobre si mesmo ou sobre outro assunto. Uma parte confiável emite as declarações. Eles recebem um ou mais valores e, em seguida, são empacotados em tokens de segurança que o servidor dos Serviços de Federação do Ative Directory (AD FS) emite. Este artigo trata da sintaxe e da criação das declarações. Para obter informações sobre a emissão de declarações, consulte Solucionar problemas do AD FS.
Como são processadas as regras de reclamação
As regras de reivindicação são processadas pelo pipeline de reivindicações utilizando o motor de reivindicações . O mecanismo de declarações é um componente lógico do AD FS que examina o conjunto de declarações de entrada apresentadas por um usuário. Dependendo da lógica em cada regra, ele produz um conjunto de declarações resultantes.
Como criar uma regra de reivindicação
As regras de declaração são criadas separadamente para cada relação de confiança federada no AD FS. Eles não são compartilhados entre vários trusts. É possível:
- Crie uma regra a partir de um modelo de regra de declaração de .
- Comece do zero, elaborando a regra usando a linguagem de regras de declaração .
- Use o Windows PowerShell para personalizar uma regra.
Componentes da linguagem de regras de reivindicação
O idioma da regra de declaração consiste nos seguintes componentes, separados pelo operador " =>"
:
- Uma condição é usada para verificar as declarações de entrada e determinar se a declaração de emissão da regra deve ser executada. Ele representa uma expressão lógica que deve ser avaliada como true para executar a parte do corpo da regra.
- Uma declaração de emissão.
Aqui está um exemplo:
c:[type == "Name", value == "domain user"] => issue(type = "Role", value = "employee");
Esta alegação tem:
-
Condição:
c:[type == "Name", value == "domain user"]
avalia a declaração de entrada para saber se o nome da conta do Windows é um usuário de domínio. -
de emissão:
issue(type = "Role", value = "employee")
adiciona uma nova declaração à declaração de entrada com a função de funcionário, se a condição for verdadeira.
Para obter mais informações sobre declarações e a sintaxe, consulte A função da linguagem da regra de declaração.
Editor de regras de declarações
O editor de regras de declarações executa a verificação de sintaxe depois que você conclui a declaração e seleciona OK. Se você tiver a sintaxe incorreta, o editor informa.
Logs de eventos
Quando você tenta solucionar problemas de uma declaração usando os logs, a melhor abordagem é procurar a saída de declarações. Procura os eventos 1000 e 1001 no registo de eventos.
Criar um aplicativo de exemplo
Você também pode criar um aplicativo de exemplo que ecoa suas declarações. Por exemplo, você pode usar um aplicativo de exemplo e criar uma terceira parte confiável que tenha a mesma declaração que você está tentando solucionar e ver se o aplicativo tem algum problema com essa declaração.
Um bom aplicativo Web de exemplo está disponível. O app ecoa as declarações que recebe da parte confiável. Para usá-lo, edite o aplicativo web.config:
- Altere
https://app1.contoso.com/sampapp
para a URL usada para hospedar o aplicativo de exemplo. - Altere todas as instâncias de
sts.contoso.com
para apontarem para o seu servidor de AD FS. - Substitua a impressão digital existente pela sua impressão digital.
- Substitua os valores
decryptionKey
evalidationKey
por valores apropriados para o cenário.
Este artigo do blog tem instruções excelentes e detalhadas para configurar o aplicativo.