Partilhar via


Configurar o SharePoint local para logon único com a ID do Microsoft Entra

Descrição do cenário

Neste artigo, 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: - Uma conta de usuário do Microsoft Entra com uma assinatura ativa. Se ainda não tiver uma, pode criar uma conta gratuitamente. - Uma das seguintes funções: - Application Administrator - Cloud Application Administrator - Application Owner.. Se não tiver uma, pode criar uma conta gratuita.

  • Uma fazenda do SharePoint 2013 ou posterior.

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) / domínio (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é Entra ID>Enterprise apps>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 artigo, é SharePoint corporate farm) e selecione 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 selecione Salvar.

Configurar o aplicativo corporativo

Nesta seção, você configura a autenticação SAML e define as declarações que sã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 Configuração Única Sign-On com SAML, selecione o ícone Editar no painel Configuração Básica do 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 Salvar.

  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:

    Configurações básicas de SAML

  6. Copie as informações de que você precisa posteriormente 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 num bloco de notas e substitua a cadeia de caracteres final /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. Observe que usar o Windows PowerShell pode fazer com que alguns comandos falhem. 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 criar uma nova aplicação web que utilize a autenticação do Windows e do Microsoft Entra na zona predefinida:

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

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

        Mapeamentos alternativos de acesso de aplicativo Web

    • 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 abre.

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

        Mapeamentos de acesso alternativo de aplicativo Web estendido

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 (https://spsites.contoso.local/), um certificado deve ser definido no site correspondente do IIS (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 Utilizador.
  2. Navegue para Entra ID>Utilizadores.
  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.extension. 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 selecione Compartilhar.
Na caixa de diálogo, você precisa digitar o valor exato do userprincipalname, por exemplo AzureUser1@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á.

Captura de tela dos resultados do seletor de pessoas sem o 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 este cenário, uma solução de código aberto chamada EntraCP pode ser usada para conectar o SharePoint 2019 / 2016 / 2013 ao Microsoft Entra ID e validar a entrada em relação ao seu locatário no 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:

Captura de tela dos resultados do seletor de pessoas com o 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 reivindicação de grupo à aplicação 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 selecione Salvar.
    3. Os Atributos do Usuário & Declarações devem ter esta aparência:

    Reclamações para utilizadores e grupos

Criar um grupo de segurança no Microsoft Entra ID

Vamos criar um grupo de segurança.

  1. Navegue até Entra ID>Grupos.

  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 selecione Criar:

    Criar um grupo de segurança do Microsoft Entra

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, 00aa00aa-bb11-cc22-dd33-44ee44ee44ee).
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. Isso não é fácil de usar nem confiá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:

Pesquisa no seletor de pessoas do grupo Microsoft Entra

Gerenciar o acesso de usuários convidados

Existem dois tipos de contas de convidado:

  • Contas de convidado B2B: esses utilizadores estão domiciliados num tenant 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 Sign-On Único com SAML, selecione o ícone Editar no painel Atributos do Utilizador e Reivindicaçõ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 selecione Salvar.

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

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

    Atributos do usuário e declarações para convidados

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. Selecione Ok

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é Entra ID>Aplicativos empresariais> Selecione o aplicativo empresarial criado anteriormente e selecione Início de sessão único.

  3. Na página Configurar Sign-On Ú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 todas as aplicações web adicionais que necessitam de autenticar utilizadores com Microsoft Entra ID e selecione Salvar.

Especificar aplicativos Web adicionais

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 que você criou 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