Dela via


Configurando o SharePoint 2010 e o ADFS v2 de ponta a ponta

Configurando o SharePoint 2010 e o ADFS v2 de ponta a ponta

Nesta postagem, vou fazer um exame de ponta a ponta sobre como configurar o SharePoint 2010 e o ADFS v2 para que ambos usem a autenticação de declarações SAML. Esse acompanhamento incluirá etapas e scripts do PowerShell para demonstração. A tentativa é reunir todas as peças em uma única postagem grande.

Primeiro, uma rápida visão geral dos componentes envolvidos e o que é preciso ser feito. Neste cenário, o ADFS v2 é o nosso Provedor de Identidades, também conhecido como IP-STS (Serviço de Token de Segurança). Precisamos configurar o ADFS com informações sobre nossa RP (Terceira Parte Confiável). Nesse caso, o SharePoint é nossa RP – dependendo se o ADFS faz a autenticação e fornece as declarações. Sob a perspectiva do SharePoint, é preciso configurá-lo para confiar no IP-STS que está enviando as declarações, e então instalar um aplicativo Web e o site que consumirá essas declarações.

Vamos começar criando a terceira parte confiável no ADFS. Observe que realmente não importa a ordem de execução das ações, mas, por razões práticas, geralmente configuro primeiro o ADFS. Vá ao servidor em que o ADFS está instalado e abra o aplicativo AD FS 2.0 Management. Expanda o nó Relações de Confiança e clique no nó Relações de Confiança de Terceira Parte Confiável.

Clique no link Adicionar Confiança de Terceira Parte Confiável no painel direito para iniciar o assistente Adicionar Confiança de Terceira Parte Confiável.

Clique no botão Iniciar para continuar.

Selecione a opção para inserir dados manualmente sobre a terceira parte confiável e clique no botão Avançar.

Insira o nome para exibição e, opcionalmente, uma descrição da terceira parte confiável e clique no botão Avançar.

Selecione a opção para usar o perfil do AD FS 2.0 e clique no botão Avançar.

Você pode selecionar um certificado para criptografar o próprio token SAML. Isso não é feito com frequência porque o ADFS exige que a conexão com o SharePoint seja estabelecida por SSL, portanto, o canal de envio do token já está criptografado. Clique no botão Avançar.

Marque a caixa de seleção para habilitar o suporte ao protocolo WS-Federation Passive. Para a URL do protocolo, você precisa inserir a URL do site raiz do aplicativo Web do SharePoint e incluir o subdiretório “_trust”. Nesse exemplo, a URL para o meu aplicativo Web do SharePoint é https://seo14, portanto, a URL do protocolo WS-Federation Passive é https://seo14/_trust/. Depois de inserir a URL, clique no botão Avançar.

Para o identificador da relação de confiança da terceira parte confiável, você precisa inserir um realm a ser passado pelo seu aplicativo Web para o ADFS quando os usuários fizerem logon no aplicativo Web. O realm geralmente é criado no formato de urn:foo:bar. O realm é associado a um aplicativo Web. É dessa forma que o ADFS mapeia a solicitação de logon que chega para as respectivas relações de confiança de terceira parte confiável. Quando usado com o SharePoint, o ADFS vê o realm associado à solicitação de logon, examina-o para localizar a relação de confiança de terceira parte confiável e então, após a autenticação do usuário, ele examina a URL do protocolo WS-Federation Passive para saber para onde redirecionar o usuário posteriormente. Nesse caso, inseri um realm de urn:seo:sharepoint. Quando eu tento navegar para o meu site do SharePoint, em https://seo14, sou redirecionado para o ADFS e então configuro o SharePoint para usar o realm urn:seo:sharepoint para essa solicitação. Depois que o ADFS me autenticar, ele me redirecionará novamente para https://seo14/_trust/ porque essa é a URL do protocolo passivo dessa terceira parte confiável. Adicione o realm de sua preferência para uso aqui e anote-o, pois você precisará dele novamente ao configurar o SharePoint. Clique no botão Avançar.

Na maior parte das vezes, é conveniente permitir que todos os usuários usem essa terceira parte confiável. Vamos supor que seja esse o caso do cenário em questão, portanto, simplesmente aceite a opção padrão e clique no botão Avançar.

