Partilhar via


Seletor de Pessoas aprimorado para autenticação moderna

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

Quando é utilizada a autenticação moderna ("fornecedor de identidade fidedigna"), como a Linguagem SAML (Security Assertion Markup Language) 1.1 ou OpenID Connect (OIDC) 1.0, o controlo Seletor de Pessoas não consegue procurar, resolver e validar utilizadores e grupos. Em vez disso, o comportamento predefinido é resolver qualquer valor introduzido, mesmo que não seja uma afirmação válida. Em versões anteriores do SharePoint Server, a única solução era utilizar um Fornecedor de Afirmações Personalizadas.

No SharePoint Server Subscription Edition (SPSE), o Seletor de Pessoas foi melhorado para permitir a resolução de utilizadores e grupos com base nos respetivos perfis na Aplicação de Perfil de Utilizador (UPA, também conhecida como UPSA). A UPA tem de ser configurada para sincronizar utilizadores e grupos a partir do arquivo de associação do fornecedor de identidade fidedigno. Isto permite que o Selecionador de Pessoas resolva utilizadores e grupos válidos sem que seja necessário um Fornecedor de Afirmações Personalizadas.

Observação

A utilização de um Fornecedor de Afirmações Personalizadas na Edição de Subscrição do SharePoint Server continua a ser uma solução válida para o problema do Selecionador de Pessoas. Se as limitações do fornecedor de afirmações apoiadas pela UPA abordadas neste artigo forem demasiado limitadoras para a sua organização, veja Criar um fornecedor de afirmações no SharePoint

Importante

O motor de importação de perfis de utilizador predefinido incluído com o SharePoint Server, denominado "Importação do Active Directory" (Importação do AD), só pode ser utilizado para importar perfis de utilizador de domínios e florestas do Active Directory no local. Não pode ser configurado para importar perfis de utilizador do Microsoft Entra ID. Se estiver a utilizar a autenticação OIDC suportada pelo Entra ID, poderá considerar utilizar um Fornecedor de Afirmações Personalizadas para fornecer a funcionalidade Selecionador de Pessoas.

Seguem-se os passos de configuração para que o Selecionador de Pessoas suportado pela UPA funcione.

Passo 1: adicionar um fornecedor de afirmações UPA-Backed ao SPTrustedIdentityTokenIssuer

Observação

Para emissores de tokens de identidade fidedigna SAML 1.1, pode adicionar um fornecedor de afirmações com suporte UPA quando criar o emissor de tokens ou pode atribuir um mais tarde.
Para os emissores de tokens de identidade fidedigna do OIDC 1.0, o emissor do token tem de ser criado primeiro e, em seguida, pode atribuir o fornecedor de afirmações. Veja Adicionar um fornecedor de afirmações com cópia de segurança UPA a um SPTrustedIdentityTokenIssuer existente

Criar um novo SPTrustedIdentityTokenIssuer e atribuir um fornecedor de afirmações com cópia de segurança UPA ao mesmo tempo

Observação

Isto só está disponível para emissores de tokens de identidade fidedigna SAML 1.1.

Crie um novo emissor de tokens com o cmdlet Do PowerShell New-SPTrustedIdentityTokenIssuer e atribua um fornecedor de afirmações ao adicionar o comutador UseUPABackedClaimProvider.

New-SPTrustedIdentityTokenIssuer
    -ClaimsMappings <SPClaimMappingPipeBind[]> 
    -Description <String> 
    -IdentifierClaim <String> 
    -Name <String>
    -Realm <String> 
    -SignInUrl <String> 
    [-AssignmentCollection <SPAssignmentCollection>]
    -ImportTrustCertificate <X509Certificate2>
    [-UseWReply]
    [-Confirm] [-RegisteredIssuerName <String>]
    [-SignOutUrl <String>] 
    [-WhatIf] [<CommonParameters>]
    [-UseUPABackedClaimProvider]

Os três parâmetros seguintes precisam de especial atenção:

  • ClaimsMappings
    ClaimsMappings especifica o mapeamento de afirmações do token original para um token do SharePoint. Ao utilizar este parâmetro, o SharePoint compreende como gerar um token do SharePoint quando é fornecido um token específico a partir de uma propriedade de aplicação do serviço de perfis de utilizador.
    Aceita uma lista de ClaimTypeMapping objetos, que são criados pelo cmdlet New-SPClaimTypeMapping . Seguem-se exemplos de ClaimTypeMapping objetos de diferentes tipos de tokens e estes objetos podem ser fornecidos ao ClaimsMappings parâmetro :
$emailClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
$upnClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" -IncomingClaimTypeDisplayName "UPN" -SameAsIncoming
$roleClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" -SameAsIncoming
$sidClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid" -IncomingClaimTypeDisplayName "SID" -SameAsIncoming
  • IdentifierClaim
    O IdentifierClaim parâmetro especifica o tipo de afirmação que será utilizado como afirmação de identificador (normalmente e-mail ou UPN). Pode ser definido como o InputClaimType do ClaimTypeMapping objeto criado a partir do cmdlet New-SPClaimTypeMapping .
-IdentifierClaim $emailClaimMap.InputClaimType
  • UseUPABackedClaimProvider
    Este parâmetro de comutador permite que o Seletor de Pessoas pesquise e selecione utilizadores e grupos a partir do serviço Aplicação de Perfis de Utilizador. Também cria um SPClaimProvider, que tem o mesmo nome que .SPTrustedIdentityTokenIssuer

Observação

O parâmetro "UseUPABackedClaimProvider" não pode ser utilizado para criar um OIDC SPTrustedIdentityTokenIssuer. Só pode ser utilizado para criar um SPTrustedIdentityTokenIssuer SAML.

Exemplo:

# Create a new trusted identity token issuer, and assign a UPA-backed claim provider at the same time
New-SPTrustedIdentityTokenIssuer -Name "UPATest" -Description "Contoso.local" -ClaimsMappings $emailClaimMap -IdentifierClaim $emailClaimMap.InputClaimType -UseUPABackedClaimProvider

Adicionar um fornecedor de afirmações com cópia de segurança UPA a um SPTrustedIdentityTokenIssuer existente

O exemplo acima mostra como atribuir um fornecedor de afirmações com suporte UPA no momento da criação do emissor de tokens de identidade fidedigna (apenas para fornecedores SAML). Se tiver um emissor de tokens de identidade fidedigno (SAML ou OIDC) existente e quiser adicionar um fornecedor de afirmações com suporte UPA, utilize o seguinte exemplo.

Observação

Os seguintes exemplos de script do PowerShell variam ligeiramente entre os fornecedores de autenticação SAML 1.1 e OIDC 1.0. Escolha o exemplo correto.

Exemplo de SAML

# Get the existing trusted identity token issuer named "SAML"
$stsidp = Get-SPTrustedIdentityTokenIssuer "SAML"

# Create the new UPA-backed claim provider 
$claimprovider = New-SPClaimProvider -AssemblyName "Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, publicKeyToken=71e9bce111e9429c"  -Description "UPA-Backed" -DisplayName "UPA-Backed Claim Provider" -Type "Microsoft.SharePoint.Administration.Claims.SPTrustedBackedByUPAClaimProvider" -TrustedTokenIssuer $stsidp

# Set the trusted identity token issuer to use the new claim provider
Set-SPTrustedIdentityTokenIssuer $stsidp -ClaimProvider $claimprovider

Exemplo de OIDC

# Get the existing trusted identity token issuer named "OIDC"
$stsidp = Get-SPTrustedIdentityTokenIssuer "OIDC"

# Create the new UPA-backed claim provider 
$claimprovider = New-SPClaimProvider -AssemblyName "Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, publicKeyToken=71e9bce111e9429c"  -Description "UPA-Backed" -DisplayName "UPA-Backed Claim Provider" -Type "Microsoft.SharePoint.Administration.Claims.SPTrustedBackedByUPAClaimProvider" -TrustedTokenIssuer $stsidp

# Set the trusted identity token issuer to use the new claim provider
Set-SPTrustedIdentityTokenIssuer $stsidp -ClaimProvider $claimprovider -IsOpenIDConnect

Passo 2: Sincronizar perfis com a UPSA

Agora, pode começar a sincronizar perfis de utilizador na Aplicação de Serviço de Perfis de Utilizador (UPSA) do SharePoint a partir do fornecedor de identidade que é utilizado na organização para que o fornecedor de afirmações recentemente criado possa trabalhar no conjunto de dados correto.

Seguem-se as duas formas de sincronizar perfis de utilizador com a Aplicação de Serviço de Perfis de Utilizador do SharePoint:

  • Utilize a Importação do Active Directory do SharePoint (Importação do AD) com a Autenticação do Fornecedor de Afirmações Fidedignas como o Tipo de Fornecedor de Autenticação na definição de ligação de sincronização. Para utilizar a Importação do AD, veja Gerir a sincronização de perfis de utilizador no SharePoint Server.

    Adicionar nova ligação de sincronização.

    Importante

    A Importação do AD só pode ser utilizada para importar perfis de utilizador de florestas e domínios do Active Directory no local. Não pode ser configurado para importar perfis do Entra ID. Se estiver a utilizar a autenticação OIDC suportada pelo Entra ID, poderá considerar utilizar um Fornecedor de Afirmações Personalizadas para fornecer a funcionalidade Selecionador de Pessoas.

  • Utilizar o Microsoft Identity Manager (MIM). Para utilizar o MIM, consulte Microsoft Identity Manager no SharePoint Servers 2016 e 2019.

  • Devem existir dois agentes no UX do Gestor de Sincronização do MIM após a configuração do MIM. Um agente é utilizado para importar perfis de utilizador do IDP de origem para a base de dados do MIM. Além disso, outro agente é utilizado para exportar perfis de utilizador da base de dados mim para a aplicação de serviço Perfil de Utilizador do SharePoint.

