Implementar a autenticação federada
APLICA-SE A:2013 2016 2019 Subscription Edition SharePoint no Microsoft 365
Implementar a autenticação federada no SharePoint Server
Este guia passo a passo explica como configurar a autenticação federada no SharePoint com os Serviços de Federação do Active Directory (AD FS).
Descrição geral da autenticação federada
Na autenticação federada, o SharePoint processa tokens SAML emitidos por um Serviço de Tokens de Segurança (STS) externo e fidedigno. Um utilizador que tente iniciar sessão é redirecionado para esse STS, que autentica o utilizador e gera um token SAML após a autenticação bem-sucedida. Em seguida, o SharePoint processa este token e utiliza-o para criar o seu próprio e autorizar o utilizador a aceder ao site.
Pré-requisitos
Para efetuar a configuração, precisa dos seguintes recursos:
- Um farm do SharePoint 2013 ou mais recente.
- Já foi criado um farm do AD FS versão 2 ou mais recente, com a chave pública do certificado de assinatura do AD FS exportado num ficheiro .cer.
Este artigo utiliza os seguintes valores:
- URL do site do SharePoint:
https://spsites.contoso.local/
- URL do site do AD FS:
https://adfs.contoso.local/adfs/ls/
- Realm (identificador da entidade confiadora):
urn:contoso:spsites
- Tipo de afirmação de identidade:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
- Tipo de afirmação de função:
http://schemas.microsoft.com/ws/2008/06/identity/claims/role
- Administrador da coleção de sites do Windows:
contoso\yvand
- Valor de e-mail do administrador da coleção de sites federado (AD FS):
yvand@contoso.local
Criar uma entidade confiadora no AD FS
Neste passo, vai criar uma entidade confiadora no AD FS. A entidade confiadora irá armazenar a configuração necessária para trabalhar com o SharePoint e as regras de afirmação que definem que afirmações serão injetadas no token SAML após a autenticação bem-sucedida.
No servidor do AD FS, inicie o PowerShell e execute o seguinte script:
### STEP 1: Create the relying party
# Name of the Relying Party
$name = "SPSites"
# Unique identifier of the Relying Party (in SharePoint it's referred to as the realm)
$identifier = "urn:contoso:spsites"
# Authority that authenticates users
$identityProvider = "Active Directory"
# SharePoint URL where user is redirected upon successful authentication
$redirectURL = "https://spsites.contoso.local/_trust/default.aspx"
# Allow everyone to use this relying party
$allowEveryoneRule = '=> issue (Type = "http://schemas.microsoft.com/authorization/claims/permit", value = "true");'
# Create the Relying Party
Add-ADFSRelyingPartyTrust -Name $name -Identifier $identifier -ClaimsProviderName $identityProvider -Enabled $true -WSFedEndpoint $redirectURL -IssuanceAuthorizationRules $allowEveryoneRule -Confirm:$false
### STEP 2: Add claim rules to the relying party
# Rule below configured relying party to issue 2 claims in the SAML token: email and role
$claimsRule = @"
@RuleTemplate = "LdapClaims"
@RuleName = "AD"
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/emailaddress", "http://schemas.microsoft.com/ws/2008/06/identity/claims/role"),
query = ";mail,tokenGroups(fullDomainQualifiedName);{0}",
param = c.Value);
"@
# Apply the rule to the Relying Party
Set-ADFSRelyingPartyTrust -TargetName $name -IssuanceTransformRules $claimsRule
Quando o script for concluído, a entidade confiadora no AD FS deverá ter o seguinte aspeto:
Configurar o SharePoint para confiar no AD FS
Neste passo, vai criar um SPTrustedLoginProvider que irá armazenar a configuração de que o SharePoint precisa para confiar no AD FS. Inicie a Shell de Gestão do SharePoint e execute o seguinte script para o criar:
# Define claim types
$email = New-SPClaimTypeMapping "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
$role = New-SPClaimTypeMapping "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" -SameAsIncoming
# Public key of the AD FS signing certificate
$signingCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
# Unique realm (corresponds to the unique identifier of the AD FS Relying Party)
$realm = "urn:contoso:spsites"
# Set the AD FS URL where users are redirected to authenticate
$signinurl = "https://adfs.contoso.local/adfs/ls/"
# Create a new SPTrustedIdentityTokenIssuer in SharePoint
New-SPTrustedIdentityTokenIssuer -Name "Contoso.local" -Description "Contoso.local" -Realm $realm -ImportTrustCertificate $signingCert -ClaimsMappings $email,$role -SignInUrl $signinurl -IdentifierClaim $email.InputClaimType
Importante
NÃO utilize a opção -UseDefaultConfiguration com o cmdlet New-SPTrustedIdentityTokenIssuer. Esta opção causa efeitos colaterais inesperados devido à forma como define a identidade dos utilizadores internamente.
Em seguida, o certificado relevante tem de ser adicionado ao arquivo de certificados da autoridade de raiz do SharePoint. Existem 2 opções possíveis:
- Se o certificado de assinatura do AD FS for emitido por uma autoridade de certificação (melhor prática por motivos de segurança)
A chave pública do certificado do emissor (e todos os intermediários) tem de ser adicionada ao arquivo: Inicie a Shell de Gestão do SharePoint e execute o seguinte script para o adicionar:
$rootCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing issuer.cer")
New-SPTrustedRootAuthority -Name "adfs.contoso.local signing root authority" -Certificate $rootCert
- Se o certificado de assinatura do ADFS for um certificado autoassinado (não recomendado por motivos de segurança)
A chave pública do próprio certificado de assinatura do ADFS tem de ser adicionada ao arquivo: Inicie a Shell de Gestão do SharePoint e execute o seguinte script para o adicionar:
$rootCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
New-SPTrustedRootAuthority -Name "adfs.contoso.local signing certificate" -Certificate $rootCert
Configurar a aplicação Web do SharePoint
Neste passo, vai configurar uma aplicação Web no SharePoint para ser federada com a confiança do AD FS, utilizando o SPTrustedLoginProvider que foi criado acima.
Existem algumas regras importantes a respeitar:
- A zona predefinida da aplicação Web do SharePoint tem de ter a autenticação do Windows ativada. Isto é necessário para o crawler de Pesquisa.
- O URL do SharePoint que irá utilizar a federação do AD FS tem de ser configurado com HTTPS.
Existem duas configurações possíveis:
Se criar uma nova aplicação Web e utilizar a autenticação do Windows e do AD FS na zona Predefinida:
Inicie a Shell de Gestão do SharePoint e execute o seguinte script:
# This script creates a new web application and sets Windows and AD FS authentication on the Default zone # URL of the SharePoint site federated with ADFS $trustedSharePointSiteUrl = "https://spsites.contoso.local/" $applicationPoolManagedAccount = "Contoso\spapppool" $winAp = New-SPAuthenticationProvider -UseWindowsIntegratedAuthentication -DisableKerberos:$true $sptrust = Get-SPTrustedIdentityTokenIssuer "Contoso.local" $trustedAp = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust New-SPWebApplication -Name "SharePoint - ADFS on contoso.local" -Port 443 -SecureSocketsLayer -URL $trustedSharePointSiteUrl -ApplicationPool "SharePoint - ADFS on contoso.local" -ApplicationPoolAccount (Get-SPManagedAccount $applicationPoolManagedAccount) -AuthenticationProvider $winAp, $trustedAp
Abra o site de Administração Central do SharePoint .
Em Definições do Sistema, selecione Configurar Mapeamentos de Acesso Alternativos. É aberta a caixa Coleção de Mapeamento de Acesso Alternativo .
Filtre o ecrã com a nova aplicação Web e confirme que vê algo assim:
Se expandir uma aplicação Web existente para definir a autenticação do AD FS numa nova zona:
Inicie a Shell de Gestão do SharePoint e execute o seguinte script:
# This script extends an existing web application to set AD FS authentication on a new zone # URL of the default zone of the web application $webAppDefaultZoneUrl = "http://spsites/" # URL of the SharePoint site federated with ADFS $trustedSharePointSiteUrl = "https://spsites.contoso.local/" $sptrust = Get-SPTrustedIdentityTokenIssuer "Contoso.local" $ap = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust $wa = Get-SPWebApplication $webAppDefaultZoneUrl New-SPWebApplicationExtension -Name "SharePoint - ADFS on contoso.local" -Identity $wa -SecureSocketsLayer -Zone Intranet -Url $trustedSharePointSiteUrl -AuthenticationProvider $ap
Abra o site de Administração Central do SharePoint .
Em Definições do Sistema, selecione Configurar Mapeamentos de Acesso Alternativos. É aberta a caixa Coleção de Mapeamento de Acesso Alternativo .
Filtre o ecrã com a aplicação Web que foi expandida e confirme que vê algo assim:
Definir um certificado HTTPS no IIS
Uma vez que o URL do SharePoint utiliza o protocolo HTTPS (https://spsites.contoso.local/
), tem de ser definido um certificado no site dos Serviços de Informação Internet (IIS) correspondente.
Gerar o certificado de site
Observação
Pode ignorar este passo se já tiver gerado o certificado.
Abra a consola do Windows PowerShell.
Execute o seguinte script para gerar um certificado autoassinado e adicione-o ao arquivo MY do computador:
New-SelfSignedCertificate -DnsName "spsites.contoso.local" -CertStoreLocation "cert:\LocalMachine\My"
Importante
Os certificados autoassinados são adequados apenas para fins de teste. Em ambientes de produção, recomendamos vivamente que utilize certificados emitidos por uma autoridade de certificação.
Definir o certificado
Abra a consola do Gestor de Serviços de Informação Internet.
Expanda o servidor na vista de árvore, expanda Sites, selecione SharePoint – ADFS no site contoso.local e selecione Enlaces.
Selecione enlace https e, em seguida, selecione Editar.
No campo certificado TLS/SSL, selecione spsites.contoso.local certificate e, em seguida, selecione OK.
Criar a coleção de sites
Neste passo, vai criar uma coleção de sites de equipa com dois administradores: um como administrador do Windows e outro como administrador federado (AD FS).
Abra o site de Administração Central do SharePoint .
Em Gestão de Aplicações, selecione Criar coleções de sites. É aberta a página Criar coleções de sites.
Escreva um Título, URL e selecione o modelo Site de Equipa.
Na secção Administrador da Coleção de Sites Primária , clique no ícone do livro para abrir a caixa de diálogo do seletor de pessoas.
Na caixa de diálogo do seletor de pessoas, escreva a conta de administrador do Windows, por exemplo
yvand
.À esquerda, filtre a lista ao clicar em Organizações. Deverá ver um resultado como este:
Selecione a conta e clique em OK.
Na secção Administrador secundário da Coleção de Sites , clique no ícone do livro para abrir a caixa de diálogo do seletor de pessoas.
Na caixa de diálogo do seletor de pessoas, escreva o valor exato de e-mail da conta de administrador do AD FS, por exemplo
yvand@contoso.local
.À esquerda, filtre a lista ao clicar em Contoso.local. Deverá ver um resultado como este:
Selecione a conta e clique em OK.
Clique em OK para criar a coleção de sites.
Assim que a coleção de sites for criada, deverá conseguir iniciar sessão na mesma com a conta de administrador da coleção de sites do Windows ou federada.
Próximas etapas
Na autenticação federada, o seletor de pessoas não valida a entrada, o que pode levar a erros ortográficos ou utilizadores que escolham acidentalmente o tipo de afirmação errado. Isto pode ser resolvido através de um fornecedor de afirmações personalizado; por exemplo, LDAPCP.
Importante
O LDAPCP não é um produto Microsoft e não é suportado pelo Suporte da Microsoft. Para transferir, instalar e configurar o LDAPCP no farm do SharePoint no local, consulte o site LDAPCP.
No SharePoint Server Subscription Edition, o seletor de pessoas nativas pode procurar e resolver pessoas com a aplicação de serviço de perfis de utilizador para autenticação federada. Saiba como configurar o seletor de pessoas para trabalhar com a autenticação federada.