Ir para o conteúdo

Configurando os Serviços de Federação do Active Directory Usando WS-Federation

O Vinyl pode ser integrado aos Serviços de Federação do Active Directory (AD FS) usando o protocolo WS-Federation Passive. O protocolo WS-Federation Passive define as seguintes funções operacionais:

Ator Função
Vinyl Parte confiável
AD FS Provedor de identidade (IdP) / Serviço de token de segurança (STS)
Usuário Solicitante passivo

A configuração envolve os seguintes procedimentos:

  1. Crie um provedor de segurança de Vinyl para AD FS
  2. Crie um AD FS Relying Party Trust para Vinyl

Requisitos

Para prosseguir, você precisará do seguinte:

  • Acesso de administrador ao AD FS.
  • Acesso de administrador ao Vinyl.
  • O Vinyl precisará se conectar ao AD FS via HTTPS para recuperar o documento de metadados. O AD FS deve usar um certificado TLS com uma raiz confiável: o Vinyl não poderá recuperar o documento de metadados se o certificado não for confiável ou for inválido.
  • O Vinyl deverá estar disponível via HTTPS. O provedor de segurança Exigir HTTPS deve estar habilitado (ou outras medidas tomadas para garantir que o Vinyl seja acessível apenas via HTTPS).
  • As máquinas clientes precisarão ser configuradas para confiar no AD FS. Caso contrário, o AD FS solicitará que o usuário entre.

As instruções abaixo se referirão às seguintes propriedades:

Exemplo Notas
URL de Vinyl https://example.com/Vinyl/ O Vinyl deve ser acessível via HTTPS. O URL deve incluir a barra final. O caminho diferencia maiúsculas de minúsculas.
Nome do provedor ExemploADFS Cada provedor de segurança do Vinyl recebe um nome lógico. Como o nome do provedor aparecerá na URL do protocolo passivo (veja abaixo), evite espaços, pontuação e caracteres especiais.
URL do protocolo passivo https://example.com/Vinyl/signin-ExampleADFS O Vinyl provisiona automaticamente um endpoint de protocolo passivo para provedores de segurança da WS-Federation. Observe que o nome do provedor aparece na URL.
URL do documento de metadados da federação https://fs.example.com/FederationMetadata/2007-06/FederationMetadata.xml A URL do documento de metadados de federação pode ser recuperada do AD FS. Para fazer isso, inicie o console de gerenciamento do AD FS. Selecione AD FS → Serviço → Endpoints. Localize o endpoint dos Metadados de Federação de Tipo.
Público https://example.com/Vinyl/signin-ExampleADFS Um valor Audience é altamente recomendado para limitar o escopo da autenticação. Considere usar o URL do protocolo passivo.
Wtrealm https://example.com/Vinyl/signin-ExampleADFS Embora o Wtrealm seja arbitrário, o AD FS e o Vinyl devem usar o mesmo valor. Considere usar o URL do protocolo passivo.

Crie um Provedor de Segurança de Vinyl para AD FS

Para criar o Provedor de Segurança, comece entrando no Vinyl como administrador:

  1. Navegue até o IDE
  2. Selecione o botão Provedores de segurança
  3. No painel Autenticação do usuário, clique no botão + Autenticação do usuário
  4. Forneça o seguinte:

    • Nome: Security Provider Name (Veja acima)

      Exemplo: ExemploADFS

    • Tipo: WS-Federation

    • Ativado: Verifique
    • Provisionamento de usuários: marque para ativar o provisionamento de usuários Just-in-Time (JIT).
    • Associação ao grupo de suprimentos: verifique se o AD FS foi configurado para passar a associação ao grupo de usuários.
    • Mostrar no formulário de login: Verifique
  5. Clique no botão Salvar

  6. No painel Propriedades, clique no botão + Propriedade
  7. Forneça o seguinte:

    • Parâmetro: MetadataAddress
    • Valor: Federation Metadata Document URL (Veja acima).

      Exemplo: https://fs.example.com/FederationMetadata/2007-06/FederationMetadata.xml

  8. Clique no ícone Salvar (Verificar)

  9. No painel Propriedades, clique no botão + Propriedade
  10. Forneça o seguinte:

    • Parâmetro: Wtrealm
    • Valor: Wtrealm (Veja acima).

      Exemplo: https://example.com/Vinyl/signin-ExampleADFS

  11. Clique no ícone Salvar (Verificar)

  12. No painel Propriedades, clique no botão + Propriedade
  13. Forneça o seguinte:

    • Parâmetro: Público
    • Valor: Público (veja acima).

      Exemplo: https://example.com/Vinyl/signin-ExampleADFS

  14. Clique no ícone Salvar (Verificar)

Além disso, quaisquer declarações mapeadas no AD FS precisarão ser mapeadas no Vinyl. Por exemplo, para mapear a declaração email:

  1. No painel Reclamações, clique no botão + Reivindicação
  2. Forneça o seguinte:

    • Identificador: nome do tipo de declaração.\

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

    • Uso: uso do tipo de declaração.\

      Exemplo: * Endereço de Email *

  3. Clique no ícone Salvar (Verificar)

Crie uma Entidade Confiável do AD FS para Vinyl

Cada instância do Vinyl deve ser registrada no AD FS como um trust de terceira parte confiável. Os detalhes completos da criação, configuração e manutenção de relações de confiança de terceiros estão fora do escopo deste documento. Para obter informações adicionais que descrevem como criar uma terceira parte confiável do AD FS, consulte o seguinte artigo do TechNet:

https://technet.microsoft.com/en-ca/library/dd807108.aspx

