Share via


Tutorial: Implementar autenticação federada entre o Microsoft Entra ID e o SharePoint local

Descrição do cenário

Neste tutorial, você configura uma autenticação federada entre o Microsoft Entra ID e o SharePoint local. O objetivo é permitir que os usuários entrem na ID do Microsoft Entra e usem sua identidade para acessar os sites locais do SharePoint.

Pré-requisitos

Para executar a configuração, você precisa dos seguintes recursos:

  • Um locatário do Microsoft Entra. Se não tiver uma, poderá criar uma conta gratuita.
  • Um farm do SharePoint 2013 ou mais recente.

Este artigo usa os seguintes valores:

  • Nome do aplicativo corporativo (no Microsoft Entra ID): SharePoint corporate farm
  • Identificador de confiança (no Microsoft Entra ID) / realm (no SharePoint): urn:sharepoint:federation
  • loginUrl (para Microsoft Entra ID): https://login.microsoftonline.com/dc38a67a-f981-4e24-ba16-4443ada44484/wsfed
  • URL do site do SharePoint: https://spsites.contoso.local/
  • URL de resposta do site do SharePoint: https://spsites.contoso.local/_trust/
  • Nome da configuração de confiança do SharePoint: MicrosoftEntraTrust
  • UserPrincipalName do usuário de teste do Microsoft Entra: AzureUser1@demo1984.onmicrosoft.com

Configurar um aplicativo corporativo no Microsoft Entra ID

Para configurar a federação no Microsoft Entra ID, você precisa criar um aplicativo Enterprise dedicado. Sua configuração é simplificada usando o modelo SharePoint on-premises pré-configurado que pode ser encontrado na galeria de aplicativos.

Criar o aplicativo corporativo

  1. Entre no centro de administração do Microsoft Entra como pelo menos um administrador de aplicativos na nuvem.
  2. Navegue até Identity>Applications>Enterprise applications>Novo aplicativo.
  3. Na caixa de pesquisa, digite SharePoint local. Selecione SharePoint local no painel de resultados.
  4. Especifique um nome para seu aplicativo (neste tutorial, é SharePoint corporate farm) e clique em Criar para adicionar o aplicativo.
  5. No novo aplicativo empresarial, selecione Propriedades e verifique o valor para Atribuição de usuário necessária?. Para esse cenário, defina seu valor como Não e clique em Salvar.

Configurar o aplicativo corporativo

Nesta seção, você configura a autenticação SAML e define as declarações que serão enviadas ao SharePoint após a autenticação bem-sucedida.

  1. Na Visão geral do aplicativo SharePoint corporate farmEnterprise , selecione 2. Configure o logon único e escolha o SAML na próxima caixa de diálogo.

  2. Na página Configurar Logon Único com SAML, selecione o ícone Editar no painel Configuração Básica de SAML.

  3. Na seção Configuração básica do SAML, siga estas etapas:

    1. Na caixa Identificador, verifique se esse valor está presente: urn:sharepoint:federation.

    2. Na caixa URL de resposta, insira uma URL usando este padrão: https://spsites.contoso.local/_trust/.

    3. Na caixa URL de início de sessão , introduza um URL utilizando este padrão: https://spsites.contoso.local/.

    4. Selecione Guardar.

  4. Na seção Atributos do Usuário & Declarações , exclua os seguintes tipos de declaração, que são inúteis, pois não serão usados pelo SharePoint para conceder permissões:

    • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
    • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
    • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
  5. As configurações agora devem ter esta aparência:

    Basic SAML settings

  6. Copie as informações de que você precisará mais tarde no SharePoint:

    • Na seção Certificado de Assinatura SAML, Baixe o Certificado (Base64). Esta é a chave pública do certificado de assinatura usado pelo Microsoft Entra ID para assinar o token SAML. O SharePoint precisará dele para verificar a integridade dos tokens SAML de entrada.

    • Na seção Configurar farm corporativo do SharePoint, copie a URL de Logon em um bloco de notas e substitua a cadeia de caracteres à direita /saml2 por /wsfed.

    Importante

    Certifique-se de substituir /saml2 por /wsfed para garantir que o Microsoft Entra ID emita um token SAML 1.1, conforme exigido pelo SharePoint.

    • Na seção Configurar farm corporativo do SharePoint, copie a URL de Logout

Configurar o SharePoint para confiar no Microsoft Entra ID

Criar a confiança no SharePoint