Se, nesse momento, for necessário fazer qualquer outra alteração de configuração na relação de confiança de terceira parte confiável, faça-o aqui. Neste cenário, não é preciso fazer alterações, assim, basta clicar no botão Avançar para continuar.

Concluímos a configuração da relação de confiança de terceira parte confiável, mas ainda precisamos criar uma declaração para informar o ADFS sobre quais declarações devem ser devolvidas ao SharePoint. Deixe desmarcada a caixa para abrir o diálogo Editar Regras de Declaração e clique no botão Fechar.

Agora, vamos criar uma nova regra. clique em Adicionar Regra….

Vamos enviar atributos LDAP como declarações porque, nesse caso, estamos obtendo informações do Active Directory, significando que a autenticação ocorrerá no ADFS que, por sua vez, usará o Active Directory corporativo para nos autenticar e determinar quais são nossos atributos. Por isso, mantenha selecionado o valor padrão e clique no botão Avançar para continuar.

Comece digitando um nome para a regra de declaração, qualquer um de sua escolha. Na lista suspensa Repositório de atributos, selecione Active Directory. Para o nosso cenário, queremos enviar endereço de email e os grupos aos quais o usuário pertence de volta para o SharePoint. Vamos usar o endereço de email como o identificador da pessoa. E queremos que todos os grupos aos quais um usuário pertença sejam enviados pela declaração Função. Para fazer o mapeamento, selecione o atributo desejado na lista suspensa, à esquerda, e selecione a declaração a ser enviada, na listagem suspensa do painel direito. Nesse caso, queremos que o atributo E-Mail-Addresses do Active Directory seja enviado na declaração padrão Endereço de Email. Os grupos aos quais um usuário pertence devem ser enviados na declaração Função. Nesse caso, selecionamos Token-Groups – Nomes Não Qualificados porque isso envia o nome do grupo como uma cadeia de caracteres simples – o nome do grupo. É possível enviar o SID dos grupos, mas isso dificulta mais o uso quando você está tentando atribuir uma declaração Função a um grupo do SharePoint. Após concluir a configuração dessa regra, conforme descrito aqui, clique no botão Concluir para finalizar a regra.

Clique no botão OK para concluir o processo de criação da relação de confiança de terceira parte confiável no ADFS. Sob o ponto de vista da configuração, no ADFS, nada mais precisa ser feito. Entretanto, há um outro aspecto que precisamos obter disso. O ADFS usa um certificado para autenticar os tokens que envia. Isso garante que o consumidor do token não seja adulterado, pois foi criado. Para configurar o SharePoint, precisamos copiar esse certificado porque vamos usá-lo ao configurá-lo para usar o ADFS como o IP-STS. Para obter o certificado de autenticação de tokens do ADFS, expanda o nó Serviço e clique no nó Certificados.

Há uma seção de certificados de autenticação de tokens. É possível ter um ou muitos certificados de autenticação de tokens, porém, SEMPRE haverá um único certificado Primário. Clique nesse certificado e clique no link Exibir Certificado, no painel direito.

Nesse caso em particular, optei por usar o certificado criado para SSL, no site do ADFS. Não estou sugerindo que isso seja necessário ou recomendado. Esta foi uma escolha minha. Agora que você está exibindo o certificado, clique na guia Detalhes, na parte superior da caixa de diálogo.

Clique no botão Copiar para Arquivo…. Isso iniciará um assistente para salvar uma cópia do certificado no disco.

Clique no botão Avançar para continuar.

Você não precisa da chave primária, apenas aceite as configurações padrão e clique no botão Avançar.

O formato padrão é adequado, portanto, clique no botão Avançar para continuar.

Selecione um local para salvar o certificado e clique no botão Avançar. Certifique-se de memorizar esse local porque você precisará copiar o certificado do local em que o salvou para o servidor do SharePoint.

Todas as informações necessárias para copiar localmente o certificado já foram capturadas. Clique no botão Concluir para encerrar o assistente e salve o certificado em um arquivo local. Copie esse arquivo no servidor do SharePoint e, com isso, finalizamos os procedimentos envolvendo o servidor do ADFS.

