Regras e grupos de regras

Atualizado: 19 de junho de 2015

Aplica-se ao Azure

Em Microsoft Azure Active Directory Controle de Acesso (também conhecido como serviço de Controle de Acesso ou ACS), um grupo de regras é um conjunto nomeado de regras de declaração que definem quais declarações de identidade são passadas de provedores de identidade para seu aplicativo de terceira parte confiável. No ACS, os grupos de regras são associados a aplicativos de terceira parte confiável. Um grupo de regras pode ser usado por mais de um aplicativo de terceira parte confiável e um aplicativo de terceira parte confiável pode fazer referência a mais de um grupo de regras.

Quando o ACS recebe uma solicitação de token ou um token de um provedor de identidade, ele é executado por todos os grupos de regras associados ao aplicativo de terceira parte confiável para processar as declarações no token. Todos os grupos de regras são executados simultaneamente, assim como todas as regras em cada grupo de regras (a ordem não importa). Se as regras fizerem com que qualquer nova declaração seja emitida após o término da execução, os grupos de regras associados ao aplicativo de terceira parte confiável serão executados novamente. O processo de execução de grupo de regras e regras é interrompido quando nenhuma nova declaração é emitida após a conclusão do processo de execução ou após o ACS concluir dez execuções (o que vier primeiro).

Você pode criar e editar grupos de regras e regras manualmente, usando o Portal de Gerenciamento do ACS ou programaticamente, usando o Serviço de Gerenciamento do ACS.

Configurando regras com o Portal de Gerenciamento ACS

Criando grupos de regras

Ao adicionar e configurar as propriedades de um novo aplicativo de terceira parte confiável no Portal de Gerenciamento do ACS, você também pode criar um grupo de regras associado a esse aplicativo de terceira parte confiável, pois, por padrão, a opção Criar Novo Grupo de Regras é verificada na página Adicionar Aplicativo de Terceira Parte Confiável do Portal de Gerenciamento do ACS. É altamente recomendável que você mantenha essa opção selecionada e, consequentemente, crie um grupo de regras padrão para seu novo aplicativo de terceira parte confiável. (Para obter mais informações, consulte "Grupos de regras" em aplicativos de terceira parte confiável.) Você também pode adicionar grupos de regras usando a seção Grupos de Regras do Portal de Gerenciamento do ACS. Depois, à medida que adiciona aplicativos de terceira parte confiável usando a página Adicionar Aplicativo de Terceira Parte Confiável, você pode associá-los a um ou mais grupos de regras existentes.

Gerando regras

Depois que um grupo de regras for criado, você poderá usar a página Editar Grupo de Regras do Portal de Gerenciamento do ACS para gerar regras automaticamente. Se optar por gerar regras automaticamente, você precisará selecionar os provedores de identidade para os quais deseja gerar as regras. Quando o grupo de regras estiver vinculado a um ou mais aplicativos de terceira parte confiável, os provedores de identidade usados por esses aplicativos confiáveis são selecionados por padrão.

Observação

Para provedores de identidade do WS-Federation, uma regra é criada para cada tipo de declaração que é oferecida nos metadados do WS-Federation do provedor de identidade e essa regra passa o tipo de declaração e o valor. Para outros provedores de identidade, as regras de passagem são geradas com base em uma lista de tipos predeterminados de declaração.

Exibindo, adicionando e editando regras

A página Editar Grupo de Regras do Portal de Gerenciamento do ACS exibe todas as regras em uma tabela, em que as colunas incluem a Declaração de Saída da regra, o Emissor de Declaração (pode ser um provedor de identidade ou ACS) e uma Descrição.

Se clicar em uma determinada regra na tabela, você será redirecionado para a página Editar Regra de Declaração, onde a regra pode ser editada. Para adicionar uma nova regra manualmente, é possível clicar em Adicionar.

Regras de declaração

As regras de declaração descrevem a lógica de como o ACS transforma declarações de entrada em declarações de saída. As regras estão contidas em grupos de regras, que são associados a aplicativos de terceira parte confiável e são executados sempre que um token é emitido pelo ACS para um aplicativo. Se um grupo de regras não contiver regras, nenhum token é emitido para o aplicativo de terceira parte confiável. Normalmente, uma regra é necessária para cada tipo de declaração que deseja emitir para seu aplicativo de terceira parte confiável. É possível criar e usar apenas uma regra para passar por todos os tipos de declaração e valores. No entanto, usando uma regra por cada tipo de declaração melhora a segurança e proporciona maior controle sobre os dados que são passados para o seu aplicativo.

