Partilhar via


Configurar a autenticação OIDC no SharePoint Server com os Serviços de Federação do Active Directory (AD FS)

APLICA-SE A:no-img-132013 no-img-162016 no-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint no Microsoft 365

Pré-requisitos

Quando configura o SharePoint Server com Serviços de Federação do Active Directory (AD FS) (AD FS) com a autenticação OpenID Connect (OIDC), precisa dos seguintes recursos para efetuar a configuração:

  1. Uma quinta Edição de Assinatura do SharePoint Server.
  2. O AD FS no Windows Server 2016 ou posterior, já criado, com a chave pública do certificado de assinatura do AD FS exportada num .cer ficheiro.

Este artigo utiliza os seguintes valores de exemplo para a configuração do OIDC do AD FS:

Valor Link
SharePoint site URL https://spsites.contoso.local/
AD FS site URL https://adfs.contoso.local/adfs/
Ponto final de autenticação do AD FS https://adfs.contoso.local/adfs/oauth2/authorize
RegisteredIssuerName URL https://adfs.contoso.local/adfs/
AD FS SignoutURL https://adfs.contoso.local/adfs/oauth2/logout
Tipo de afirmação de identidade http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
Administrador da coleção de sites do Windows contoso\yvand
Email valor do administrador da coleção de sites federado (AD FS) yvand@contoso.local

Passo 1: Configurar o fornecedor de identidade

Execute os seguintes passos para configurar o OIDC com o AD FS:

  1. Em Gestão do AD FS, clique com o botão direito do rato em Application Grupos e selecione Add Application Group (Adicionar Grupo de Aplicações).

  2. Aceda à página De boas-vindas , introduza ADFSSSO no campo Nome e, em Aplicações Cliente-Servidor, selecione o browser que está a aceder a um modelo de aplicação Web . Em seguida, selecione Avançar.

    Assistente para Adicionar Grupo de Aplicações

  3. Aceda à página Aplicação Nativa e copie o valor do Identificador de Cliente . Será utilizado mais tarde como o valor do DefaultClientIdentifier parâmetro durante a configuração do SharePoint.

  4. No campo URL de Redirecionamento , introduza https://spsites.contoso.local/ e selecione Adicionar. Em seguida, selecione Avançar.

    Assistente para Adicionar Grupo de Aplicações 2

  5. Aceda à página Resumo e selecione Seguinte.

    Assistente para Adicionar Grupo de Aplicações 3

  6. Aceda à página Concluir e selecione Fechar.

  7. Exportar o certificado de assinatura de tokens do AD FS. Este certificado de assinatura de tokens será utilizado na configuração do SharePoint. As imagens seguintes mostram como exportar o certificado de assinatura de tokens do AD FS:

    Exportação de Certificado do AD FS 1

    Exportação de Certificado do AD FS 2

    Exportação de Certificado do AD FS 3

    Exportação de Certificado do AD FS 4

  8. Certifique-se de que o ID de afirmação necessário está incluído no do id_token AD FS. Vamos considerar o e-mail como um exemplo:

    Partimos do princípio de que o AD FS configurou a regra que lê a afirmação do identificador a partir do arquivo de atributos, como o AD. Execute os seguintes passos para criar a Regra de Transformação de Emissão para esta aplicação Web específica que criámos anteriormente no AD FS:

    1. Abra a aplicação Web que criou e aceda ao separador Regra de Transformação de Problemas .

      Regra de Transformação do Problema

    2. Selecione Adicionar Regra e selecione Enviar Atributos LDAP como Afirmações na lista de opções.

      Emitir Regra de Adição de Transformação

      Adicionar Regra de Afirmação de Transformação

    3. Atribua o nome Regra de afirmação como AD e selecione Active Directory no menu pendente Arquivo de atributos . Crie dois mapeamentos com as caixas pendentes, conforme mostrado:

      Atributo Valor
      Endereços de Correio Eletrónico Endereço de Correio Eletrónico
      Token-Groups - Qualificado por Nome de Domínio Função

      Adicionar Regra de Afirmação de Transformação 2

    4. Selecione Concluir para fechar o Assistente de regras e selecione OK para fechar as propriedades da aplicação Web. Selecione OK mais uma vez para concluir a Regra.