Mude para o servidor do SharePoint para começarmos a configurá-lo. Antes de iniciar a configuração do SharePoint, é recomendável criar agora um novo aplicativo Web. Crie o aplicativo para usar autenticação de declarações, mas selecione Autenticação Integrada do Windows – NTLM em Configurações de Autenticação. Lembre-se de configurar o aplicativo Web para usar a porta 443 e selecione o botão de opção Usar Protocolo SSL. Depois de criar o aplicativo Web, vá para o Gerenciador do IIS e edite as associações do novo servidor virtual para que você possa atribuir o certificado SSL adequado. Essas etapas estão fora do escopo dessa postagem, mas estão bem documentadas em muitos lugares da Internet. Para recapitular, no nosso cenário, há um aplicativo Web que eu criei, que usa a porta 443 e o protocolo SSL, e a URL desse aplicativo Web é https://seo14.

O primeiro passo no SharePoint é adicionar o certificado de autenticação de tokens que copiei do servidor do ADFS. Antes de fazer isso, porém, preciso examinar o certificado. O certificado de autenticação de tokens pode ter um ou mais certificados principais na respectiva cadeia. Se assim for, preciso adicionar cada certificado dessa cadeia na lista de autoridades raiz confiáveis do SharePoint. Para fazer isso, vou localizar o certificado de autenticação de tokens que copiei do ADFS e clicar duas vezes nele. Isso abrirá a janela de propriedades do certificado. Se clicar na guia Caminho de Certificação, você poderá ver se há outros certificados na cadeia. No meu cenário, meu certificado de autenticação de tokens TEM um principal – é o certificado raiz da autoridade de certificação.

O que preciso fazer agora é, para cada certificado da cadeia acima do meu certificado de autenticação de tokens, salvar uma cópia de um deles localmente. Posso fazer isso clicando no certificado, o que habilita o botão Exibir Certificado, na caixa de diálogo. Se eu clicar, uma caixa de diálogo separada será aberta com as propriedades desse certificado. Então, poderei seguir o mesmo processo descrito anteriormente para salvar uma cópia do certificado no disco: clicar na guia Detalhes, clicar no botão Copiar para Arquivo… e salvar o certificado localmente como um arquivo .CER. No meu caso, fiz isso e salvei em C:\adfsParent.cer. Agora, portanto, tenho dois certificados no meu servidor do SharePoint:

· C:\adfs.cer, que é o certificado de autenticação de tokens copiado do meu servidor do ADFS

· C:\adfsParent.cer, que é o certificado principal em relação ao meu certificado de autenticação de tokens

Agora que tenho os dois certificados, preciso adicioná-los à minha lista de autoridades raiz confiáveis. Farei isso no PowerShell com este script:

$root = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\adfsParent.cer")

New-SPTrustedRootAuthority -Name "Token Signing Cert Parent" -Certificate $root

$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\adfs.cer ")

New-SPTrustedRootAuthority -Name "Token Signing Cert" -Certificate $cert

Depois de executar esses comandos no PowerShell, a saída terá uma aparência similar a esta:

Em seguida, vou criar os mapeamentos de declarações que o SharePoint usará. Se você se lembrar, anteriormente neste artigo, eu disse que iria usar declarações de endereço de email e função no SharePoint. Aqui está o PowerShell que vou usar para criar esses mapeamentos:

$map = New-SPClaimTypeMapping -IncomingClaimType "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming

$map2 = New-SPClaimTypeMapping -IncomingClaimType "https://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" -SameAsIncoming

Em seguida, vou criar uma variável para o realm a ser usado pelo SharePoint. No cenário em questão, eu disse que usaria o realm urn:seo:sharepoint. Aqui está o PowerShell para criar minha variável de realm:

$realm = "urn:seo:sharepoint"

Agora estou pronto para criar meu SPTrustedIdentityTokenIssuer. Este é o local onde interligo todas as informações de configuração para que o SharePoint saiba como se conectar e trabalhar com o IP-STS. Mostrarei aqui o PowerShell e então explicarei as partes importantes:

$ap = New-SPTrustedIdentityTokenIssuer -Name "SAML Provider" -Description "SharePoint secured by SAML" -realm $realm -ImportTrustCertificate $cert -ClaimsMappings $map,$map2 -SignInUrl "https://congen1.contoso.local/adfs/ls" -IdentifierClaim "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"

