Поделиться через


Реализация федеративной проверки подлинности

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

Реализация федеративной проверки подлинности в SharePoint Server

В этом пошаговом руководстве объясняется, как настроить федеративную проверку подлинности в SharePoint с помощью служб федерации Active Directory (AD FS).

Общие сведения о федеративной проверке подлинности

При федеративной проверке подлинности SharePoint обрабатывает токены SAML, выданные доверенной внешней службой маркеров безопасности (STS). Пользователь, который пытается войти в систему, перенаправляется на ту stS, которая проверяет подлинность пользователя и создает токен SAML при успешной проверке подлинности. Затем SharePoint обрабатывает этот маркер и использует его для создания собственного и авторизации пользователя для доступа к сайту.

Предварительные условия

Чтобы выполнить настройку, вам потребуются следующие ресурсы:

  • Ферма SharePoint 2013 или более поздней версии.
  • Уже созданная ферма AD FS версии 2 или более поздней с открытым ключом сертификата подписи AD FS, экспортированного в .cer файле.

В этой статье используются следующие значения:

  • URL-адрес сайта SharePoint: https://spsites.contoso.local/
  • URL-адрес сайта AD FS: https://adfs.contoso.local/adfs/ls/
  • Область (идентификатор проверяющей стороны): urn:contoso:spsites
  • Тип утверждения удостоверения: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  • Тип утверждения роли: http://schemas.microsoft.com/ws/2008/06/identity/claims/role
  • Администратор семейства веб-сайтов Windows: contoso\yvand
  • Значение электронной почты администратора федеративного семейства веб-сайтов (AD FS): yvand@contoso.local

Создание проверяющей стороны в AD FS

На этом шаге вы создадите проверяющую сторону в AD FS. Проверяющая сторона будет хранить конфигурацию, необходимую для работы с SharePoint, и правила утверждений, определяющие, какие утверждения будут внедрены в токен SAML после успешной проверки подлинности.

На сервере AD FS запустите PowerShell и выполните следующий скрипт:

### STEP 1: Create the relying party
# Name of the Relying Party
$name = "SPSites"
# Unique identifier of the Relying Party (in SharePoint it's referred to as the realm)
$identifier = "urn:contoso:spsites"
# Authority that authenticates users
$identityProvider = "Active Directory"
# SharePoint URL where user is redirected upon successful authentication
$redirectURL = "https://spsites.contoso.local/_trust/default.aspx"
# Allow everyone to use this relying party
$allowEveryoneRule = '=> issue (Type = "http://schemas.microsoft.com/authorization/claims/permit", value = "true");'
# Create the Relying Party
Add-ADFSRelyingPartyTrust -Name $name -Identifier $identifier -ClaimsProviderName $identityProvider -Enabled $true -WSFedEndpoint $redirectURL -IssuanceAuthorizationRules $allowEveryoneRule -Confirm:$false

### STEP 2: Add claim rules to the relying party
# Rule below configured relying party to issue 2 claims in the SAML token: email and role
$claimsRule = @"
@RuleTemplate = "LdapClaims"
@RuleName = "AD"
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(
store = "Active Directory", 
types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "http://schemas.microsoft.com/ws/2008/06/identity/claims/role"), 
query = ";mail,tokenGroups(fullDomainQualifiedName);{0}", 
param = c.Value);
"@
# Apply the rule to the Relying Party
Set-ADFSRelyingPartyTrust -TargetName $name -IssuanceTransformRules $claimsRule

По завершении скрипта проверяющая сторона в AD FS должна выглядеть следующим образом:

Проверяющая сторона ADFS

Настройка SharePoint для доверия AD FS

На этом шаге вы создадите SPTrustedLoginProvider, который будет хранить конфигурацию, необходимую SharePoint для доверия AD FS. Запустите командную консоль SharePoint и выполните следующий скрипт, чтобы создать ее:

# Define claim types
$email = New-SPClaimTypeMapping "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
$role = New-SPClaimTypeMapping "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" -SameAsIncoming

# Public key of the AD FS signing certificate
$signingCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
# Unique realm (corresponds to the unique identifier of the AD FS Relying Party)
$realm = "urn:contoso:spsites"
# Set the AD FS URL where users are redirected to authenticate
$signinurl = "https://adfs.contoso.local/adfs/ls/"

