Share via


Configurar a autenticação OIDC no SharePoint Server com Microsoft Entra ID

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

Pré-requisitos

Ao configurar o OIDC (OpenID Connect) com Microsoft Entra ID, você precisará dos seguintes recursos:

  1. Um farm de Edição de Assinatura do SharePoint Server (SPSE)

  2. Microsoft Entra função de Administrador Global do locatário M365

Este artigo usa os seguintes valores de exemplo para Microsoft Entra configuração do OIDC:

Valor Link
URL (Localizador de Recursos Uniformes) do site do SharePoint https://spsites.contoso.local/
OIDC site URL https://sts.windows.net/<tenantid>/
Microsoft Entra ponto de extremidade de autenticação OIDC https://login.microsoftonline.com/<tenantid>/oauth2/authorize
MICROSOFT ENTRA URL OIDC RegisteredIssuerName https://sts.windows.net/<tenantid>/
Microsoft Entra OIDC SignoutURL https://login.microsoftonline.com/<tenantid>/oauth2/logout
Tipo de declaraçã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 federado da coleção de sites yvand@contoso.local

Etapa 1: Provedor de identidade de instalação

Execute as seguintes etapas para configurar o OIDC com Microsoft Entra ID:

  1. Navegue até o portal de administração do Entra ID e entre com uma conta com a função administrador global.

  2. Em Aplicativos, selecione Registros de Aplicativo.

  3. Selecione Novo registro.

  4. Acesse a página https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsRegistrar um aplicativo .

  5. Na seção URI de redirecionamento , escolha "Web" como a Plataforma e insira sua URL do aplicativo Web do SharePoint Server, por exemplo: https://spsites.contoso.local/ e selecione Registrar.

    Registrar um aplicativo

  6. Salve o valor da ID do Diretório (locatário), pois a ID do locatário é usada nas etapas subsequentes. Salve também a ID do Aplicativo (cliente), que usamos como DefaultClientIdentifier na configuração do SharePoint.

    Salvar Aplicativo

  7. Depois de registrar o aplicativo, acesse a guia Autenticação, selecione a caixa marcar tokens de ID e selecione Salvar.

    Habilitar tokens de ID

  8. Acesse a guia Permissões de API e selecione Adicionar uma Permissão. Escolha Microsoft Graph e, em seguida, permissões delegadas. Selecione adicionar permissões de email e perfil e selecione Adicionar permissões.

    Permissões de API

  9. Acesse a guia Configuração do Token e selecione Adicionar declaração opcional. Para cada tipo de token (ID, Access, SAML), adicione email e declarações upn .

  10. Também na guia Configuração do Token , selecione Adicionar declaração de grupos. Os Grupos de Segurança são os mais comuns, mas os tipos de grupo selecionados dependem de quais tipos de grupos você deseja usar para dar acesso ao aplicativo Web do SharePoint. Para obter mais informações, consulte Configurar declarações opcionais de grupos e Configurar declarações de grupo para aplicativos usando Microsoft Entra ID.

    Configuração do token

  11. Vá para a guia Manifesto e altere manualmente replyUrlsWithType de https://spsites.contoso.local/ para https://spsites.contoso.local/*. Em seguida, selecione Salvar.

    Manifesto

Etapa 2: alterar propriedades do farm do SharePoint

Nesta etapa, você precisa 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

Começando com Edição de Assinatura do SharePoint Server Versão 24H1 (março de 2024), você pode configurar propriedades de farm do SharePoint Server empregando o Gerenciamento de Certificados do SharePoint para gerenciar o certificado de cookie de nonce. O certificado de cookie nonce faz parte da infraestrutura para garantir que os tokens de autenticação OIDC estejam seguros. Execute o script a seguir para configurar:

Observação

Inicie o Shell de Gerenciamento do SharePoint como administrador de farm para executar o script a seguir. Leia cuidadosamente as instruções mencionadas no script do PowerShell a seguir. Você precisará inserir 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 to save the exported cert>
$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 antes da versão 24H1

