Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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
- Entre no centro de administração do Microsoft Entra como pelo menos um administrador de aplicativos na nuvem.
- Navegue até Entra ID>Enterprise apps>Novo aplicativo.
- Na caixa de pesquisa, digite SharePoint local. Selecione SharePoint local no painel de resultados.
- Especifique um nome para seu aplicativo (neste artigo, é
SharePoint corporate farm) e selecione Criar para adicionar o aplicativo. - 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.
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.Na página Configuração Única Sign-On com SAML, selecione o ícone Editar no painel Configuração Básica do SAML.
Na seção Configuração básica do SAML , siga estas etapas:
Na caixa Identificador , verifique se esse valor está presente:
urn:sharepoint:federation.Na caixa URL de resposta , insira uma URL usando este padrão:
https://spsites.contoso.local/_trust/.Na caixa URL de início de sessão , introduza um URL utilizando este padrão:
https://spsites.contoso.local/.Selecione Salvar.
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/emailaddresshttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/givennamehttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
As configurações agora devem ter esta aparência:
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.
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:
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, $trustedApAbra o site da Administração Central do SharePoint .
Em Configurações do Sistema, selecione Configurar Mapeamentos de Acesso Alternativo. A caixa Coleção de Mapeamentos Alternativos de Acesso abre.
Filtre a exibição com o novo aplicativo Web e confirme se você vê algo assim:
Se você estender um aplicativo Web existente para usar a autenticação do Microsoft Entra em uma nova zona:
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 $apAbra o site da Administração Central do SharePoint .
Em Configurações do Sistema, selecione Configurar Mapeamentos de Acesso Alternativo. A caixa Coleção de Mapeamentos Alternativos de Acesso abre.
Filtre a exibição com o aplicativo Web que foi estendido e confirme se você vê algo assim:
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.
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.
Abra o console do Windows PowerShell.
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"
Definir o certificado no site do IIS
- Abra o console do Gerenciador dos Serviços de Informações da Internet.
- Expanda o servidor na visualização em árvore, expanda Sites, selecione o site SharePoint - Microsoft Entra ID e selecione Ligações.
- Selecione vinculação https e, em seguida, selecione Editar.
- 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
- Entre no centro de administração do Microsoft Entra como pelo menos um Administrador de Utilizador.
- Navegue para Entra ID>Utilizadores.
- Selecione Novo usuário>Criar novo usuário, na parte superior da tela.
- Nas propriedades do usuário , siga estas etapas:
- No campo Nome para exibição , digite
B.Simon. - No campo Nome principal do usuário, digite o username@companydomain.extension. Por exemplo,
B.Simon@contoso.com. - Marque a caixa de seleção Mostrar senha e anote o valor exibido na caixa Senha .
- Selecione Rever + criar.
- No campo Nome para exibição , digite
- Selecione Criar.
- 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á.
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:
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
Na Visão geral do aplicativo
SharePoint corporate farmEnterprise , selecione 2. Configure o logon único.Na seção Atributos do Usuário & Declarações , siga estas etapas se não houver nenhuma declaração de grupo presente:
- 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
- Marque Personalizar o nome da declaração de grupo, marque Emitir grupos como declarações de função e selecione Salvar.
- Os Atributos do Usuário & Declarações devem ter esta aparência:
Criar um grupo de segurança no Microsoft Entra ID
Vamos criar um grupo de segurança.
Navegue até Entra ID>Grupos.
Selecione Novo grupo.
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:
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:
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
Na Visão geral do aplicativo
SharePoint corporate farmEnterprise , selecione 2. Configure o logon único.Na página Configurar Sign-On Único com SAML, selecione o ícone Editar no painel Atributos do Utilizador e Reivindicações.
Na seção Atributos do Usuário & Declarações , siga estas etapas:
Selecione Identificador de Usuário Exclusivo (ID de Nome), altere sua propriedade Source Attribute para user.localuserprincipalname e selecione Salvar.
Selecione
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name, altere sua propriedade Source Attribute para user.localuserprincipalname e selecione Save.Os Atributos do Usuário & Declarações devem ter esta aparência:
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:
- Abra o site da Administração Central do SharePoint .
- Em Segurança, selecione Configuração global do EntraCP.
- Na seção Propriedade do identificador de usuário: defina o identificador de usuário para usuários 'convidados': como UserPrincipalName.
- 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
- 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
Entre no centro de administração do Microsoft Entra como pelo menos um administrador de aplicativos na nuvem.
Navegue até Entra ID>Aplicativos empresariais> Selecione o aplicativo empresarial criado anteriormente e selecione Início de sessão único.
Na página Configurar Sign-On Único com SAML , edite Configuração Básica de SAML.
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.
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