Durante a sincronização, forneça as seguintes propriedades à aplicação de serviço Perfil de Utilizador:

a. SPS-ClaimID

  • Escolha a propriedade de identidade exclusiva na origem que irá mapear para a propriedade SPS-ClaimID na aplicação de serviço Perfil de Utilizador ( e-mail preferencial ou Nome Principal de Utilizador).
  • Este deve ser o valor do parâmetro IdentifierClaim correspondente quando o emissor do token de identidade fidedigna foi criado com o cmdlet New-SPTrustedIdentityTokenIssuer .

Para a sincronização da Importação do AD, a Administração Central –> Gestão de Aplicações –> Gerir aplicações de serviço –> Aplicação de Serviço de Perfis de Utilizador –> Gerir a Experiência de Utilizador permite que os administradores editem a propriedade SPS-ClaimID para indicar que atributo no fornecedor de identidade de origem deve ser sincronizado com SPS-ClaimID. Esta deve ser a propriedade utilizada como afirmação de identificador no emissor do token de identidade fidedigna. Por exemplo, se a afirmação do identificador for e-mail e os endereços de e-mail dos utilizadores forem armazenados no atributo "correio" no Active Directory, defina Identificador de Utilizador de Afirmação como "correio" nesta EXPERIÊNCIA.

Observação

O nome a apresentar de SPS-ClaimID é Identificador de Utilizador de Afirmação na EXPERIÊNCIA e o administrador pode personalizar os nomes a apresentar.

Se não tiver a certeza sobre a afirmação do identificador, pode verificar ao executar este PowerShell: $trust = Get-SPTrustedIdentityTokenIssuer$trust.IdentityClaimTypeInformation

Identificador de Utilizador da Afirmação.

Definições de Propriedade.

Mapeamento de Propriedades para Sincronização.

Para sincronização do MIM, mapeie a afirmação do identificador (normalmente , e-mail ou Nome Principal de Utilizador) para SPS-ClaimID na base de dados MIM para o agente de aplicação do serviço Perfil de Utilizador do SharePoint:

  • No Gestor de Serviços de Sincronização do MIM, selecione o agente e abra o UX Configurar Fluxo de Atributos . Pode mapear o correio para SPS-ClaimID.

    Criar Fluxo de Atributos.

b. SPS-ClaimProviderID e SPS-ClaimProviderType

Observação

Para a sincronização de Importação do AD, só precisa de atualizar o mapeamento da propriedade "Identificador de Utilizador de Afirmação" (SPS-ClaimID). Ao contrário da sincronização do MIM, NÃO precisa de mapear "Identificador do Fornecedor de Afirmações" (SPS-ClaimProviderID) e "Tipo de Fornecedor de Afirmações" (SPS-ClaimProviderType).

Para a sincronização do MIM, defina estas duas propriedades no agente da aplicação Configurar o UX do Fluxo de Atributos para a base de dados MIM para o agente de aplicação do serviço Perfil de Utilizador do SharePoint:

  • Defina SPS-ClaimProviderType como Trusted como Tipo de constante.

  • Defina SPS-ClaimProviderID para o nome do fornecedor com o cmdlet New-SPTrustedIdentityTokenIssuer .

    Configurar o Fluxo de Atributos.

Passo 3: Tornar os grupos pesquisáveis

Importante

A utilização do fornecedor de afirmações suportadas pela UPA para resolver grupos de segurança só funciona se os grupos Identificador de Segurança (SID) forem utilizados e os grupos forem importados para a Aplicação do Serviço de Perfis de Utilizador.
Se estiver a utilizar a autenticação OIDC suportada pelo Entra ID, tenha em atenção que os grupos apenas na cloud não têm um SID, nem a Importação do AD pode sincronizar com o Entra ID.
Se precisar de utilizar utilizadores ou grupos apenas na cloud dentro das permissões de site do SharePoint, um Fornecedor de Afirmações Personalizadas pode ser a única solução.