No ACS, você pode configurar uma regra para passar uma declaração recebida de um provedor de identidade ou cliente para o aplicativo de terceira parte confiável sem alterar o tipo, o emissor ou o valor da declaração. Essas regras são chamadas regras de passagem. Por exemplo, os tokens emitidos por Windows ID dinâmica (conta da Microsoft) contêm um tipo de declaração nameidentifier. Para passar essa declaração inalterada para o aplicativo de terceira parte confiável, você precisa configurar uma regra de passagem que processa o tipo de declaração nameidentifier de entrada do emissor da declaração, Windows ID dinâmica e cria uma declaração de saída idêntica.

A tabela a seguir ilustra as declarações sendo passadas por meio de um provedor de identidade fictício AD FS 2.0 chamado Contoso.com.

Declarações de entrada Declarações de saída

Emissor

Tipo

Valor

Emissor

Tipo

Valor

Contoso.com

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

123456789

Access Control Service

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

123456789

Contoso.com

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

john@contoso.com

Access Control Service

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

john@contoso.com

Contoso.com

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

John Doe

Access Control Service

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

John Doe

O mecanismo de regras ACS também fornece a capacidade de transformar declarações de entrada em declarações de saída totalmente diferentes, com base no emissor da declaração, no tipo de declaração de entrada e no valor. Em outras palavras, o mecanismo de regras acs permite que você transforme tokens de entrada em tokens de saída diferentes adicionando, removendo ou alterando as declarações que os tokens contêm. Essa forma de transformação de declarações torna o ACS capaz de implementar a autorização básica com base nos valores de entrada de declaração. O exemplo a seguir mostra um tipo de declaração de “função” com um valor de “administrador” sendo extraído se a declaração de entrada “nameidentifier” corresponder a um valor específico.

Declarações de entrada Declarações de saída

Emissor

Tipo

Valor

Emissor

Tipo

Valor

Contoso.com

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

123456789

Access Control Service

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

administrator

O mecanismo de regras acs também fornece a capacidade de criar declarações de saída com base em uma conjunção de duas declarações de entrada. No exemplo abaixo, a declaração de saída é do tipo “ação” com um valor de “gravação” se as declarações de entrada “nameidentifier” e “função” de Contoso.com corresponderem a valores específicos. Quando duas declarações de entrada são especificadas em uma regra, os dois valores devem corresponder para gerar a declaração de saída.

Declarações de entrada Declarações de saída

Emissor

Tipo

Valor

Emissor

Tipo

Valor

Contoso.com

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

123456789

Access Control Service

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/action

gravação

Contoso.com

https://schemas.xmlsoap.org/ws/2005/05/identity/claims/role

administrator

Para obter mais informações e etapas sobre como implementar a transformação de token usando regras, consulte Como implementar a lógica de transformação de token usando regras.

Ao adicionar regras de declaração novas ou editar existentes com o Portal de Gerenciamento do ACS, você deve definir as seguintes configurações:

Condições de regra (se) – Adicionar uma declaração de entrada

Esta seção contém as condições que devem ser verdadeiras para a regra emitir uma declaração de saída. A saber:

  • Emissor de declaração – refere-se à entidade que emitiu a declaração de entrada. Isso pode ser um provedor de identidade configurado (por exemplo, ) ou ACS. O ACS é o emissor se a declaração de entrada vem de uma identidade de serviço ou a declaração de entrada vem de outra regra de declaração. Para obter mais informações, consulte Identidades de Serviço.

  • Tipo de declaração de entrada – refere-se ao tipo de declaração de entrada recebida do emissor de declaração. Por exemplo, o tipo de declaração completo para o "nameidentifier" é https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier. As opções para esse campo incluem:

    • Qualquer – retorna true se o tipo de declaração for recebido do emissor.

    • Selecionar tipo – retorna true se o tipo de declaração de entrada corresponder ao tipo selecionado no menu suspenso. Esse menu é preenchido com os tipos de declaração disponíveis para o emissor de declaração selecionado.

    • Inserir tipo – retorna true se o tipo de declaração de entrada coincidir com o valor exato inserido no campo.

      Importante

      Esse campo diferencia maiúsculas de minúsculas.

  • Valor da declaração de entrada – refere-se ao valor da declaração de entrada recebido. Por exemplo, o tipo de declaração “nameidentifier” usa um endereço de email como seu valor e esse campo pode ser usado para verificar um endereço de email específico. As opções para esse campo incluem:

    • Qualquer – retorna true se algum valor de declaração for recebido do emissor.

    • Inserir valor – retorna true se o tipo de declaração de entrada coincidir com o valor exato inserido no campo. Essa opção exige que um tipo de declaração de entrada específica seja selecionada ou inserida no campo Tipo de Declaração de Entrada.

      Importante

      Esse campo diferencia maiúsculas de minúsculas.

