Ir para o conteúdo

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

App Builder pode integrar com o Active Directory Federation Services (AD FS) usando o protocolo WS-Federation Passive. O protocolo WS-Federation Passive define as seguintes funções operacionais:

Ator Papel
App Builder 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. Criar an App Builder provedor de segurança para AD FS
  2. Crie uma AD FS Relying Party Trust para App Builder

Requisitos

Para prosseguir, você precisará do seguinte:

  • Acesso de administrador ao AD FS.
  • Acesso de administrador ao App Builder.
  • App Builder 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: App Builder não será capaz de recuperar o documento de metadados se o certificado não for confiável ou inválido.
  • App Builder precisará estar disponível via HTTPS. O provedor de segurança Require HTTPS deve ser habilitado (ou outras medidas devem ser tomadas para garantir que App Builder é acessível somente via HTTPS).
  • As máquinas cliente precisarão ser configuradas para confiar no AD FS. Caso contrário, o AD FS solicitará que o usuário faça login.

As instruções abaixo farão referência às seguintes propriedades:

Exemplo Notas
App Builder uRL https://example.com/App Builder/ App Builder deve ser acessível via HTTPS. A URL deve incluir a barra final. O caminho diferencia maiúsculas de minúsculas.
Nome do Provedor ExemploADFS Cada App Builder o provedor de segurança 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/App Builder/signin-ExemploADFS App Builder provisiona automaticamente um endpoint do Protocolo Passivo para provedores de segurança 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 da 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 do tipo Metadados da federação.
Público https://example.com/App Builder/signin-ExampleADFS Um valor Audience é altamente recomendado para limitar o escopo da autenticação. Considere usar o Passive Protocol URL.
Wtrealm https://example.com/App Builder/signin-ExampleADFS Embora o Wtrealm seja arbitrário, o AD FS e App Builder deve usar o mesmo valor. Considere usar o Passive Protocol URL.

Criar an App Builder provedor de Segurança para AD FS

Para criar o Provedor de Segurança, comece fazendo login em App Builder 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: ExampleADFS

    • Tipo: WS-Federation

    • Habilitado: Verificar
    • Provisionamento de usuário: Marque para habilitar o provisionamento de usuário Just-in-Time (JIT).
    • Associação de grupo de suprimentos: Verifique se o AD FS foi configurado para passar a associação de grupo de usuários.
    • Mostrar no formulário de login: Verificar
  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/App Builder/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/App Builder/signin-ExampleADFS

  14. Clique no ícone Salvar (Verificar)

Além disso, todas as declarações mapeadas no AD FS precisarão ser mapeadas em App Builder. Por exemplo, para mapear a reivindicação email:

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

    • Identificador: Nome do tipo de reivindicaçã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 Confiança de Terceira Parte Confiável do AD FS para App Builder

Cada instância de App Builder deve ser registrado no AD FS como um trust de terceira parte confiável. Os detalhes completos de criação, configuração e manutenção de trusts de terceira parte confiável estão fora do escopo deste documento. Para obter informações adicionais descrevendo como criar um trust de 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 um trust de 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/App Builder/signin-ExampleADFS

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

    Exemplo: https://example.com/App Builder/signin-ExampleADFS

Crie um URL de Endpoint do AD FS para App Builder

Cada instância de App Builder deve ser registrado no AD FS como um endpoint. Crie um endpoint na aba Endpoints no AD FS da seguinte forma:

  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/App Builder/signin-ExampleADFS

Mapeamentos de Reivindicações (opcional)

Você também pode fornecer mapeamentos de reivindicação opcionais. O seguinte artigo do TechNet descreve como criar regras de reivindicaçã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 de Grupo - http://schemas.xmlsoap.org/claims/Group

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

Solução de Problemas

Definições de Configuração

Nota

Suas configurações 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 lido como: http://example.com/App Builder/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 de 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

Isso indica que App Builder não foi possível recuperar o Documento de Metadados da Federação. Certifique-se de que o App Builder o servidor web é capaz de fazer 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 for assinado por uma raiz confiável, você pode registrá-lo manualmente.

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

O URL pode ser lido como: http://example.com/App Builder/signin-ADFS

Revise o Log de Eventos do Windows. Especificamente, verifique o log do aplicativo para avisos do ASP.Net com uma ID de evento de 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 a asserção SAML está sem uma ou mais declarações necessárias. Revise a configuração da regra de declaração.

Público Inválido

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

Isso indica que a asserção SAML tem uma restrição de público inválida. Neste exemplo em particular, o público não tem a barra final. Certifique-se de que o identificador de confiança da parte confiável esteja correto.

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

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

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

Associação de Grupo Ausente

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

O artigo a seguir descreve como incluir associação de grupo correspondente a uma expressão regular (por exemplo, grupos que começam com "App Builder"): 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 AD FS, mas significa que as declarações ainda não foram configuradas ou precisam ser corrigidas.

Revise as declarações passadas de volta para App Builder do ADFS (certifique-se de que Store Claims esteja marcado) para garantir que as reivindicações corretas estejam sendo passadas (associações de grupo, atributos personalizados) para App Builder e estes podem então ser mapeados na configuração Security Provider Claims.