# Create a new SPTrustedIdentityTokenIssuer in SharePoint
New-SPTrustedIdentityTokenIssuer -Name "Contoso.local" -Description "Contoso.local" -Realm $realm -ImportTrustCertificate $signingCert -ClaimsMappings $email,$role -SignInUrl $signinurl -IdentifierClaim $email.InputClaimType

Важно!

Не используйте параметр -UseDefaultConfiguration с командлетом New-SPTrustedIdentityTokenIssuer. Этот параметр вызывает непредвиденные побочные эффекты из-за того, как он задает удостоверение пользователей внутри.

Затем соответствующий сертификат необходимо добавить в хранилище сертификатов корневого центра SharePoint. Существует 2 возможных варианта:

  • Если сертификат подписи AD FS выдан центром сертификации (рекомендуется по соображениям безопасности)

В хранилище необходимо добавить открытый ключ сертификата издателя (и все промежуточные компоненты): Запустите командную консоль SharePoint и выполните следующий скрипт, чтобы добавить его:

$rootCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing issuer.cer")
New-SPTrustedRootAuthority -Name "adfs.contoso.local signing root authority" -Certificate $rootCert
  • Если сертификат подписи ADFS является самозаверяющий сертификат (не рекомендуется из соображений безопасности)

В хранилище необходимо добавить открытый ключ самого сертификата подписи ADFS: Запустите командную консоль SharePoint и выполните следующий скрипт, чтобы добавить его:

$rootCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
New-SPTrustedRootAuthority -Name "adfs.contoso.local signing certificate" -Certificate $rootCert

Настройка веб-приложения SharePoint

На этом шаге вы настраиваете веб-приложение в SharePoint для федерации с доверием AD FS с помощью созданного выше SPTrustedLoginProvider.

Существуют некоторые важные правила, которые следует соблюдать:

  • В зоне по умолчанию веб-приложения SharePoint должна быть включена проверка подлинности Windows. Это необходимо для средства-обходчика поиска.
  • URL-адрес SharePoint, который будет использовать федерацию AD FS, должен быть настроен с использованием ПРОТОКОЛА HTTPS.

Существует две возможные конфигурации:

  • Если вы создаете веб-приложение и используете проверку подлинности Windows и AD FS в зоне по умолчанию:

    1. Запустите командную консоль SharePoint и выполните следующий скрипт:

      # This script creates a new web application and sets Windows and AD FS authentication on the Default zone
      # URL of the SharePoint site federated with ADFS
      $trustedSharePointSiteUrl = "https://spsites.contoso.local/"
      $applicationPoolManagedAccount = "Contoso\spapppool"
      
      $winAp = New-SPAuthenticationProvider -UseWindowsIntegratedAuthentication -DisableKerberos:$true
      $sptrust = Get-SPTrustedIdentityTokenIssuer "Contoso.local"
      $trustedAp = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
      
      New-SPWebApplication -Name "SharePoint - ADFS on contoso.local" -Port 443 -SecureSocketsLayer -URL $trustedSharePointSiteUrl -ApplicationPool "SharePoint - ADFS on contoso.local" -ApplicationPoolAccount (Get-SPManagedAccount $applicationPoolManagedAccount) -AuthenticationProvider $winAp, $trustedAp
      
    2. Откройте сайт центра администрирования SharePoint .

    3. В разделе Параметры системы выберите Настроить альтернативные сопоставления доступа. Откроется поле Коллекция сопоставления альтернативного доступа .

    4. Отфильтруйте отображение с помощью нового веб-приложения и убедитесь, что отображается примерно следующее:

      Сопоставления альтернативного доступа веб-приложения

  • Если вы расширяете существующее веб-приложение для настройки проверки подлинности AD FS в новой зоне:

    1. Запустите командную консоль SharePoint и выполните следующий скрипт:

      # This script extends an existing web application to set AD FS 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 "Contoso.local"
      $ap = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
      $wa = Get-SPWebApplication $webAppDefaultZoneUrl
      New-SPWebApplicationExtension -Name "SharePoint - ADFS on contoso.local" -Identity $wa -SecureSocketsLayer -Zone Intranet -Url $trustedSharePointSiteUrl -AuthenticationProvider $ap
      
    2. Откройте сайт центра администрирования SharePoint .

    3. В разделе Параметры системы выберите Настроить альтернативные сопоставления доступа. Откроется поле Коллекция сопоставления альтернативного доступа .

    4. Отфильтруйте отображение с помощью расширенного веб-приложения и убедитесь, что отображается примерно следующее:

      Сопоставления альтернативного доступа расширенного приложения