Se estiver a definir o OIDC com o SharePoint Server, a afirmação nbf tem de ser configurada no lado do servidor do AD FS na aplicação Web que criou. Se a afirmação nbf não existir nesta aplicação Web, execute os seguintes passos para criá-la:

  1. Abra a aplicação Web que criou e aceda ao separador Regra de Transformação de Problemas .

    Regra de Transformação do Problema

  2. Selecione Adicionar Regra e, em seguida, selecione Aplicar. No Assistente para Adicionar Regra de Afirmação de Transformação , selecione Enviar Afirmações Utilizando uma Regra Personalizada nas opções de modelo de regra de afirmação .

    Emitir Regra de Adição de Transformação

    Adicionar Regra de Afirmação de Transformação 3

  3. Selecione Seguinte e introduza a seguinte cadeia no campo Regra personalizada :

    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"] => issue(Type = "nbf", Value = "0");

    Adicionar Regra de Afirmação de Transformação 4

  4. Selecione Concluir.

Passo 2: Alterar as propriedades do farm do SharePoint

Neste passo, tem de modificar as propriedades do farm do SharePoint Server com base na versão do farm do SharePoint Server.

Configurar Edição de Assinatura do SharePoint Server Versão 24H1 ou versões superiores com a preferência de funcionalidade lançamento antecipado

A partir do Edição de Assinatura do SharePoint Server Versão 24H1 (março de 2024), se o farm do SharePoint estiver configurado para a preferência de funcionalidade lançamento antecipado, pode configurar as propriedades do farm do SharePoint Server ao utilizar a Gestão de Certificados do SharePoint para gerir o certificado de cookie nonce. O certificado de cookie nonce faz parte da infraestrutura para garantir que os tokens de autenticação OIDC são seguros. Execute o seguinte script do PowerShell para configurar:

Importante

Para utilizar este script, o farm do SharePoint tem de estar definido como Lançamento Antecipado, conforme indicado acima. Se não estiver, o script será concluído sem erros, mas a chamada para $farm. UpdateNonceCertificate() não fará nada. Se não quiser configurar o farm para a Versão Antecipada, tem de utilizar o SPSE configurado antes dos passos da Versão 24H1 .

Observação

Inicie a Shell de Gestão do SharePoint como administrador do farm para executar o seguinte script. Leia cuidadosamente as instruções mencionadas no seguinte script do PowerShell. Terá de introduzir os seus próprios valores específicos do ambiente em determinados locais.

# Set up farm properties to work with OIDC

# Create the Nonce certificate
$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider' -Subject "CN=SharePoint Cookie Cert"

# Import certificate to Certificate Management
$certPath = "<path and file name to save the exported cert.  ex: c:\certs\nonce.pfx>"
$certPassword = ConvertTo-SecureString -String "<password>" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath $certPath -Password $certPassword
$nonceCert = Import-SPCertificate -Path $certPath -Password $certPassword -Store "EndEntity" -Exportable:$true

# Update farm property
$farm = Get-SPFarm 
$farm.UpdateNonceCertificate($nonceCert,$true)

Configurar Edição de Assinatura do SharePoint Server anterior à Versão 24H1

# Set up farm properties to work with OIDC
$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider' -Subject "CN=SharePoint Cookie Cert"
$rsaCert = [System.Security.Cryptography.X509Certificates.RSACertificateExtensions]::GetRSAPrivateKey($cert)
$fileName = $rsaCert.key.UniqueName

# If you have multiple SharePoint servers in the farm, you need to export the certificate by Export-PfxCertificate and import the certificate to all other SharePoint servers in the farm by Import-PfxCertificate. 

# After the certificate is successfully imported to SharePoint Server, we will need to grant access permission to the certificate's private key.

$path = "$env:ALLUSERSPROFILE\Microsoft\Crypto\RSA\MachineKeys\$fileName"
$permissions = Get-Acl -Path $path

# Replace the <web application pool account> with the real application pool account of your web application
$access_rule = New-Object System.Security.AccessControl.FileSystemAccessRule(<Web application pool account>, 'Read', 'None', 'None', 'Allow')
$permissions.AddAccessRule($access_rule)
Set-Acl -Path $path -AclObject $permissions

# Update farm properties
$farm = Get-SPFarm
$farm.Properties['SP-NonceCookieCertificateThumbprint']=$cert.Thumbprint
$farm.Properties['SP-NonceCookieHMACSecretKey']='seed'
$farm.Update()

Passo 3: Configurar o SharePoint para confiar nos fornecedores de identidade

Neste passo, irá criar um SPTrustedTokenIssuer que irá armazenar a configuração de que o SharePoint precisa para confiar no AD FS como um fornecedor OIDC. Inicie a Shell de Gestão do SharePoint como administrador do farm e execute o seguinte script para o criar:

Observação

Leia cuidadosamente as instruções mencionadas no seguinte script do PowerShell. Terá de introduzir valores específicos do ambiente em vários locais.

# Define claim types
$email = New-SPClaimTypeMapping "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming

# Public key of the AD FS signing certificate
$signingCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
# Set the AD FS URL where users are redirected to authenticate
$authendpointurl = "https://adfs.contoso.local/adfs/oauth2/authorize"
$registeredissuernameurl = "https://adfs.contoso.local/adfs"
$signouturl = "https://adfs.contoso.local/adfs/oauth2/logout"

# Replace <Client Identifier> with the value you saved in step #3 of AD FS Setup section
$clientIdentifier = "<Your Client Identifier>"

# Create a new SPTrustedIdentityTokenIssuer in SharePoint
New-SPTrustedIdentityTokenIssuer -Name "Contoso.local" -Description "Contoso.local" -ImportTrustCertificate $signingCert -ClaimsMappings $email -IdentifierClaim $email.InputClaimType  -RegisteredIssuerName $registeredissuernameurl  -AuthorizationEndPointUri $authendpointurl -SignOutUrl $signouturl -DefaultClientIdentifier $clientIdentifier

O New-SPTrustedIdentityTokenIssuer cmdlet do PowerShell é expandido para suportar o OIDC com os seguintes parâmetros:

Parâmetro Descrição
Nome Dá um nome ao novo emissor de tokens.
Descrição Fornece uma descrição para o novo emissor de tokens.
ImportarTrustCertificate Importa uma lista de Certificados X509, que serão utilizados para validar a partir do identificador id_token OIDC. Se o IDP OIDC utilizar mais do que um certificado para assinar digitalmente o id_token, importe estes certificados e o SharePoint validará id_token ao corresponder a assinatura digital gerada com estes certificados.
ClaimsMappings Um SPClaimTypeMapping objeto, que será utilizado para identificar que afirmação no id_token será considerado identificador no SharePoint.
IdentifierClaim Especifica o tipo de identificador.
RegisteredIssuerName Especifica o identificador do emissor, que emite o id_token. Será utilizado para validar o id_token.
AuthorizationEndPointUrl Especifica o ponto final de autorização do fornecedor de identidade OIDC.
SignoutUrl Especifica o ponto final de fim de sessão do fornecedor de identidade OIDC.
DefaultClientIdentifier Especifica o client_id do servidor do SharePoint, que é atribuído pelo fornecedor de identidade OID. Esta ação será validada relativamente à afirmação aud no id_token.
ResponseTypesSupported Especifica o tipo de resposta de IDP, que pode ser aceite por este emissor de tokens. Pode aceitar duas cadeias: id_token e code id_token. Se este parâmetro não for fornecido, será utilizado como predefinição code id_token .

Importante

O certificado relevante tem de ser adicionado ao arquivo de certificados da autoridade de raiz do SharePoint e existem duas opções possíveis para o fazer:

  • 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 adicionar o certificado:

    $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 AD FS for um certificado autoassinado (não recomendado por motivos de segurança).

    A chave pública do certificado de assinatura do AD FS tem de ser adicionada ao arquivo. Inicie a Shell de Gestão do SharePoint e execute o seguinte script para adicionar o certificado:

    $rootCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
    New-SPTrustedRootAuthority -Name "adfs.contoso.local signing certificate" -Certificate $rootCert
    

Passo 4: Configurar uma aplicação Web do SharePoint

Neste passo, irá configurar uma aplicação Web no SharePoint para utilizar a autenticação OIDC do AD FS, utilizando a SPTrustedIdentityTokenIssuer que foi criada no passo anterior.

Importante

  • A zona predefinida da aplicação Web do SharePoint tem de ter autenticação do Windows ativada. Isto é necessário para o crawler de pesquisa.
  • O URL do SharePoint que irá utilizar a federação OIDC do AD FS tem de ser configurado com HTTPS.

