Configurar a autenticação OIDC no SharePoint Server com os Serviços de Federação do Active Directory (AD FS)
APLICA-SE A:2013 2016 2019 Subscription Edition SharePoint 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:
- Uma quinta Edição de Assinatura do SharePoint Server.
- 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:
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).
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.
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.No campo URL de Redirecionamento , introduza
https://spsites.contoso.local/
e selecione Adicionar. Em seguida, selecione Avançar.Aceda à página Resumo e selecione Seguinte.
Aceda à página Concluir e selecione Fechar.
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:
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:
Abra a aplicação Web que criou e aceda ao separador Regra de Transformação de Problemas .
Selecione Adicionar Regra e selecione Enviar Atributos LDAP como Afirmações na lista de opções.
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 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:
Abra a aplicação Web que criou e aceda ao separador Regra de Transformação de Problemas .
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 .
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");
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.
- Para obter mais informações sobre como configurar as propriedades do farm do SharePoint para Edição de Assinatura do SharePoint Server Versão 24H1, consulte Configurar a Versão 24H1 ou superior do SPSE.
- Para obter mais informações sobre como configurar propriedades de farm do SharePoint para Edição de Assinatura do SharePoint Server Versão anterior a 24H1, veja Configurar o SPSE antes da Versão 24H1.
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:
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
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.
Abra o site de Administração Central do SharePoint.
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.
Navegue para Definições> do SistemaConfigurar Mapeamentos de Acesso Alternativo Coleção de Mapeamentos> deAcesso Alternativo.
Filtre o ecrã com a nova aplicação Web e confirme que vê as seguintes informações:
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:
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'
Navegue para Definições> do SistemaConfigurar Mapeamentos de Acesso Alternativo Coleção de Mapeamentos> deAcesso Alternativo.
Filtre o ecrã com a aplicação Web que foi expandida e confirme que vê as seguintes informações:
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.
Abra a consola do PowerShell do SharePoint.
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).
Abra o site de Administração Central do SharePoint.
Navegue para Gestão> de AplicaçõesCriar 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 Principal, selecione o ícone de livro para abrir a caixa de diálogo Pessoas Seletor.
Na caixa de diálogo Pessoas Seletor, escreva a conta de administrador do Windows, por exemplo, yvand.
Filtre a lista à esquerda ao selecionar Organizações. Segue-se um resultado de exemplo:
Aceda à conta e selecione OK.
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.
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.
Filtre a lista à esquerda ao selecionar Contoso.local. Segue-se um resultado de exemplo:
Aceda à conta e selecione OK.
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).