Nesta etapa, você cria um SPTrustedLoginProvider para armazenar a configuração que o SharePoint precisa para confiar no Microsoft Entra ID. Para isso, você precisa das informações do Microsoft Entra ID que você copiou acima. Inicie o Shell de Gerenciamento do SharePoint e execute o seguinte script para criá-lo:

# Path to the public key of the Microsoft Entra SAML signing certificate (self-signed), downloaded from the Enterprise application in the Azure portal
$signingCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Microsoft Entra app\SharePoint corporate farm.cer")
# Unique realm (corresponds to the "Identifier (Entity ID)" in the Microsoft Entra enterprise application)
$realm = "urn:sharepoint:federation"
# Login URL copied from the Microsoft Entra enterprise application. Make sure to replace "saml2" with "wsfed" at the end of the URL:
$loginUrl = "https://login.microsoftonline.com/dc38a67a-f981-4e24-ba16-4443ada44484/wsfed"

# Define the claim types used for the authorization
$userIdentifier = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" -IncomingClaimTypeDisplayName "name" -LocalClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"
$role = New-SPClaimTypeMapping "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" -SameAsIncoming

# Let SharePoint trust the Microsoft Entra signing certificate
New-SPTrustedRootAuthority -Name "Microsoft Entra signing certificate" -Certificate $signingCert

# Create a new SPTrustedIdentityTokenIssuer in SharePoint
$trust = New-SPTrustedIdentityTokenIssuer -Name "MicrosoftEntraTrust" -Description "Microsoft Entra ID" -Realm $realm -ImportTrustCertificate $signingCert -ClaimsMappings $userIdentifier, $role -SignInUrl $loginUrl -IdentifierClaim $userIdentifier.InputClaimType

Configurar o aplicativo Web do SharePoint

Nesta etapa, você configura um aplicativo Web no SharePoint para confiar no aplicativo Microsoft Entra Enterprise criado acima. Existem regras importantes a ter em mente:

  • A zona padrão do aplicativo Web do SharePoint deve ter a autenticação do Windows habilitada. Isso é necessário para o rastreador de pesquisa.
  • A URL do SharePoint que usará a autenticação do Microsoft Entra deve ser definida com HTTPS.
  1. Crie ou estenda o aplicativo Web. Este artigo descreve duas configurações possíveis:

    • Se você criar um novo aplicativo Web que use a autenticação do Windows e do Microsoft Entra na zona Padrão:

      1. Inicie o Shell de Gerenciamento do SharePoint e execute o seguinte script:

        # This script creates a new web application and sets Windows and Microsoft Entra authentication on the Default zone
        # URL of the SharePoint site federated with Microsoft Entra
        $trustedSharePointSiteUrl = "https://spsites.contoso.local/"
        $applicationPoolManagedAccount = "Contoso\spapppool"
        
        $winAp = New-SPAuthenticationProvider -UseWindowsIntegratedAuthentication -DisableKerberos:$true
        $sptrust = Get-SPTrustedIdentityTokenIssuer "MicrosoftEntraTrust"
        $trustedAp = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust    
        
        New-SPWebApplication -Name "SharePoint - Microsoft Entra" -Port 443 -SecureSocketsLayer -URL $trustedSharePointSiteUrl -ApplicationPool "SharePoint - Microsoft Entra" -ApplicationPoolAccount (Get-SPManagedAccount $applicationPoolManagedAccount) -AuthenticationProvider $winAp, $trustedAp
        
      2. Abra o site da Administração Central do SharePoint.

      3. Em Configurações do Sistema, selecione Configurar Mapeamentos de Acesso Alternativo. A caixa Coleção de Mapeamentos Alternativos de Acesso é aberta.

      4. Filtre a exibição com o novo aplicativo Web e confirme se você vê algo assim:

        Alternate Access Mappings of web application

    • Se você estender um aplicativo Web existente para usar a autenticação do Microsoft Entra em uma nova zona:

      1. Inicie o Shell de Gerenciamento do SharePoint e execute o seguinte script:

        # This script extends an existing web application to set Microsoft Entra 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 "MicrosoftEntraTrust"
        $ap = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
        $wa = Get-SPWebApplication $webAppDefaultZoneUrl
        
        New-SPWebApplicationExtension -Name "SharePoint - Microsoft Entra" -Identity $wa -SecureSocketsLayer -Zone Internet -Url $trustedSharePointSiteUrl -AuthenticationProvider $ap
        
      2. Abra o site da Administração Central do SharePoint.

      3. Em Configurações do Sistema, selecione Configurar Mapeamentos de Acesso Alternativo. A caixa Coleção de Mapeamentos Alternativos de Acesso é aberta.

      4. Filtre a exibição com o aplicativo Web que foi estendido e confirme se você vê algo assim:

        Alternate Access Mappings of extended web application