Antes da atualização de 24H1 (março de 2024), o certificado de cookie nonce deve ser gerenciado manualmente. Isso inclui instalar manualmente em cada servidor no farm e definir permissões na chave privada. O script do PowerShell a seguir pode ser usado para fazer isso.

Observação

Inicie o Shell de Gerenciamento do SharePoint como administrador de farm para executar o script a seguir. Leia cuidadosamente as instruções mencionadas no script do PowerShell a seguir. Você precisará inserir seus próprios valores específicos do ambiente em determinados locais.

# 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

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

Importante

O certificado de cookie nonce, com chave privada, deve ser instalado em todos os servidores do SharePoint no farm. Além disso, a permissão para a chave privada deve ser dada à conta de serviço do pool de aplicativos Web em cada servidor. A falha na conclusão dessa etapa resultará em falhas de autenticação OIDC. É recomendável usar o exemplo do PowerShell acima para definir a permissão no arquivo de chave privada para garantir que ele seja feito corretamente.

Etapa 3: configurar o SharePoint para confiar no provedor de identidade

Nesta etapa, você cria um SPTrustedTokenIssuer que armazena a configuração em que o SharePoint precisa confiar Microsoft Entra OIDC como o provedor OIDC.

Você pode configurar o SharePoint para confiar no provedor de identidade de qualquer uma das seguintes maneiras:

  • Configure o SharePoint para confiar em Microsoft Entra ID como o provedor OIDC usando o ponto de extremidade de metadados.
    • Usando o ponto de extremidade de metadados, vários parâmetros necessários são recuperados automaticamente do ponto de extremidade dos metadados.
  • Configure o SharePoint para confiar Microsoft Entra ID como o provedor OIDC manualmente.

Observação

Siga as etapas de configuração manual ou as etapas do ponto de extremidade dos metadados, mas não ambas.
O uso do ponto de extremidade de metadados é recomendado porque simplifica o processo.

Configurar o SharePoint para confiar Microsoft Entra OIDC usando o ponto de extremidade de metadados

Edição de Assinatura do SharePoint Server agora dá suporte ao uso do recurso de descoberta de metadados OIDC ao criar o Emissor de Token de Identidade Confiável.

Em Microsoft Entra ID, há duas versões de pontos de extremidade de descoberta OIDC:

  • V1.0: https://login.microsoftonline.com/<TenantID>/.well-known/openid-configuration
  • V2.0: https://login.microsoftonline.com/<TenantID>/v2.0/.well-known/openid-configuration

Importante

Atualmente, o SharePoint Server só dá suporte ao ponto de extremidade de metadados v1.0 quando usado para criar o Emissor de Token de Identidade Confiável. O script do PowerShell de exemplo abaixo usa o ponto de extremidade V1.0.

Quando você usa o ponto de extremidade de metadados fornecido pelo provedor de identidade OIDC, parte da configuração é recuperada do ponto de extremidade de metadados do provedor OIDC diretamente, incluindo:

  1. Certificado
  2. Emissor
  3. Ponto de Extremidade de Autorização
  4. SignoutURL

Isso pode simplificar a configuração do emissor de token OIDC.

Com o exemplo do PowerShell a seguir, podemos usar o ponto de extremidade de metadados do Microsoft Entra ID para configurar o SharePoint para confiar Microsoft Entra OIDC.

Observação

Leia cuidadosamente as instruções mencionadas no script do PowerShell a seguir. Você precisará inserir seus próprios valores específicos do ambiente em determinados locais. Por exemplo, substitua <tenantid> por sua própria ID do Diretório (locatário).

# Define claim types
# In this example, we're using Email Address as the Identity claim.
$emailClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "Email" -SameAsIncoming

# Set the AAD metadata endpoint URL. Please replace <TenantID> with the value saved in step #3 in the Entra ID setup section  
$metadataendpointurl = "https://login.microsoftonline.com/<TenantID>/.well-known/openid-configuration"