A criação de uma confiança de terceira parte confiável requer as seguintes informações:

  • Protocolo: WS-Federation Passivo
  • URL do protocolo passivo WS-Federation da parte confiável: Corresponde ao Passive Protocol URL (Veja acima).\

    Exemplo: https://example.com/Vinyl/signin-ExampleADFS

  • Identificador de confiança da parte confiável: corresponde ao Wtrealm propriedade (veja acima).\

    Exemplo: https://example.com/Vinyl/signin-ExampleADFS

Criar um URL de Endpoint do AD FS para Vinyl

Cada instância do Vinyl deve ser registrada no AD FS como um endpoint. Crie um endpoint na aba Endpoints no AD FS da seguinte maneira:

  1. Clique no botão Adicionar WS-Federation.
  2. Defina o endpoint como padrão (caixa de seleção).
  3. URL confiável: Corresponde à propriedade Wtrealm (veja acima).

    Exemplo: https://example.com/Vinyl/signin-ExampleADFS

Mapeamentos de Reivindicações (opcional)

Você também pode fornecer mapeamentos de declarações opcionais. O seguinte artigo do TechNet descreve como criar regras de declaração de confiança de terceira parte confiável do AD FS:

https://technet.microsoft.com/en-us/library/dd807115.aspx

As reivindicações comumente mapeadas incluem:

  • Endereço Email - http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  • Associação ao grupo - http://schemas.xmlsoap.org/claims/Group

Consulte Reivindicações para obter informações adicionais sobre reivindicações.

Solução de Problemas

Definições de Configuração

Nota

Suas definições de configuração podem variar dos exemplos fornecidos neste artigo, dependendo do seu ambiente exato. Por exemplo, dependendo de como seu App Pool está configurado, você pode estar usando demo.zudy.com/signin-AD ou demo.zudy.com/vinyl/signin-AD.

O URL pode ser: http://example.com/Vinyl/service/authentication/external?returnUrl=...

Revise o log de eventos do Windows. Especificamente, verifique o log do aplicativo para avisos do ASP.Net com um ID de evento 1309. Você pode encontrar uma entrada com a seguinte mensagem de exceção:

Unable to get document from: https://fs.example.com/FederationMetadata/2007-06/FederationMetadata.xml

Isto indica que o Vinyl não conseguiu recuperar o Documento de Metadados da Federação. Certifique-se de que o servidor Web do Vinyl seja capaz de estabelecer uma conexão HTTPS com o endpoint do documento de metadados do AD FS. Certifique-se também de que o certificado TLS seja válido. Se o certificado não estiver assinado por uma raiz confiável, você poderá registrá-lo manualmente.

“erro de Tempo de Execução” Após Entrar no AD FS

O URL pode ser: http://example.com/Vinyl/signin-ADFS

Revise o log de eventos do Windows. Especificamente, verifique o log do aplicativo em busca de avisos do ASP.Net com um ID de evento 1309. Você pode encontrar uma entrada com uma das seguintes mensagens de exceção.

Reivindicação Ausente

The identity does not contain a claim matching the given type.

Isso indica que falta uma ou mais declarações obrigatórias na asserção SAML. Revise a configuração da regra de declaração.

Público Inválido

IDX10214: Audience validation failed. Audiences: 'https://example.com/Vinyl'. Did not match:  validationParameters.ValidAudience: 'https://example.com/Vinyl/' or validationParameters.ValidAudiences: 'null'

Isso indica que a asserção SAML possui uma restrição de público inválida. Neste exemplo específico, o público está perdendo a barra final. Certifique-se de que o identificador de confiança da terceira parte confiável esteja correto.

Execute o seguinte comando do PowerShell no servidor AD FS para imprimir as configurações de confiança da terceira parte confiável:

> Get-ADFSRelyingPartyTrust -Identifier https://example.com/Vinyl/signin-ADFS`

The Identifier argument corresponds to the URL de protocolo passivo (conforme descrito acima).

Ausência de Associação ao Grupo

Por padrão, o ADFS não inclui declarações de grupo em declarações SAML. Os administradores devem criar uma ou mais regras de declaração para incluir a associação ao grupo. É possível criar uma única regra de declaração que inclua todos os membros do grupo. No entanto, usando a regra interna de "Reivindicação de Grupo" do ADFS, é necessária uma regra separada para cada grupo.

O artigo a seguir descreve como incluir membros de grupos que correspondam a uma expressão regular (por exemplo, grupos começando com "Vinyl"):

http://social.technet.microsoft.com/wiki/contents/articles/8008.ad-fs-2-0-selectively-send-group-membership-s-as-a-claim.aspx

O artigo a seguir descreve como usar expressões regulares em regras de transformação de declarações:

http://social.technet.microsoft.com/wiki/contents/articles/16161.ad-fs-2-0-using-regex-in-the-claims-rule-language.aspx

Configuração de Reivindicações Ausente Ou Incorreta

A seguinte mensagem de erro pode ser vista após a autenticação:

The user account (`<nome de usuário>`) has successfully signed in, but no available landing page has been configured for their applications.

Isso indica a configuração bem-sucedida do provedor de segurança e do final do AD FS, mas significa que as declarações ainda não foram configuradas ou precisam ser corrigidas.

Revise as declarações passadas de volta ao Vinyl a partir do ADFS (certifique-se de que as declarações da loja estejam marcadas) para garantir que as declarações corretas estejam sendo passadas (associações a grupos, atributos personalizados) para o Vinyl e que elas possam então ser mapeadas na configuração das declarações do provedor de segurança.