ADFS - Como ser específico em uma reivindicação de grupos

1

Como você especifica um determinado grupo de grupos para procurar e retornar na autenticação do ADFS em vez de procurar e retornar todos os grupos de usuários na mensagem de resposta?

Esta é uma pergunta em resposta a uma resposta dada por Jim B para esta pergunta: Obtendo grupos de usuários aninhados no ADFS

Jim disse: "Você deve ser específico no grupo que está procurando, em vez de retornar todos os grupos, além de problemas de segurança e desempenho no servidor, um grande número de grupos retornados pode fazer seu aplicativo rastrear. - Jim B 11 de agosto '15 às 18:25 "

    
por AJC 25.03.2016 / 18:05

1 resposta

0

Provavelmente, seria uma boa ideia ler primeiro como funcionam as regras de reivindicação. Eu encontrei os seguintes artigos de technet bastante úteis:

Reivindicações do AD FS 2.0 Iniciador da linguagem de regras

Entendendo a linguagem de regra de declaração no AD FS 2.0 & Maior

A versão curta é que você acaba agrupando várias regras de declaração que "armazenam" dados de consulta e ajustam / filtram os dados antes de realmente "emitir" a declaração com os grupos resultantes.

Aqui está um exemplo que usamos em nosso ambiente. Para essa parte confiável específica, queríamos retornar todas as associações de grupo começando com "myapp". incluindo grupos aninhados.

  • Regra 1: buscar o DN do usuário c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => add(store = "Active Directory", types = ("http://contoso.com/UserDN"), query = ";distinguishedName;{0}", param = c.Value);

  • Regra 2: Buscar todos os CNs de grupos aninhados usando o atributo de membro c1:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] && c2:[Type == "http://contoso.com/UserDN"] => add(store = "Active Directory", types = ("http://schemas.xmlsoap.org/claims/Group"), query = "(member:1.2.840.113556.1.4.1941:={1});cn;{0}", param = c1.Value, param = c2.Value);

  • Regra 3: filtre os grupos resultantes usando o Regex c:[Type == "http://schemas.xmlsoap.org/claims/Group", Value =~ "(?i)^myapp\."] => issue(claim = c);

por 25.03.2016 / 18:23

Tags