Para ativar o controlo Seletor de Pessoas para trabalhar com grupos de segurança, conclua os seguintes passos:

  1. Certifique-se de que o objeto Grupo tem uma propriedade denominada SID do tipo groupsid no fornecedor de identidade.
    Se ainda não tiver um mapeamento de afirmações para "groupSID", pode criar um ClaimTypeMapping objeto com New-SPClaimTypeMapping e, em seguida, fornecer este objeto ao cmdlet New-SPTrustedIdentityTokenIssuer com -ClaimsMappings o parâmetro .

Exemplo:

# Add Group SID as a claim type to an existing trusted provider named "SAML"
$Trust = Get-SPTrustedIdentityTokenIssuer -Identity "SAML"
$Trust.ClaimTypes.Add("http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid")
$Trust.Update()

# Add a claim mapping for Group SID
$GroupSidClaimMap = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid" -IncomingClaimTypeDisplayName "Group SID" -SameAsIncoming
$Trust = Get-SPTrustedIdentityTokenIssuer "SAML"
Add-SPClaimTypeMapping –TrustedIdentityTokenIssuer $Trust -Identity $GroupSidClaimMaps
  1. Sincronize a propriedade SID de grupos do fornecedor de identidade para a propriedade SID na Aplicação de Serviço de Perfis de Utilizador.

    • Para a sincronização da Importação do AD, a propriedade SID será sincronizada automaticamente a partir do fornecedor de identidade de origem para a Aplicação de Serviço de Perfis de Utilizador do SharePoint.

    • Para sincronização do MIM, utilize o mapeamento de propriedades do fornecedor de identidade para o MIM e, em seguida, do MIM para a aplicação de serviço Perfil de Utilizador do SharePoint para que o MIM possa sincronizar o SID do grupo do fornecedor de identidade com a aplicação de serviço Perfil de Utilizador do SharePoint. Os passos são semelhantes à forma como a propriedade SPS-ClaimID foi mapeada para perfis de utilizador, apenas neste caso, os mapeamentos para o tipo de objeto "grupo" são atualizados.

      Observação

      Para a sincronização do MIM, mapeie também sAMAccountName para accountName para o objeto Grupo do MIM para a aplicação de serviço Perfil de Utilizador do SharePoint.

Passo 4: Definir propriedades como pesquisáveis na UPSA

Para que o seletor de pessoas funcione, o passo final é ativar as propriedades que serão pesquisáveis na Aplicação de Serviço de Perfis de Utilizador.

Os administradores podem definir as propriedades que são pesquisadas pelo Selecionador de Pessoas ao seguir este script do PowerShell de exemplo.

# Get the UPA property list
$site = $(Get-SPWebApplication $WebApplicationName).Sites[0]
$context = Get-SPServiceContext $site
$psm = [Microsoft.Office.Server.UserProfiles.ProfileSubTypeManager]::Get($context)
$ps = $psm.GetProfileSubtype([Microsoft.Office.Server.UserProfiles.ProfileSubtypeManager]::GetDefaultProfileName([Microsoft.Office.Server.UserProfiles.ProfileType]::User))
$properties = $ps.Properties

# Set the proerties defined in $PropertyNames as searchable. 
# In this example, we set First Name, Last Name, claim ID, email address, and PreferredName as searchable for the People Picker.
$PropertyNames = 'FirstName', 'LastName', 'SPS-ClaimID', 'WorkEmail', 'PreferredName'
foreach ($p in $PropertyNames) {
    $property = $properties.GetPropertyByName($p)
    if ($property) {
        $property.CoreProperty.IsPeoplePickerSearchable = $true
        $property.CoreProperty.Commit()
        $property.Commit()
    }
}

Para verificar que propriedades da UPSA foram ativadas para a pesquisa do Selecionador de Pessoas, pode utilizar o seguinte exemplo do PowerShell:

# Get the UPA property list
$site = $(Get-SPWebApplication $WebApplicationName).Sites[0]
$context = Get-SPServiceContext $site
$psm = [Microsoft.Office.Server.UserProfiles.ProfileSubTypeManager]::Get($context)
$ps = $psm.GetProfileSubtype([Microsoft.Office.Server.UserProfiles.ProfileSubtypeManager]::GetDefaultProfileName([Microsoft.Office.Server.UserProfiles.ProfileType]::User))
$properties = $ps.Properties

# Set the proerties defined in $PropertyNames as searchable. 
# In this example, we set First Name, Last Name, claim ID, email address, and PreferredName as searchable for the People Picker.
$PropertyNames = 'FirstName', 'LastName', 'SPS-ClaimID', 'WorkEmail', 'PreferredName'
foreach ($p in $PropertyNames) {
    $property = $properties.GetPropertyByName($p)
    if ($property) {
        $property.CoreProperty.IsPeoplePickerSearchable = $true
        $property.CoreProperty.Commit()
        $property.Commit()
    }
}