O atributo “Name” é o que será exibido no seu aplicativo Web quando você configurar o provedor de autenticarão a ser utilizado. O atributo “realm” é o local onde vamos conectar o realm que desejamos que o SharePoint use com esse emissor confiável de token de identidade. O atributo “ImportTrustCertificate” é o local onde passamos o certificado de autenticação de tokens copiado do servidor do ADFS. O atributo “ClaimsMappings” é o local onde dizemos quais são as declarações que esse emissor de identidade confiável deve usar. O atributo “SignInUrl” é a URL para a qual os usuários devem ser redirecionados para autenticação com o IP-STS. Nesse caso, queremos que os usuários se autentiquem no servidor do ADFS usando a segurança integrada do Windows, assim, nós os enviamos ao subdiretório /adfs/ls. Por fim, o atributo “IdentifierClaim” diz ao SharePoint qual das declarações deve se a declaração a ser utilizada para identificar usuários. Nesse caso, estamos dizendo que o endereço de email é o que identificará uma pessoa.

Após a execução do último comando do PowerShell, teremos um SPTrustedIdentityTokenIssuer que poderá ser usado com o nosso aplicativo Web do SharePoint. Portanto, agora, vamos abrir o navegador e ir até a Administração Central. Clique no link Gerenciar Aplicativos Web, clique no aplicativo Web apresentado na lista e que usará o ADFS para fazer a autenticação e, na faixa de opções, clique no botão Provedores de Autenticação. Na caixa de diálogo, clique no link que corresponde à zona em que vamos usar o ADFS para autenticação. Role para baixo até a seção Tipos de Autenticação. Agora, é possível desmarcar NTLM. Você verá um novo provedor chamado “Provedor SAML” na lista de provedores confiáveis.

Marque a caixa de seleção ao lado dele e clique no botão Salvar para salvar as alterações. Agora, você pode criar um conjunto de sites para o aplicativo Web. Novamente, a descrição do passo a passo desse processo não faz parte do escopo desta postagem, mas há um aspecto importante que deve ser lembrado ao fazer isso. Ao adicionar o Administrador do Conjunto de Sites, lembre-se de inserir o nome no formato da sua declaração de identidade. Por exemplo, neste cenário, a declaração de identidade é o endereço de email. Por isso, quando adicionei o Administrador do Conjunto de Sites, o nome que usei foi administrator@contoso.local, porque esse é o endereço de email da pessoa que eu quero como administradora do conjunto de sites.

Agora, estou pronto para tentar ir para o meu novo conjunto de sites. Abro o navegador e digito https://seo14 e pressiono Enter. O que aparece primeiro é o meu redirecionamento para a SignInUrl do SPTrustedIdentityTokenIssuer associado ao meu aplicativo Web. Se você chamar novamente o PowerShell que foi usado para criar o SPTrustedIdentityTokenIssuer, essa URL será https://congen1.contoso.local/adfs/ls. Aqui está o que vejo depois de digitar, no navegador, a URL para o meu site do SharePoint:

Você pode ver a URL na janela do navegador. Então aponte para o meu servidor do ADFS e você verá que o gráfico no plano de fundo, atrás da caixa de diálogo de logon, é do servidor do ADFS. Também podemos notar que estou me conectando com as credenciais do Windows, isto é, domínio\usuário. Lembre-se que posso fazer isso porque estou me autenticando no servidor do ADFS, e não no SharePoint. O SharePoint foi configurado para usar o endereço de email como a minha identidade, mas o que acontece é que vou me autenticar usando o ADFS e, depois, usarei a regra de declaração (que criamos) para obter meu endereço de email e meus grupos e colocá-los em declarações a serem reenviadas para o SharePoint. Assim, depois que eu me autenticar, serei redirecionado para o SharePoint em https://seo14/_trust/, conforme minha configuração na terceira parte confiável que instalei no ADFS. Nesse ponto, o SharePoint concluirá o processo de autenticação, pois utiliza as declarações obtidas no token de SAML e as converte em um SPUser. Finalmente, cheguei à home page do site:

Você vai perceber que o controle de logon, na parte superior direita da página, exibe minha identidade como o endereço de email, pois essa é a minha declaração de identidade.

Esse é o processo completo ponta a ponta, com uma pequena expansão ao lado. Ao seguir essas instruções, você deverá poder usar o processo para configurar seus sites e executá-los.

Esta é uma postagem de blog localizada. Obtenha o artigo original em Configurando o SharePoint 2010 e o ADFS v2 ponta a ponta