Depois que o aplicativo Web for criado, você poderá criar um conjunto de sites raiz e adicionar sua conta do Windows como administrador primário do conjunto de sites.

  1. Criar um certificado para o site do SharePoint

    Como a URL do SharePoint usa o protocolo HTTPS (), um certificado deve ser definido no site correspondente do IIS (https://spsites.contoso.local/Serviços de Informações da Internet). Siga estas etapas para gerar um certificado autoassinado:

    Importante

    Os certificados autoassinados são adequados apenas para fins de teste. Em ambientes de produção, é altamente recomendável usar certificados emitidos por uma autoridade de certificação.

    1. Abra o console do Windows PowerShell.

    2. Execute o seguinte script para gerar um certificado autoassinado e adicioná-lo ao armazenamento MY do computador:

      New-SelfSignedCertificate -DnsName "spsites.contoso.local" -CertStoreLocation "cert:\LocalMachine\My"
      
  2. Definir o certificado no site do IIS

    1. Abra o console do Gerenciador dos Serviços de Informações da Internet.
    2. Expanda o servidor na visualização em árvore, expanda Sites, selecione o site SharePoint - Microsoft Entra ID e selecione Ligações.
    3. Selecione vinculação https e, em seguida, selecione Editar.
    4. No campo Certificado TLS/SSL, escolha o certificado a ser usado (por exemplo, spsites.contoso.local criado acima) e selecione OK.

    Nota

    Se você tiver vários servidores Web Front-End, precisará repetir essa operação em cada um.

A configuração básica da confiança entre o SharePoint e o Microsoft Entra ID está concluída. Vamos ver como entrar no site do SharePoint como um usuário do Microsoft Entra.

Iniciar sessão como utilizador membro

O Microsoft Entra ID tem dois tipos de usuários: usuários convidados e usuários membros. Vamos começar com um usuário membro, que é apenas um usuário hospedado em sua organização.

Criar um usuário membro no Microsoft Entra ID

  1. Entre no centro de administração do Microsoft Entra como pelo menos um Administrador de Usuário.
  2. Navegue até Identidade>de usuários Todos os usuários.>
  3. Selecione Novo usuário Criar novo usuário>, na parte superior da tela.
  4. Nas propriedades do usuário , siga estas etapas:
    1. No campo Nome para exibição , digite B.Simon.
    2. No campo Nome principal do usuário, digite o username@companydomain.extensionarquivo . Por exemplo, B.Simon@contoso.com.
    3. Marque a caixa de seleção Mostrar senha e anote o valor exibido na caixa Senha .
    4. Selecione Rever + criar.
  5. Selecione Criar.
  6. Você pode compartilhar o site com este usuário e permitir o acesso a ele.

Conceder permissões ao usuário do Microsoft Entra no SharePoint

Entre no conjunto de sites raiz do SharePoint como sua conta do Windows (administrador do conjunto de sites) e clique em Compartilhar.
Na caixa de diálogo, você precisa digitar o valor exato do userprincipalname, por exemploAzureUser1@demo1984.onmicrosoft.com, e ter cuidado para selecionar o resultado da declaração de nome (mova o mouse sobre um resultado para ver seu tipo de declaração)

Importante

Tenha cuidado para digitar o valor exato do usuário que você deseja convidar e escolha o tipo de declaração apropriado na lista, caso contrário, o compartilhamento não funcionará.

Screenshot of people picker results without EntraCP.

Essa limitação ocorre porque o SharePoint não valida a entrada do seletor de pessoas, o que pode ser confuso e levar a erros ortográficos ou usuários escolhendo acidentalmente o tipo de declaração errado.
Para corrigir esse cenário, uma solução de código aberto chamada EntraCP pode ser usada para conectar o SharePoint 2019 / 2016 / 2013 com o Microsoft Entra ID e resolver a entrada contra seu locatário do Microsoft Entra. Para obter mais informações, consulte EntraCP.

Abaixo está a mesma pesquisa com o EntraCP configurado: O SharePoint retorna usuários reais com base na entrada:

Screenshot of people picker results with EntraCP.

Importante

O EntraCP não é um produto da Microsoft e não é suportado pelo Suporte da Microsoft. Para baixar, instalar e configurar o EntraCP no farm do SharePoint local, consulte o site do EntraCP .

O usuário AzureUser1@demo1984.onmicrosoft.com do Microsoft Entra agora pode usar sua identidade para entrar no site https://spsites.contoso.local/do SharePoint.

Conceder permissões a um grupo de segurança

Adicionar o tipo de declaração de grupo ao aplicativo empresarial

  1. Na Visão geral do aplicativo SharePoint corporate farmEnterprise , selecione 2. Configure o logon único.

  2. Na seção Atributos do Usuário & Declarações , siga estas etapas se não houver nenhuma declaração de grupo presente:

    1. Selecione Adicionar uma declaração de grupo, selecione Grupos de segurança, certifique-se de que o Atributo de Origem está definido como ID de Grupo
    2. Marque Personalizar o nome da declaração de grupo, marque Emitir grupos como declarações de função e clique em Salvar.
    3. Os Atributos do Usuário & Declarações devem ter esta aparência:

    Claims for users and group

Criar um grupo de segurança no Microsoft Entra ID

Vamos criar um grupo de segurança.

  1. Navegue até Grupos>de identidade.

  2. Selecione Novo grupo.

  3. Preencha o Tipo de grupo (Segurança), Nome do grupo (por exemplo, AzureGroup1) e Tipo de associação. Adicione o usuário que você criou acima como membro e clique em Criar:

    Create a Microsoft Entra security group

Conceder permissões ao grupo de segurança no SharePoint

Os grupos de segurança do Microsoft Entra são identificados com seu atributo Id, que é um GUID (por exemplo, E89EF0A3-46CC-45BF-93A4-E078FCEBFC45).
Sem um provedor de declarações personalizado, os usuários precisam digitar o valor exato (Id) do grupo no seletor de pessoas e selecionar o tipo de declaração correspondente. Isto não é fácil de utilizar nem fiável.
Para evitar isso, este artigo usa o provedor de declarações de terceiros EntraCP para localizar o grupo de forma amigável no SharePoint:

People picker search Microsoft Entra group

Gerenciar o acesso de usuários convidados

Existem dois tipos de contas de convidado:

  • Contas de convidado B2B: esses usuários estão hospedados em um locatário externo do Microsoft Entra
  • Contas de convidado MSA: esses usuários estão hospedados em um provedor de identificação da Microsoft (Hotmail, Outlook) ou em um provedor de conta social (Google ou similar)

Por padrão, o ID do Microsoft Entra define o "Identificador de Usuário Exclusivo" e a declaração "nome" para o atributo user.userprincipalname.
Infelizmente, esse atributo é ambíguo para contas de convidados, como mostra a tabela abaixo:

Atributo de origem definido no ID do Microsoft Entra Propriedade real usada pelo Microsoft Entra ID para hóspedes B2B Propriedade real usada pelo Microsoft Entra ID para hóspedes do MSA Propriedade na qual o SharePoint pode confiar para validar a identidade
user.userprincipalname mailPor exemplo: guest@PARTNERTENANT userprincipalnamePor exemplo: guest_outlook.com#EXT#@TENANT.onmicrosoft.com Ambígua
user.localuserprincipalname userprincipalnamePor exemplo: guest_PARTNERTENANT#EXT#@TENANT.onmicrosoft.com userprincipalnamePor exemplo: guest_outlook.com#EXT#@TENANT.onmicrosoft.com userprincipalname

Como conclusão, para garantir que as contas de convidado sejam todas identificadas com o mesmo atributo, as declarações de identificador do aplicativo empresarial devem ser atualizadas para usar o atributo user.localuserprincipalname em vez de user.userprincipalname.

Atualize o aplicativo para usar um atributo consistente para todos os usuários convidados

  1. Na Visão geral do aplicativo SharePoint corporate farmEnterprise , selecione 2. Configure o logon único.

  2. Na página Configurar Logon Único com SAML, selecione o ícone Editar no painel Atributos do Usuário & Declarações.

  3. Na seção Atributos do Usuário & Declarações , siga estas etapas:

    1. Selecione Identificador de Usuário Exclusivo (ID de Nome), altere sua propriedade Source Attribute para user.localuserprincipalname e clique em Salvar.

    2. Selecione http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name, altere sua propriedade Source Attribute para user.localuserprincipalname e clique em Salvar.

    3. Os Atributos do Usuário & Declarações devem ter esta aparência:

    User Attributes & Claims for Guests

Convidar usuários convidados no SharePoint

Nota

Esta seção pressupõe que o provedor de reclamações EntraCP é usado

Na seção acima, você atualizou o aplicativo corporativo para usar um atributo consistente para todas as contas de convidado.
Agora, a configuração do EntraCP precisa ser atualizada para refletir essa mudança e usar o atributo userprincipalname para contas de convidado:

  1. Abra o site da Administração Central do SharePoint.
  2. Em Segurança, selecione Configuração global do EntraCP.
  3. Na seção Propriedade do identificador de usuário: defina o identificador de usuário para usuários 'convidados': como UserPrincipalName.
  4. Clique em Ok

Screenshot of EntraCP guests accounts configuration.

Agora você pode convidar qualquer usuário convidado nos sites do SharePoint.

Configurar a federação para vários aplicativos Web

A configuração funciona para um único aplicativo Web, mas uma configuração adicional é necessária se você pretende usar o mesmo provedor de identidade confiável para vários aplicativos Web. Por exemplo, suponha que você tenha um aplicativo https://otherwebapp.contoso.local/ Web separado e agora queira habilitar a autenticação do Microsoft Entra nele. Para fazer isso, configure o SharePoint para passar o parâmetro SAML WReply e adicione as URLs no aplicativo empresarial.

Configurar o SharePoint para passar o parâmetro SAML WReply

  1. No servidor do SharePoint, abra o Shell de Gerenciamento do SharePoint 201x e execute os seguintes comandos. Use o mesmo nome para o emissor de token de identidade confiável que você usou anteriormente.
$t = Get-SPTrustedIdentityTokenIssuer "MicrosoftEntraTrust"
$t.UseWReplyParameter = $true
$t.Update()

Adicionar os URLs no aplicativo corporativo

  1. Entre no centro de administração do Microsoft Entra como pelo menos um administrador de aplicativos na nuvem.

  2. Navegue até Aplicativos de identidade>>Aplicativos> corporativos Selecione o aplicativo empresarial criado anteriormente e selecione Logon único.

  3. Na página Configurar Logon Único com SAML, edite Configuração Básica de SAML.

  4. Na seção URL de resposta (URL de serviço ao consumidor de asserção), adicione a URL (por exemplo, https://otherwebapp.contoso.local/) de todos os aplicativos Web adicionais que precisam entrar em usuários com a ID do Microsoft Entra e clique em Salvar.

Specify additional web applications

Configurar o tempo de vida do token de segurança

Por padrão, o Microsoft Entra ID cria um token SAML válido por 1 hora, que não pode ser personalizado no portal do Azure ou usando uma política de Acesso Condicional.
No entanto, é possível criar uma política de tempo de vida de token personalizada e atribuí-la ao aplicativo empresarial criado para o SharePoint Server.
Você pode executar o script abaixo para conseguir isso:

Install-Module Microsoft.Graph
Connect-MgGraph -Scopes "Policy.ReadWrite.ApplicationConfiguration","Policy.Read.All","Application.ReadWrite.All"

$appDisplayName = "SharePoint corporate farm"
$sp = Get-MgServicePrincipal -Search DisplayName:"$appDisplayName" -ConsistencyLevel eventual

$oldPolicy = Get-MgServicePrincipalTokenLifetimePolicy -ServicePrincipalId $sp.Id
if ($null -ne $oldPolicy) {
	# There can be only 1 TokenLifetimePolicy associated to the service principal (or 0, as by default)
    Remove-MgServicePrincipalAppManagementPolicy -AppManagementPolicyId $oldPolicy.Id -ServicePrincipalId $sp.Id
}

# Get / create a custom token lifetime policy
$policyDisplayName = "WebPolicyScenario"
$policy = Get-MgPolicyTokenLifetimePolicy -Filter "DisplayName eq '$policyDisplayName'"
if ($null -eq $policy) {
	$params = @{
		Definition = @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"4:00:00"}}') 
		DisplayName = $policyDisplayName
		IsOrganizationDefault = $false
	}
	$policy = New-MgPolicyTokenLifetimePolicy -BodyParameter $params
}

# Assign the token lifetime policy to an app
$body = @{
	"@odata.id" = "https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies/$($policy.Id)"
}
Invoke-GraphRequest -Uri ('https://graph.microsoft.com/v1.0/servicePrincipals/{0}/tokenLifetimePolicies/$ref' -f $sp.Id) -Method POST -Body $body