AD FS - Enviar atributos do AD para o Shibboleth SP

4

Eu tenho um provedor de declarações do AD FS configurado e um SP do Shibboleth autenticando-se com êxito contra ele. Quando eu entro no site protegido pelo Shibboleth, o índice mostra todos os cabeçalhos. Estou recebendo o UPN como esperado, mas não consigo obter outros atributos como sobrenome ou sAMAccountName para enviar.

Atualmente, tenho três regras de reivindicações:

Regra1:

Regra 2:

Regra3:

Nos logs da máquina do Shibboleth SP, não parece que o sn está sendo enviado como um atributo OID.

Se eu editar o atributo-map.xml e remover as referências ao eppn, obtenho o seguinte no log do shibd:

2015-06-23 11:29:08 INFO Shibboleth.AttributeExtractor.XML [1]: skipping unmapped SAML 2.0 Attribute with Name: urn:oid:1.3.6.1.4.1.5923.1.1.1.6

Não há menção semelhante à saída acima sobre o sobrenome ou sn no log do shibd, o que me faz acreditar que a regra "Transform SN" não está escrita corretamente.

INFORMAÇÕES ATUALIZADAS:

Consegui que o sobrenome funcionasse alterando a regra 1 da digitação manual em sn para a seleção da opção de lista suspensa surname . O que preciso fazer para que outros campos do AD sem menu suspenso sejam selecionados para funcionar?

Estou adicionando campos como streetAddress . Para a regra 1, digitei manualmente o endereço de rua para o atributo LDAP e o tipo de declaração de saída.

Em seguida, adicionei uma regra adicional:

c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress"]
 => issue(Type = "urn:oid:2.5.4.232", Value = c.Value, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri");

Não sei se http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress está correto ou não, mas o valor não está sendo mapeado.
Como obtenho atributos LDAP que não podem ser selecionados no menu suspenso para trabalhar?

Editar 2:

Esqueci de adicionar o resultado da seleção de View Rule Language (conforme solicitado por Matthieu abaixo):

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
 => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", "streetaddress"), query = ";userPrincipalName,sn,givenName,sAMAccountName,streetaddress;{0}", param = c.Value);

Parece que ele está recebendo apenas streetaddress , enquanto todos os outros valores têm um esquema para eles. Como não há esquema, ele não corresponderá à regra de transformação para streetaddress porque a instrução if está procurando por http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress . O que devo fazer para valores que não são selecionados na seleção suspensa?

Eu descobri:

Alterei a regra de transformação para o seguinte:

 c:[Type == "streetaddress"]
     => issue(Type = "urn:oid:2.5.4.232", Value = c.Value, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri");

Em vez de procurar Type == Um esquema, acabei de colocar o endereço da rua. Então, no Shibboleth SP, eu mudei o Attribute-map.xml para adicionar isto:

<Attribute name="urn:oid:2.5.4.232" id="streetaddress"/>

OID acima foi arbitrário.

    
por OrangeGrover 23.06.2015 / 20:36

1 resposta

2

Para verificar se sua regra "Transform SN" funciona como o esperado, instale o Fiddler . Em seguida, instale este inspetor para facilitar a leitura de mensagens SAML. p>

Com essas ferramentas, você poderá ver o que é enviado do servidor do ADFS para o SP do Shibboleth. Então você saberá de que lado está o erro de configuração.

Editar: na tela 1, na parte inferior da janela, o que você vê quando clica no botão "View Rule Language"? Você digitou "sn" manualmente na caixa "Tipo de declaração de saída" à direita?

Editar 2: o que você digita na caixa é exatamente o que é usado como um tipo de declaração. Se você digitar "foo", seu tipo de declaração será "foo". Se você quiser " link ", então você tem que digitar " link ". Se você precisar de um tipo de reivindicação longo, em vez de digitar tudo na caixa, crie uma nova descrição da reivindicação (navegue na árvore à esquerda, "AD FS" - > "Serviço" - > "Solicitar descrições"). Isso cria uma nova opção no menu suspenso, mais simples de usar.

    
por 24.06.2015 / 13:20