# Please replace <Application (Client) ID> with the value saved in step #3 in the Entra ID setup section
$clientIdentifier = "<Application (Client)ID>"

# Create a new SPTrustedIdentityTokenIssuer in SharePoint
New-SPTrustedIdentityTokenIssuer -Name "contoso.local" -Description "contoso.local" -ClaimsMappings $emailClaimMap -IdentifierClaim $emailClaimMap.InputClaimType -DefaultClientIdentifier $clientIdentifier -MetadataEndPoint $metadataendpointurl -Scope "openid profile"
Parâmetro Descrição
Nome Dá um nome ao novo emissor de token.
Descrição Fornece uma descrição para o novo emissor de token.
ImportTrustCertificate Um certificado usado para validar id_token do identificador OIDC.
ClaimsMappings Um SPClaimTypeMapping objeto, que é usado para identificar qual declaração id_token no é considerado identificador no SharePoint.
IdentifierClaim Especifica o tipo de identificador.
DefaultClientIdentifier Especifica o client_id do servidor do SharePoint, que é atribuído pelo provedor de identidade OIDC. Isso é validado em relação à declaração aud no id_token.
MetadadosEndPoint Especifica o ponto de extremidade de metadados conhecido do provedor de identidade OIDC, que pode ser usado para recuperar o certificado mais recente, o emissor, o ponto de extremidade de autorização e o ponto de extremidade de saída.

Configurar o SharePoint para confiar Microsoft Entra ID como o provedor OIDC manualmente

Ao configurar manualmente, vários parâmetros adicionais devem ser especificados. Você pode recuperar os valores do ponto de extremidade de descoberta OIDC.

Em Microsoft Entra ID, há duas versões de pontos de extremidade de autenticação OIDC. Portanto, há duas versões de pontos de extremidade de descoberta OIDC, respectivamente:

  • V1.0: https://login.microsoftonline.com/<TenantID>/.well-known/openid-configuration
  • V2.0: https://login.microsoftonline.com/<TenantID>/v2.0/.well-known/openid-configuration

Substitua TenantID pela ID do Diretório (locatário) salva na Etapa 1: configurar o provedor de identidade e conectar-se ao ponto de extremidade por meio do navegador. Em seguida, salve as seguintes informações:

Valor Link
authorization_endpoint https://login.microsoftonline.com/<tenantid>/oauth2/authorize
end_session_endpoint https://login.microsoftonline.com/<tenantid>/oauth2/logout
Emissor https://sts.windows.net/<tenantid>/
jwks_uri https://login.microsoftonline.com/common/discovery/keys