Condições de regra (se) – adicionar uma segunda declaração de entrada

Para adicionar uma segunda declaração à regra, clique em Adicionar uma segunda declaração de entrada. Isso permite que você especifique as condições adicionais mostradas abaixo. Observe que, em uma regra com duas declarações de entrada, todas as condições devem ser verdadeiras para gerar uma declaração de saída.

  • Emissor de declaração – refere-se à entidade que emitiu a segunda declaração de entrada. Esse pode ser o mesmo provedor de identidade selecionado para a primeira declaração ou pode ser ACS. Selecione ACS para especificar declarações geradas de outras regras de declaração durante o processamento de regras.

    Importante

    Dois provedores de identidade diferentes não podem ser selecionados para a primeira e a segunda declarações, pois o processamento de regras só ocorre para um token emitido de um provedor de identidade por vez.

  • Tipo de declaração de entrada – refere-se ao tipo de declaração de entrada recebida do emissor de declaração. Por exemplo, o tipo de declaração completo para o "nameidentifier" é https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier. As opções para esse campo incluem:

    • Selecionar tipo – retorna true se o tipo de declaração de entrada corresponder ao tipo selecionado no menu suspenso. Esse menu é preenchido com os tipos de declaração disponíveis para o emissor de declaração selecionado.

    • Inserir tipo – retorna true se o tipo de declaração de entrada coincidir com o valor exato inserido no campo.

      Importante

      Esse campo diferencia maiúsculas de minúsculas.

  • Valor da declaração de entrada – refere-se ao valor da declaração de entrada recebido. Por exemplo, o tipo de declaração “nameidentifier” usa um endereço de email como seu valor e esse campo pode ser usado para verificar um endereço de email específico. Isso retorna true se o tipo de declaração de entrada coincidir com o valor exato inserido no campo.

    Importante

    Esse campo diferencia maiúsculas de minúsculas.

Ações de regra (então)

Esta seção especifica a declaração de saída emitida pelo ACS se as condições na seção If da regra forem verdadeiras. As opções de declaração de saída incluem o seguinte:

  • Tipo de declaração de saída — o tipo de declaração emitido pelo ACS. As opções para esse campo incluem o seguinte:

    • Tipo de declaração de entrada de passagem – emite uma declaração de saída que é do mesmo tipo que a declaração de entrada.

    • Selecionar tipo – emite uma declaração de saída do tipo especificado. O menu suspenso contém uma lista dos tipos comuns de declaração.

    • Inserir tipo – emite uma declaração do tipo inserido. Se a declaração de saída estiver presente em um token SAML, esse valor deverá ser um URI (por exemplo, https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier).

      Importante

      Esse campo diferencia maiúsculas de minúsculas.

  • Valor da declaração de saída — refere-se ao valor da declaração de saída emitida pelo ACS. As opções para esse campo incluem o seguinte:

    • Valor de declaração de entrada de passagem – emite uma declaração de saída com o valor idêntico ao valor de declaração de entrada.

    • Inserir valor – emite uma declaração que tem o valor inserido neste campo. Essa opção exige que um tipo de declaração de entrada específica seja selecionada ou inserida no campo Tipo de Declaração de Saída.

      Importante

      Esse campo diferencia maiúsculas de minúsculas.

Informações de regra

Você pode usar esta seção para criar uma descrição para uma regra.

Observação

No ACS, as descrições de regra não são criadas automaticamente para as regras geradas.

Configurando regras com o Serviço de Gerenciamento ACS

As regras em um namespace Controle de Acesso podem ser configuradas programaticamente usando o Serviço de Gerenciamento do ACS. Para obter um exemplo de como configurar regras usando ASP.NET, consulte Exemplo de Código: Serviço de Gerenciamento. Abaixo estão itens importantes a serem considerados ao usar o Serviço de Gerenciamento do ACS para configurar regras:

  • Ao editar e excluir regras em um grupo de regras, é recomendável que você primeiro consulte o ACS para todas as regras dentro desse grupo de regras e use as IDs de regra que sua consulta retorna para executar as operações de edição ou exclusão. Não é recomendável que você armazene as IDs retornadas pelo serviço de gerenciamento para operações futuras, pois não há garantia de que essas IDs irão persistir.

  • Se estiver escrevendo uma lógica de repetição automática para a criação de regras (como no caso de um tempo limite), é recomendável que você primeiro consulte a existência de uma regra idêntica no grupo de regras atual antes de tentar adicioná-la novamente.

Consulte Também

Conceitos

Componentes do ACS 2.0