Расширенный выбор людей для современной проверки подлинности

ОБЛАСТЬ ПРИМЕНЕНИЯ:no-img-132013 no-img-162016 no-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint в Microsoft 365

Если используется современная проверка подлинности ("доверенный поставщик удостоверений"), например SAML 1.1 или OpenID Connect (OIDC) 1.0, элемент управления Люди Picker не может выполнять поиск, разрешение и проверку пользователей и групп. Вместо этого по умолчанию по умолчанию разрешается любое введенное значение, даже если оно не является допустимым утверждением. В предыдущих версиях SharePoint Server единственным решением было использование пользовательского поставщика утверждений.

В SharePoint Server по подписке (SPSE) средство выбора Люди было улучшено, чтобы разрешить разрешение пользователей и групп на основе их профилей в приложении профилей пользователей (UPA, aka: UPSA). UpA необходимо настроить для синхронизации пользователей и групп из хранилища членства доверенного поставщика удостоверений. Это позволяет Люди Picker разрешать допустимых пользователей и группы без необходимости использования пользовательского поставщика утверждений.

Примечание.

Использование пользовательского поставщика утверждений в SharePoint Server по подписке по-прежнему является допустимым решением проблемы с Люди средства выбора. Если ограничения поставщика утверждений с поддержкой UPA, описанные в этой статье, слишком ограничены для вашей организации, см. статью Создание поставщика утверждений в SharePoint.

Важно!

Модуль импорта профилей пользователей по умолчанию, включенный в SharePoint Server, называется "Импорт Active Directory" (импорт AD), можно использовать только для импорта профилей пользователей из локальная служба Active Directory доменов и лесов. Невозможно настроить импорт профилей пользователей из Microsoft Entra ID. Если вы используете проверку подлинности OIDC на основе Entra ID, вы можете использовать настраиваемый поставщик утверждений для предоставления функций выбора Люди.

Ниже приведены шаги по настройке, чтобы обеспечить работу средства выбора Люди с поддержкой UPA.

Шаг 1. Добавление поставщика утверждений UPA-Backed в spTrustedIdentityTokenIssuer

Примечание.

Для издателей доверенных маркеров удостоверений SAML 1.1 можно добавить поставщик утверждений с поддержкой UPA при создании издателя маркера или назначить его позже.
Для издателей доверенных маркеров удостоверений OIDC 1.0 сначала необходимо создать издателя маркера, а затем можно назначить поставщик утверждений. См. раздел Добавление поставщика утверждений с поддержкой UPA к существующему spTrustedIdentityTokenIssuer.

Создайте новый SPTrustedIdentityTokenIssuer и назначьте поставщик утверждений с резервной копией UPA.

Примечание.

Это доступно только для издателей доверенных маркеров удостоверений SAML 1.1.

Создайте новый издатель маркера с помощью командлета PowerShell New-SPTrustedIdentityTokenIssuer и назначьте поставщик утверждений, добавив параметр 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]

Следующие три параметра требуют особого внимания:

  • ClaimsMappings
    ClaimsMappings указывает сопоставление утверждений из исходного маркера с маркером SharePoint. Используя этот параметр, SharePoint понимает, как создать маркер SharePoint при получении определенного маркера из свойства приложения-службы профиля пользователя.
    Он принимает список объектов, созданных ClaimTypeMapping командлетом New-SPClaimTypeMapping . Ниже приведены примеры ClaimTypeMapping объектов с различными типами маркеров, и эти объекты могут быть предоставлены параметру ClaimsMappings :
$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
    Параметр IdentifierClaim указывает, какой тип утверждения будет использоваться в качестве утверждения идентификатора (обычно это адрес электронной почты или имя участника-пользователя). Для него можно задать InputClaimType значение объекта, созданного ClaimTypeMapping с помощью командлета New-SPClaimTypeMapping .
-IdentifierClaim $emailClaimMap.InputClaimType
  • UseUPABackedClaimProvider
    Этот параметр переключателя позволяет средству выбора Люди искать и выбирать пользователей и группы из службы приложения профилей пользователей. Он также создает SPClaimProviderобъект , имя которого совпадает с SPTrustedIdentityTokenIssuerименем .

