Compartilhar via


Implementar a autenticação federada

APLICA-SE A:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint 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:

Entidade Confiadora do ADFS

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:

    1. 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
      
    2. Abra o site de Administração Central do SharePoint .

    3. Em Definições do Sistema, selecione Configurar Mapeamentos de Acesso Alternativos. É aberta a caixa Coleção de Mapeamento de Acesso Alternativo .

    4. Filtre o ecrã com a nova aplicação Web e confirme que vê algo assim:

      Mapeamentos de Acesso Alternativos da aplicação Web

  • Se expandir uma aplicação Web existente para definir a autenticação do AD FS numa nova zona:

    1. 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
      
    2. Abra o site de Administração Central do SharePoint .

    3. Em Definições do Sistema, selecione Configurar Mapeamentos de Acesso Alternativos. É aberta a caixa Coleção de Mapeamento de Acesso Alternativo .

    4. Filtre o ecrã com a aplicação Web que foi expandida e confirme que vê algo assim:

      Mapeamentos de Acesso Alternativos da aplicação expandida

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.

  1. Abra a consola do Windows PowerShell.

  2. 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

  1. Abra a consola do Gestor de Serviços de Informação Internet.

  2. Expanda o servidor na vista de árvore, expanda Sites, selecione SharePoint – ADFS no site contoso.local e selecione Enlaces.

  3. Selecione enlace https e, em seguida, selecione Editar.

  4. 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).

  1. Abra o site de Administração Central do SharePoint .

  2. Em Gestão de Aplicações, selecione Criar coleções de sites. É aberta a página Criar coleções de sites.

  3. Escreva um Título, URL e selecione o modelo Site de Equipa.

  4. 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.

  5. Na caixa de diálogo do seletor de pessoas, escreva a conta de administrador do Windows, por exemplo yvand.

  6. À esquerda, filtre a lista ao clicar em Organizações. Deverá ver um resultado como este:

    Administrador do Windows selecionador de pessoas

  7. Selecione a conta e clique em OK.

  8. 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.

  9. 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.

  10. À esquerda, filtre a lista ao clicar em Contoso.local. Deverá ver um resultado como este:

    E-mail do administrador do FS do selecionador de pessoas

  11. Selecione a conta e clique em OK.

  12. 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.