Установка сертификата HTTPS в IIS

Так как URL-адрес SharePoint использует протокол HTTPS (https://spsites.contoso.local/), сертификат должен быть задан на соответствующем сайте служб IIS.

Создание сертификата сайта

Примечание.

Этот шаг можно пропустить, если сертификат уже создан.

  1. Откройте консоль Windows PowerShell.

  2. Выполните следующий скрипт, чтобы создать самозаверяющий сертификат и добавить его в хранилище MY компьютера:

    New-SelfSignedCertificate -DnsName "spsites.contoso.local" -CertStoreLocation "cert:\LocalMachine\My"
    

Важно!

Самозаверяемые сертификаты подходят только для тестовых целей. В рабочих средах настоятельно рекомендуется использовать сертификаты, выданные центром сертификации.

Установка сертификата

  1. Откройте консоль диспетчера служб IIS.

  2. Разверните сервер в представлении в виде дерева, разверните узел Сайты, выберите SharePoint — ADFS на сайте contoso.local и выберите Привязки.

  3. Выберите привязку https , а затем нажмите кнопку Изменить.

  4. В поле TLS/SSL-сертификат выберите spsites.contoso.local certificate (сертификат spsites.contoso.local ), а затем нажмите кнопку ОК.

Создание семейства веб-сайтов

На этом шаге вы создадите семейство веб-сайтов группы с двумя администраторами: одним из них является администратор Windows, а второй — федеративный (AD FS).

  1. Откройте сайт центра администрирования SharePoint .

  2. В области Управление приложениями выберите команду Создать семейства веб-сайтов. Откроется страница Создание семейств веб-сайтов .

  3. Введите заголовок, URL-адрес и выберите шаблон Сайт группы.

  4. В разделе Основной администратор семейства веб-сайтов щелкните значок книги, чтобы открыть диалоговое окно выбора людей.

  5. В диалоговом окне выбора людей введите учетную запись администратора Windows, например yvand.

  6. В левой части экрана отфильтруйте список, щелкнув Организации. Вы должны увидеть следующие выходные данные:

    Администратор Windows для выбора людей

  7. Выберите учетную запись и нажмите кнопку ОК.

  8. В разделе Дополнительный администратор семейства веб-сайтов щелкните значок книги, чтобы открыть диалоговое окно выбора людей.

  9. В диалоговом окне выбора людей введите точное значение электронной почты учетной записи администратора AD FS, например yvand@contoso.local.

  10. Отфильтруйте список слева, щелкнув Contoso.local. Вы должны увидеть следующие выходные данные:

    Электронная почта администратора FS для выбора людей

  11. Выберите учетную запись и нажмите кнопку ОК.

  12. Нажмите кнопку ОК, чтобы создать семейство веб-сайтов.

После создания семейства веб-сайтов вы сможете войти в него с помощью учетной записи windows или федеративного администратора семейства веб-сайтов.

Дальнейшие действия

При федеративной проверке подлинности средство выбора людей не проверяет входные данные, что может привести к ошибкам или случайному выбору неправильного типа утверждения. Это можно решить с помощью настраиваемого поставщика утверждений; например LDAPCP.

Важно!

LDAPCP не является продуктом Майкрософт и не поддерживается службой поддержки Майкрософт. Сведения о загрузке, установке и настройке LDAPCP в локальной ферме SharePoint см. на веб-сайте LDAPCP.

В SharePoint Server Subscription Edition средство выбора собственных людей может искать и разрешать пользователей с помощью приложения службы профилей пользователей для федеративной проверки подлинности. Узнайте, как настроить средство выбора людей для работы с федеративной проверкой подлинности.