Примечание.

Параметр UseUPABackedClaimProvider нельзя использовать для создания OIDC SPTrustedIdentityTokenIssuer. Его можно использовать только для создания SAML SPTrustedIdentityTokenIssuer.

Пример:

# 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

Добавление поставщика утверждений с поддержкой UPA в существующий SPTrustedIdentityTokenIssuer

В приведенном выше примере показано, как назначить поставщик утверждений с поддержкой UPA во время создания издателя доверенного маркера удостоверения (только для поставщиков SAML). Если у вас есть поставщик маркеров доверенных удостоверений (SAML или OIDC) и вы хотите добавить в него поставщик утверждений с поддержкой UPA, используйте следующий пример.

Примечание.

Приведенные ниже примеры скриптов PowerShell немного различаются между поставщиками проверки подлинности SAML 1.1 и OIDC 1.0. Выберите правильный пример.

Пример для 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

Пример для 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

Шаг 2. Синхронизация профилей с UPSA

Теперь вы можете начать синхронизацию профилей пользователей с приложением-службой профилей пользователей SharePoint (UPSA) из поставщика удостоверений, используемого в организации, чтобы созданный поставщик утверждений смог работать с правильным набором данных.

Ниже приведены два способа синхронизации профилей пользователей с приложением-службой профилей пользователей SharePoint.

  • Используйте импорт SharePoint Active Directory (импорт AD) с проверкой подлинности поставщика надежных утверждений в качестве типа поставщика проверки подлинности в параметре подключения синхронизации. Сведения об использовании импорта AD см. в статье Управление синхронизацией профилей пользователей в SharePoint Server.

    Добавьте новое подключение синхронизации.

    Важно!

    Импорт AD можно использовать только для импорта профилей пользователей из локальная служба Active Directory доменов и лесов. Невозможно настроить импорт профилей из Entra ID. Если вы используете проверку подлинности OIDC на основе Entra ID, вместо этого можно использовать настраиваемый поставщик утверждений для предоставления функций средства выбора Люди.

  • Используйте Microsoft Identity Manager (MIM). Сведения об использовании MIM см. в статье Microsoft Identity Manager в SharePoint Server 2016 и 2019.

  • После настройки MIM в пользовательском интерфейсе диспетчера синхронизации MIM должно быть два агента. Один агент используется для импорта профилей пользователей из исходного поставщика удостоверений в базу данных MIM. Другой агент используется для экспорта профилей пользователей из базы данных MIM в приложение службы профилей пользователей SharePoint.

Во время синхронизации предоставьте следующие свойства приложению-службе профилей пользователей:

А. SPS-ClaimID

  • Выберите уникальное свойство удостоверения в источнике, которое будет сопоставляться со свойством SPS-ClaimID в приложении-службе профилей пользователей (предпочтительное Email или имя субъекта-пользователя).
  • Это должно быть значение для соответствующего параметра IdentifierClaim , когда издатель маркера доверенного удостоверения был создан с помощью командлета New-SPTrustedIdentityTokenIssuer .

Для синхронизации импорта AD центр администрирования —> управление приложениями —> управление приложениями-службами —> приложение службы профилей пользователей —> управление свойствами пользователей позволяет администраторам изменять свойство SPS-ClaimID , чтобы указать, какой атрибут в исходном поставщике удостоверений следует синхронизировать с SPS-ClaimID. Это должно быть свойство, используемое в качестве утверждения идентификатора в издателе доверенного маркера удостоверения. Например, если утверждение идентификатора — электронная почта, а адреса электронной почты пользователей хранятся в атрибуте mail в Active Directory, задайте идентификатор пользователя утверждения как mail в этом пользовательском интерфейсе.

Примечание.

Отображаемое имя SPS-ClaimIDидентификатор пользователя утверждения в пользовательском интерфейсе, и администратор может настроить отображаемые имена.