Abra jwks_uri (https://login.microsoftonline.com/common/discovery/keys) e salve todas as cadeias de caracteres de certificado x5c para uso posterior na configuração do SharePoint.

Chaves de descoberta

Inicie o Shell de Gerenciamento do SharePoint como administrador de farm e, depois de inserir os valores obtidos acima, execute o seguinte script para criar o Emissor de Token de Identidade Confiável:

Observação

Leia cuidadosamente as instruções mencionadas no script do PowerShell a seguir. Você precisará inserir seus próprios valores específicos do ambiente em determinados locais. Por exemplo, substitua <tenantid> por sua própria ID do Diretório (locatário).

# Define claim types
# In this example, we're using Email Address as the identity claim.
$emailClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "Email" -SameAsIncoming

# Public key of the AAD OIDC signing certificate. Please replace <x5c cert string> with the encoded cert string which you get from x5c certificate string of the keys of jwks_uri from Step #1
$encodedCertStrs = @()
$encodedCertStrs += <x5c cert string 1>
$encodedCertStrs += <x5c cert string 2>
...
$certificates = @()
foreach ($encodedCertStr in $encodedCertStrs) {
     $certificates += New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 @(,[System.Convert]::FromBase64String($encodedCertStr))
}

# Set the AAD OIDC URL where users are redirected to authenticate. Please replace <tenantid> accordingly
$authendpointurl = "https://login.microsoftonline.com/<tenantid>/oauth2/authorize"
$registeredissuernameurl = "https://sts.windows.net/<tenantid>/"
$signouturl = "https://login.microsoftonline.com/<tenantid>/oauth2/logout"

# Please replace <Application (Client) ID> with the value saved in step #3 in AAD setup section
$clientIdentifier = "<Application (Client)ID>"

# Create a new SPTrustedIdentityTokenIssuer in SharePoint
New-SPTrustedIdentityTokenIssuer -Name "contoso.local" -Description "contoso.local" -ImportTrustCertificate $certificates -ClaimsMappings emailClaimMap -IdentifierClaim $emailClaimMap.InputClaimType -RegisteredIssuerName $registeredissuernameurl -AuthorizationEndPointUri $authendpointurl -SignOutUrl $signouturl -DefaultClientIdentifier $clientIdentifier -Scope "openid profile"

Aqui, New-SPTrustedIdentityTokenIssuer o cmdlet do PowerShell é estendido para dar suporte ao OIDC usando os seguintes parâmetros:

Parâmetro Descrição
Nome Dá um nome ao novo emissor de token.
Descrição Fornece uma descrição para o novo emissor de token.
ImportTrustCertificate Importa uma lista de Certificados X509, que é usada para validar id_token do identificador OIDC. Se o provedor de identidade OIDC (IDP) usar mais de um certificado para assinar digitalmente, id_tokenimporte esses certificados e o SharePoint validar id_token correspondendo à assinatura digital gerada usando esses certificados.
ClaimsMappings Um SPClaimTypeMapping objeto, que é usado para identificar qual declaração id_token no é considerado identificador no SharePoint.
IdentifierClaim Especifica o tipo de identificador.
RegisteredIssuerName Especifica o identificador do emissor, que emite o id_token. Ele é usado para validar o id_token.
AuthorizationEndPointUrl Especifica o ponto de extremidade de autorização do provedor de identidade OIDC.
SignoutUrl Especifica o ponto de extremidade de saída do provedor de identidade OIDC.
DefaultClientIdentifier Especifica o client_id do servidor do SharePoint, que é atribuído pelo provedor de identidade OIDC. Isso é validado em relação à declaração aud no id_token.
ResponseTypesSupported Especifica o tipo de resposta do IDP, que é aceito por esse emissor de token. Ele pode aceitar duas cadeias de caracteres: id_token e code id_token. Se esse parâmetro não for fornecido, ele usará code id_token como padrão.

Etapa 4: configurar o aplicativo Web do SharePoint

Nesta etapa, você configura um aplicativo Web no SharePoint para ser federado com o Microsoft Entra OIDC, usando o SPTrustedIdentityTokenIssuer criado na etapa anterior.

Importante

  • A zona padrão do aplicativo Web do SharePoint deve ter autenticação do Windows habilitada. Isso é necessário para o rastreador Pesquisa.
  • A URL do SharePoint que usará Microsoft Entra federação OIDC deve ser configurada com HTTPS (Hypertext Transfer Protocol Secure).

Você pode concluir essa configuração por:

  • Criar um novo aplicativo Web e usar o Windows e Microsoft Entra autenticação OIDC na zona padrão.
  • Estendendo um aplicativo Web existente para definir Microsoft Entra autenticação OIDC em uma nova zona.

Para criar um novo aplicativo Web, faça o seguinte:

  1. Inicie o Shell de Gerenciamento do SharePoint e execute o script a seguir 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 Create um aplicativo Web no SharePoint Server para criar um novo aplicativo Web que habilita a SSL (Camada de Soquetes Seguros/HTTPS) chamada SharePoint – OIDC em contoso.local.

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

  4. Selecione o aplicativo Web que você criou, escolha "Provedores de Autenticação" na Faixa de Opções, clique no link para a zona Padrão e escolha contoso.local como Provedor de Identidade Confiável.

    Provedores de autenticação

  5. No site da Administração Central do SharePoint, navegue até Configurações do Sistema Configurar mapeamentos>alternativos de acessocoleção de mapeamento de > acesso alternativo.

  6. Filtre a exibição com o novo aplicativo Web e confirme se você vê as seguintes informações:

    Novo aplicativo Web

Para estender um aplicativo Web existente e configurá-lo para usar o provedor confiável "contoso.local", faça o seguinte:

  1. Inicie o Shell de Gerenciamento do SharePoint e execute o PowerShell para estender o aplicativo Web. O exemplo a seguir estende o aplicativo Web para a zona Intranet e configura a zona para usar o provedor confiável "Contoso.local" para autenticação.

Observação

Para que isso funcione, você deve ter um certificado válido chamado 'Site OIDC do SharePoint' importado para o farm. Consulte operações de gerenciamento de certificado SSL para obter mais informações.

# 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 (OIDC) 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' 
  1. No site da Administração Central do SharePoint, navegue até Configurações do Sistema Configurar mapeamentos>alternativos de acessocoleção de mapeamento de > acesso alternativo.

  2. Filtre a exibição com o aplicativo Web que foi estendido e confirme se você vê as seguintes informações:

    Site de Administração do SharePoint

Etapa 5: verifique se o aplicativo Web está configurado com certificado SSL

Como a autenticação OIDC 1.0 só pode funcionar com o protocolo HTTPS, um certificado deve ser definido no aplicativo Web correspondente. Se ainda não estiver configurado, execute as seguintes etapas para definir o certificado:

  1. Gerar o certificado do site:

    Observação

    Você pode ignorar essa etapa se já tiver gerado o certificado.

    1. Abra o console do SharePoint PowerShell.

    2. Execute o script a seguir para gerar um certificado autoassinado e adicioná-lo 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

      Certificados autoassinados são adequados apenas para fins de teste. Em ambientes de produção, recomendamos fortemente que você use certificados emitidos por uma autoridade de certificado.

  2. Defina o certificado:

    Você pode usar o seguinte cmdlet do PowerShell para atribuir o certificado ao aplicativo Web:

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

Etapa 6: Create a coleção de sites

Nesta etapa, você cria uma coleção de sites de equipe com dois administradores: um como administrador do Windows e outro como administrador federado (Microsoft Entra ID).

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

  2. Navegue até Gerenciamento>de Aplicativos Create coleções>de sites Create coleções de sites.

  3. Digite um título, URL e selecione o modelo Site da Equipe.

  4. Na seção Administrador do Conjunto de Sites Primários, selecione o ícone de livro Pessoas ícone picker (livro) para abrir a caixa de diálogo Pessoas Seletor.

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

  6. Filtre a lista à esquerda selecionando Organizações. A seguir está uma saída de exemplo:

    Selecionar pessoas

  7. Vá para a conta e selecione OK.

  8. Na seção Administrador do Conjunto de Sites Secundários, selecione o ícone do livro para abrir a caixa de diálogo Seletor Pessoas.

  9. Na caixa de diálogo Pessoas Picker, digite o valor exato de email da conta de administrador do Microsoft Entra, por exemplo yvand@contoso.local.

  10. Filtre a lista à esquerda selecionando contoso.local. A seguir está uma saída de exemplo:

    Selecionar pessoas 2

  11. Vá para a conta e selecione OK para fechar a caixa de diálogo seletor de Pessoas.

  12. Selecione OK novamente para criar a coleção de sites.

Depois que a coleção de sites for criada, você poderá entrar usando o Windows ou a conta de administrador de coleção de sites federada.

Etapa 7: Configurar Pessoas Seletor

Na autenticação OIDC, o Pessoas Picker não valida a entrada, o que pode levar a erros ortográficos ou usuários selecionando acidentalmente o tipo de declaração errado. Isso pode ser resolvido usando um Provedor de Declarações Personalizadas ou usando o novo provedor de declaração apoiado por UPA incluído no Edição de Assinatura do SharePoint Server. Para configurar um provedor de declaração com suporte para UPA, consulte Seletor de Pessoas aprimorado para autenticação moderna