Pode concluir esta configuração ao:

  • Criar uma nova aplicação Web e utilizar a autenticação OIDC do Windows e do AD FS na zona Predefinida. Para criar uma nova aplicação Web, faça o seguinte:

    1. Inicie a Shell de Gestão do SharePoint e execute o seguinte script para criar um novo SPAuthenticationProvider:

      # This script creates a trusted authentication provider for OIDC    
      $sptrust = Get-SPTrustedIdentityTokenIssuer "contoso.local"
      $trustedAp = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
      
    2. Siga Criar uma aplicação Web no SharePoint Server para criar uma nova aplicação Web que permita HTTPS/SSL com o nome SharePoint - OIDC em contoso.local.

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

    4. Abra a aplicação Web que criou, selecione "Fornecedores de Autenticação" no Friso, clique na ligação para a zona "Predefinição" e selecione contoso.local como Fornecedor de Identidade Fidedigna.

      Fornecedores de Autenticação 3

    5. Navegue para Definições> do SistemaConfigurar Mapeamentos de Acesso Alternativo Coleção de Mapeamentos> deAcesso Alternativo.

    6. Filtre o ecrã com a nova aplicação Web e confirme que vê as seguintes informações:

      Coleção de Mapeamento de Acesso Alternativo-1

  • Expandir uma aplicação Web existente para definir a autenticação OIDC do AD FS numa nova zona. Para expandir uma aplicação Web existente, faça o seguinte:

    1. Inicie a Shell de Gestão do SharePoint e execute o PowerShell para expandir a aplicação Web:

      Exemplo:

      # Get the trusted provider
      $sptrust = Get-SPTrustedIdentityTokenIssuer "Contoso.local"
      $ap = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
      # Get the web app
      $wa = Get-SPWebApplication http://spsites
      # Extend the web app to the "Intranet" zone using trusted provider auth and a SharePoint managed certificate called "SharePoint OIDC Site"
      New-SPWebApplicationExtension -Identity $wa -Name "spsites" -port 443 -HostHeader 'spsites.contoso.local'-AuthenticationProvider $ap -SecureSocketsLayer -UseServerNameIndication -Certificate 'SharePoint OIDC Site' -Zone 'Intranet' -URL 'https://spsites.contoso.local' 
      
    2. Navegue para Definições> do SistemaConfigurar Mapeamentos de Acesso Alternativo Coleção de Mapeamentos> deAcesso Alternativo.

    3. Filtre o ecrã com a aplicação Web que foi expandida e confirme que vê as seguintes informações:

      Coleção de Mapeamento de Acesso Alternativo

Passo 5: Garantir que a aplicação Web está configurada com o certificado SSL

Uma vez que a autenticação do OpenID Connect 1.0 só pode funcionar com o protocolo HTTPS, tem de ser definido um certificado na aplicação Web correspondente. Se ainda não o tiver feito, execute os seguintes passos para definir um certificado:

  • Gerar o certificado do site:

    Observação

    Pode ignorar este passo se já tiver gerado o certificado.

    1. Abra a consola do PowerShell do SharePoint.

    2. Execute o seguinte script para gerar um certificado autoassinado e adicione-o ao farm do SharePoint:

      New-SPCertificate -FriendlyName "Contoso SharePoint (2021)" -KeySize 2048 -CommonName spsites.contoso.local -AlternativeNames extranet.contoso.local, onedrive.contoso.local -OrganizationalUnit "Contoso IT Department" -Organization "Contoso" -Locality "Redmond" -State "Washington" -Country "US" -Exportable -HashAlgorithm SHA256 -Path "\\server\fileshare\Contoso SharePoint 2021 Certificate Signing Request.txt"
      Move-SPCertificate -Identity "Contoso SharePoint (2021)" -NewStore EndEntity
      

      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.

  • Defina o certificado:

    Pode utilizar o seguinte cmdlet do PowerShell para atribuir o certificado à aplicação Web:

    Set-SPWebApplication -Identity https://spsites.contoso.local -Zone Default -SecureSocketsLayer -Certificate "Contoso SharePoint (2021)"
    

Passo 6: 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. Navegue para Gestão> de AplicaçõesCriar 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 Principal, selecione o ícone de livro para abrir a caixa de diálogo Pessoas Seletor.

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

  6. Filtre a lista à esquerda ao selecionar Organizações. Segue-se um resultado de exemplo:

    Selecionar Pessoas 3

  7. Aceda à conta e selecione OK.

  8. Na secção Administrador secundário da Coleção de Sites, selecione o ícone do livro para abrir a caixa de diálogo Pessoas Seletor.

  9. Na caixa de diálogo Pessoas Seletor, escreva o valor exato de e-mail da conta de administrador do AD FS, por exemplo yvand@contoso.local.

  10. Filtre a lista à esquerda ao selecionar Contoso.local. Segue-se um resultado de exemplo:

    Selecionar Pessoas 4

  11. Aceda à conta e selecione OK.

  12. Selecione OK para criar o conjunto de sites.

Assim que a coleção de sites for criada, deverá conseguir iniciar sessão com a conta de administrador da coleção de sites do Windows ou federado (AD FS OIDC).

Passo 7: Configurar o Seletor de Pessoas

Na autenticação OIDC, o Pessoas Picker não valida a entrada, o que pode levar a erros ortográficos ou utilizadores a selecionar acidentalmente o tipo de afirmação errado. Isto pode ser resolvido através de um Fornecedor de Afirmações Personalizadas ou através do novo fornecedor de afirmações apoiado pela UPA incluído no Edição de Assinatura do SharePoint Server. Para configurar um fornecedor de afirmações com suporte UPA, veja Enhanced Pessoas Picker for modern authentication (Selecionador de Pessoas Avançado para autenticação moderna).