Configurar SSO para o Salesforce usando o Microsoft AD FS como provedor de identidade
Permita que os usuários efetuem login em uma organização do Salesforce a partir de um ambiente Microsoft usando o Microsoft Active Directory Federation Services (AD FS) 2.0. O Microsoft AD FS atua como provedor de identidade para autenticação de login único.
Edições obrigatórias
| Disponível em: Lightning Experience e Salesforce Classic |
| Disponível em: Enterprise, Performance, Unlimited e Developer Editions |
O Microsoft AD FS 2.0 é compatível com o protocolo SAML 2.0. Quando o AD FS 2.0 é configurado como provedor de identidade do Salesforce, os usuários podem efetuar login no Salesforce usando login único (SSO).
O ponto de extremidade AD FS UserInfo retorna apenas a reivindicação de assunto conforme especificado nos padrões OpenID. Não fornece reivindicações adicionais solicitadas pelo ponto de extremidade UserInfo. Se você precisar de reivindicações adicionais no token de ID, use um token de ID personalizado.
Ao configurar o AD FS 2.0 para utilização com o Salesforce, recomendamos selecionar Redirecionamento HTTP nas configurações de Login único do Salesforce, em Vinculação de solicitação iniciada por provedor de serviços. Essa configuração melhora a interoperabilidade com dispositivos baseados em iOS.Pré-requisitos
Para configurar o AD FS 2.0 como provedor de identidade do Salesforce, você precisa de:
- Microsoft Windows Server 2008 R2, edição Enterprise ou Datacenter. Se estiver configurando um ambiente para avaliação, você poderá fazer download de uma versão de teste no Centro de download da Microsoft.
- Microsoft Active Directory Federation Services 2.0.
Nota O Windows Server 2008 R2 inclui o AD FS 1.0, que não é compatível com SAML 2.0. Por isso, faça download do pacote de "lançamento na Web" (RTW) do AD FS 2.0. - Uma organização do Salesforce. Você pode experimentá-lo com um ambiente Developer Edition.
Visão geral
O SAML 2.0 define papéis para as partes envolvidas no SSO. Um usuário realiza autenticação em um provedor de identidade (IdP), nesse caso, o AD FS 2.0. O usuário então pode acessar um recurso em um ou mais provedores de serviços (SP) sem efetuar login em cada um deles. Nesse caso, o SP (também chamado de "terceira parte confiável") é uma organização do Salesforce.
Este diagrama mostra o processo de login iniciado pelo IdP no Salesforce.
- O usuário realiza autenticação no servidor AD FS usando Autenticação integrada do Windows (tokens Kerberos por HTTP) e solicita login no Salesforce. (1)
- O AD FS retorna uma declaração SAML para o navegador do usuário. (2)
- O navegador envia a declaração ao Salesforce, que efetua login do usuário. (3)
Estas são as etapas gerais da criação de uma implantação de teste.
- Instale o Microsoft AD FS 2.0.
- Configure o AD FS e o ambiente do Salesforce.
- Teste a configuração.
- Solucione problemas de implementação conforme necessário.
Instalar o software
- Para começar, instale o Windows Server 2008 R2.
Nota O servidor AD FS deve ser membro de um domínio Active Directory. Se você estiver construindo uma configuração de laboratório para avaliação, o servidor AD FS poderá ser o controlador do domínio. No entanto, não recomendamos utilizar esses ajustes para produção. - Crie um nome de DNS simples para o AD FS, como adfs.testzone.local, e aponte-o para o servidor AD FS 2.0.
- Faça download do AD FS 2.0 e instale-o. Essa etapa instala outros componentes necessários do Windows, como o IIS.
- No gerenciador do IIS, crie um certificado de SSL para o nome de DNS simples. Se tiver o kit de recursos do IIS 6.0, você poderá usar SelfSSL para criar um certificado autoassinado.
- Execute o assistente de configuração do servidor AD FS.
- Crie um serviço de federação.
- Selecione Servidor independente.
- Selecione o certificado que você criou para o nome de DNS simples.
- Se ocorrer um erro quando o instalador registrar um nome de entidade de serviço (SPN), crie manualmente um SPN Kerberos para o nome de DNS. O SPN permite o funcionamento correto da Autenticação integrada do Windows entre o navegador e a instância IIS do AD FS:
1 setspn -a HOST/adfs.testzone.local testzone\ADFSSVR012 setspn -a HOST/adfs testzone\ADFSSVR01Para obter mais informações sobre SPNs Kerberos, consulte Active Directory e SPNs Kerberos simplificados.
Configurar o Salesforce
Para criar uma federação entre duas partes, é necessário estabelecer um relacionamento de confiança por meio da troca de metadados. Os metadados da instância do AD FS 2.0 são inseridos na configuração do Salesforce. Os metadados do Salesforce são baixados como um arquivo XML que o AD FS 2.0 pode consumir.
Configurar SAML 2.0.
No snap-in do MMC do AD FS 2.0, selecione o nó de certificados e clique duas vezes no certificado de assinatura de token para exibi-lo. Clique na guia Detalhes e selecione Copiar para arquivo. Salve o certificado no formato DER.
No servidor AD FS, navegue até o URL de metadados de federação localizado no AD FS MMC em Serviço | Pontos de extremidade | Metadados | Tipo:metadados de federação . No exemplo, o URL é https://adfs.testzone.local/FederationMetadata/2007-06/FederationMetadata.xml.
Copie o valor do atributo entityID. No exemplo, é http://adfs.testzone.local.
No Salesforce, em Configuração, insira Login único na caixa Busca rápida e selecione Configurações de login único. Selecione SAML ativado e clique na opção para criar uma configuração de SSO SAML.
Defina as configurações.
- Nome — Insira um nome para as configurações de SSO SAML.
- Versão do SAML — Esta configuração é definida como 2.0.
- Emissor — Cole o entityID aqui.
- Certificado do provedor de identidade — Procure e selecione o certificado de assinatura de token que você exportou anteriormente.
- Solicitar certificado de assinatura — Selecione um certificado autoassinado que você criou anteriormente. (Consulte o procedimento para gerar um certificado autoassinado.)
- Solicitar método de assinatura — Defina essa configuração como RSA-SHA-1.
- Tipo de identidade SAML — Para efetuar login de um usuário, você pode procurar correspondência com o nome de usuário do Salesforce ou com o ID de federação. Se a correspondência for com o ID de federação, ele deverá ser preenchido no perfil de cada usuário. Para testar, selecione ID de federação. Se os usuários usarem seus endereços de email como nomes de usuário do Salesforce, uma implantação de produção poderá mudar para a correspondência com o nome de usuário.
- Local de identidade SAML — Para efetuar login do usuário, você pode usar o NameID na declaração SAML ou outro atributo. Você pode usar NameID porque o AD FS preenche NameID na declaração SAML.
- Vinculação de solicitação iniciada por provedor de serviços — Recomendamos selecionar Redirecionamento HTTP.
- URL de login do provedor de identidade — Insira o URL do ponto final SAML do AD FS ao qual o Salesforce envia solicitações SAML de login iniciado pelo SP.
Nota Inclua a barra no final do URL.Você pode encontrar o URL no AD FS MMC em Pontos de extremidade | Emissão de token | Tipo:SAML 2.0/WS-Federação . No exemplo, o URL é https://adfs.testzone.local/adfs/ls/.
- URL de logout personalizado — Você pode configurar um URL para o qual o usuário será enviado ao efetuar logout, como, por exemplo, http://intranet.mycompany.com/.
- ID da entidade — Essa configuração define como o IdP do AD FS identifica o SP Salesforce. Para ativar o SSO iniciado pelo SP, insira o ID da entidade do Meu domínio configurado.
Salve as configurações e faça download do arquivo XML de metadados.
Configuração do AD FS 2.0
Agora que você tem metadados do Salesforce, crie o lado do AD FS do relacionamento de confiança. Abra o snap-in do MMC do AD FS 2.0 e adicione um novo "Objeto de confiança de terceira parte confiável".
- Selecionar origem de dados — Importe dados sobre uma terceira parte confiável a partir de um arquivo. Navegue até o arquivo XML que você baixou do Salesforce.
- Especificar nome de exibição — Dê ao objeto de confiança um nome de exibição, como Teste do Salesforce.
- Escolher regras de autorização de emissão — Permita que todos os usuários acessem esta terceira parte confiável.
- Abrir o diálogo Editar regras de declaração — Selecione.
No editor de regras de declaração, clique na guia Regras de transformação de emissão. Adicione uma regra usando o Modelo de regra de declaração definido como Enviar atributos LDAP como declarações.
- Nome da regra de declaração — Para teste, defina o atributo User-Principal-Name como NameID e dê à regra o nome de Enviar UPN como NameID. Em produção, é comum enviar o endereço de email ou ID de funcionário do usuário. É importante usar um atributo cujo valor provavelmente não mudará ao longo do tempo, pois qualquer mudança tornará o SSO inválido para o usuário em questão.
- Atributo LDAP — Selecione Nome principal do usuário.
- Tipo de declaração enviada — Selecione ID do nome.
Login iniciado pelo SP
Em um processo de login iniciado pelo IdP, geralmente você define um link na intranet da empresa no qual os usuários clicam para obter acesso ao Salesforce. O login iniciado pelo SP ocorre quando um usuário clica em um link direto para o Salesforce.
Se você tiver configurado um ID da entidade de Meu domínio nas configurações de SAML do Salesforce (por exemplo, https://testinfo-developer-edition.my.salesforce.com), os usuários poderão acessar URLs nesse domínio. Em seguida, eles serão redirecionados ao AD FS para autenticação.
Quando um ID de entidade do Meu domínio é definido nas configurações de SAML do Salesforce (por exemplo, https://testinfo-developer-edition.my.salesforce.com), os usuários poderão acessar URLs nesse domínio. Em seguida, eles serão redirecionados ao AD FS para autenticação.
Para que um login iniciado pelo SP funcione, defina o parâmetro de algoritmo de hash seguro do AD FS como SHA-1. O Salesforce usa SHA-1 ao assinar solicitações SAML e o AD FS usa, por padrão, SHA-256.
O parâmetro SHA é definido nas propriedades de objeto de confiança do AD FS para a terceira parte confiável do Salesforce na guia Avançado.
Se você não definir esse parâmetro, uma mensagem será exibida no registro de compromissos do AD FS.
Event ID: 378SAML request is not signed with expected signature algorithm. SAML request is signed with signature algorithm http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 . Expected signature algorithm is http://www.w3.org/2000/09/xmldsig#rsa-sha1Testando
Agora você pode definir o ID de federação de um usuário do Salesforce como o UPN da conta do usuário do AD e testar o processo de login.

Para login iniciado pelo SP, supondo que você tenha configurado um ID da entidade de Meu domínio, navegue diretamente para o URL – por exemplo, https://testinfo-developer-edition.my.salesforce.com.
Para login iniciado pelo IdP, use o URL de login do AD FS e especifique o parâmetro loginToRp como o ID da entidade de SAML do Salesforce – por exemplo, https://adfs.testzone.local/adfs/ls/idpinitiatedsignon.aspx?loginToRp=https://saml.salesforce.com.
Em qualquer dos casos, o navegador segue uma cadeia de redirecionamentos até realizar login no aplicativo no Salesforce. Se ocorrer um erro de login no Salesforce, use a ferramenta de validação de declaração SAML na página de configuração de SSO do Salesforce. Ela exibe os resultados do último login SAML com falha.

Ï
Se ocorrer um erro no AD FS, verifique os logs do AD FS em Server Manager\Diagnostics\Applications and Services Logs\AD FS 2.0\Admin. Também há uma boa publicação no blog da MSDN sobre diagnóstico do AD FS 2.0.
Se você tiver configurado um ID da entidade de Meu domínio, o login iniciado pelo SP funcionará para links profundos. Marque como favorito um link profundo no Salesforce e efetue logout. Recarregue o navegador e selecione o favorito. Você será redirecionado para o seu IdP, autenticado e redirecionado novamente para o link marcado como favorito.
Problemas comuns e suas soluções
- O ID de federação diferencia entre maiúsculas e minúsculas.
Se a identidade federada for seu endereço de email da organização, insira-o exatamente como enviado pelo AD FS. Caso contrário, o Salesforce não conseguirá localizar um usuário correspondente.
Não é possível escrever uma regra de declaração personalizada para normalizar o caso do atributo LDAP antes do envio, porque a linguagem de declaração tem apenas uma substituição de expressão regular básica.
- A declaração expirou.
Declarações com carimbo de data/hora anterior a cinco minutos são rejeitadas.
Nota O Salesforce permite 3 minutos para defasagem de relógio. Assim, uma declaração pode estar atrasada em até oito minutos ou adiantada em até três minutos em relação ao carimbo de data/hora. Além disso, uma declaração expira conforme especificado pelo período de validade, que pode ser de menos de 5 minutos.Certifique-se de que o relógio do sistema do servidor AD FS esteja sincronizado com uma boa origem de horário da internet que use o Protocolo de horário de rede (NTP).
- Não pode fazer login no Salesforce.
Se um erro impedir que você efetue login no Salesforce por meio de SSO, você ainda poderá efetuar login usando seu nome de usuário e senha. Adicione ?login ao final do URL de login, por exemplo, https://login.salesforce.com/?login. Depois de efetuar login, você poderá desativar o SSO, se necessário, enquanto tenta solucionar o problema.