Если вы не уверены в утверждении идентификатора, вы можете проверка, запустив следующий powerShell:$trust = Get-SPTrustedIdentityTokenIssuer$trust.IdentityClaimTypeInformation

Идентификатор пользователя утверждения.

Параметры свойства.

Сопоставление свойств для синхронизации.

Для синхронизации MIM сопоставьте утверждение идентификатора (обычно Email или имя субъекта-пользователя) с SPS-ClaimID в базе данных MIM с агентом приложения службы профилей пользователей SharePoint:

  • В Service Manager синхронизации MIM выберите агент и откройте пользовательский интерфейс Configure Attribute Flow (Настройка потока атрибутов). Вы можете сопоставить почту с SPS-ClaimID.

    Поток атрибутов сборки.

Б. SPS-ClaimProviderID и SPS-ClaimProviderType

Примечание.

Для синхронизации импорта AD необходимо только обновить сопоставление свойств "Идентификатор пользователя утверждения" (SPS-ClaimID). В отличие от синхронизации MIM, не требуется сопоставлять идентификатор поставщика утверждений (SPS-ClaimProviderID) и тип поставщика утверждений (SPS-ClaimProviderType).

Для синхронизации MIM задайте следующие два свойства в пользовательском интерфейсе Настройка потока атрибутов для базы данных MIM в агенте приложения службы профилей пользователей SharePoint:

  • Присвойте SPS-ClaimProviderType значение Trusted в качестве типа константы.

  • Присвойте SPS-ClaimProviderID имя поставщика с помощью командлета New-SPTrustedIdentityTokenIssuer .

    Настройка потока атрибутов.

Шаг 3. Создание групп с возможностью поиска

Важно!

Использование поставщика утверждений с поддержкой UPA для разрешения групп безопасности работает только в том случае, если используется идентификатор безопасности (SID) групп, а группы импортируются в приложение службы профилей пользователей.
Если вы используете проверку подлинности OIDC, поддерживаемую идентификатором Entra ID, следует рекомендовать, что у облачных групп нет идентификатора безопасности, а импорт AD не может синхронизироваться с идентификатором Entra.
Если вам нужно использовать только облачных пользователей или группы в разрешениях сайта SharePoint, единственным решением может быть поставщик настраиваемых утверждений.

Чтобы включить элемент управления Люди Picker для работы с группами безопасности, выполните следующие действия.

  1. Убедитесь, что у объекта Group есть свойство SID типа groupsid в поставщике удостоверений.
    Если у вас еще нет сопоставления утверждений для groupSID, можно создать ClaimTypeMapping объект с помощью Командлета New-SPClaimTypeMapping , а затем предоставить этот объект командлету New-SPTrustedIdentityTokenIssuer с -ClaimsMappings параметром .

Пример:

# 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. Синхронизация свойства SID групп из поставщика удостоверений со свойством SID в приложении службы профилей пользователей.

    • Для синхронизации импорта AD свойство SID автоматически синхронизируется с исходным поставщиком удостоверений с приложением-службой профилей пользователей SharePoint.

    • Для синхронизации MIM примите сопоставление свойств от поставщика удостоверений к MIM, а затем из MIM в приложение службы профилей пользователей SharePoint, чтобы MIM синхронизировать идентификатор безопасности группы из поставщика удостоверений с приложением службы профилей пользователей SharePoint. Шаги похожи на то, как свойство SPS-ClaimID было сопоставлено с профилями пользователей. Только в этом случае сопоставления для типа объекта group обновляются.

      Примечание.

      Для синхронизации MIM также сопоставьте sAMAccountName с accountName для объекта Group из MIM в приложение службы профилей пользователей SharePoint.

Шаг 4. Задание свойств как доступных для поиска в UPSA

Чтобы заставить средство выбора людей работать, последним шагом является включение свойств, которые будут доступны для поиска в приложении-службе профилей пользователей.

Администраторы могут задать свойства, для которых выполняется поиск с помощью средства выбора Люди, следуя этому примеру сценария 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()
    }
}

Чтобы проверка, какие свойства UPSA включены для поиска Люди средства выбора, можно использовать следующий пример 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()
    }
}