Полное пошаговое руководство по настройке SharePoint 2010 и служб федерации Active Directory (ADFS) версии 2

Полное пошаговое руководство по настройке SharePoint 2010 и служб федерации Active Directory (ADFS) версии 2

В этой статье приводится полное пошаговое руководство по настройке SharePoint 2010 совместно со службами федерации Active Directory версии 2 для использования проверки подлинности на основе утверждений SAML. В этой статье будут приведены демонстрационные пошаговые инструкции и скрипты PowerShell, и будет предпринята попытка объединить все сведения в одной большой публикации.

Для начала приведем краткий обзор используемых компонентов. В этом сценарии службы федерации Active Directory версии 2 используются в качестве поставщика удостоверений, который также называется службой токенов безопасности IP-STS. Необходимо настроить в службах федерации Active Directory сведения о проверяющей стороне. В этом случае в качестве проверяющей стороны используется приложение SharePoint, в котором для проверки подлинности и предоставления утверждений используются службы федерации Active Directory. С точки зрения SharePoint необходимо настроить доверие службе IP-STS, из которой отправляются утверждения, а затем следует настроить веб-приложение и сайт, которые будут принимать эти утверждения.

Для начала создадим проверяющую сторону в службах федерации Active Directory. Обратите внимание, что порядок выполнения действий значения не имеет. Тем не менее, я предпочитаю сначала настраивать службы федерации Active Directory. Перейдите на сервер, на котором установлены службы федерации Active Directory и откройте приложение управления службами федерации Active Directory версии 2.0. Разверните узел "Отношения доверия" (Trust Relationships) и щелкните узел "Отношения доверия проверяющей стороны" (Relying Party Trusts).

Щелкните ссылку "Добавить отношение доверия проверяющей стороны" (Add Relying Party Trust) в правой области, чтобы запустить мастер добавления отношения доверия проверяющей стороны (Add Relying Party Trust Wizard).

Нажмите кнопку "Начать" (Start), чтобы продолжить.

Выберите параметр для ввода данных о проверяющей стороне вручную, после чего нажмите кнопку "Далее" (Next).

Введите отображаемое имя и, при необходимости, описание проверяющей стороны, после чего нажмите кнопку "Далее" (Next).

Выберите параметр для использования профиля служб федерации Active Directory 2.0 и нажмите кнопку "Далее" (Next).

Можно выбрать сертификат для шифрования самого токена SAML. Это будет выполняться относительно редко, поскольку службы федерации Active Directory требуют подключения к SharePoint по протоколу SSL, поэтому канал, по которому передается токен, уже зашифрован. Нажмите кнопку "Далее" (Next).

Установите флажок Включить поддержку пассивного протокола WS-Federation (Enable support for the WS-Federation Passive protocol). В качестве URL-адреса протокола необходимо ввести URL-адрес корневого сайта веб-приложения SharePoint, включив в него подкаталог "_trust". В этом примере веб-приложение SharePoint имеет URL-адрес https://seo14, поэтому URL-адрес для пассивного протокола WS-Federation будет иметь вид https://seo14/_trust/. После ввода URL-адреса нажмите кнопку "Далее" (Next).

В качестве идентификатора доверия проверяющей стороны необходимо ввести область, которую веб-приложение будет передавать в службы федерации Active Directory при входе пользователей в веб-приложение. Область обычно задается в формате urn:foo:bar. Область связывается с веб-приложением и определяет порядок сопоставления службами федерации Active Directory входящих запросов на вход в систему с существующими отношениями доверия проверяющей стороны. При совместном использовании с SharePoint службы федерации Active Directory видят область, связанную с запросом на вход в систему, осуществляют поиск соответствующего отношения доверия проверяющей стороны, выполняют проверку подлинности пользователя, после чего используют этот URL-адрес пассивного протокола WS-Federation для перенаправления пользователей в дальнейшем. В этом случае задается область urn:seo:sharepoint. При попытке перейти на сайт SharePoint по адресу https://seo14 осуществляется перенаправление в службы федерации Active Directory, где я настраиваю приложение SharePoint на использование области urn:seo:sharepoint для этого запроса. После проверки подлинности в службах федерации Active Directory повторно осуществляется перенаправление на адрес https://seo14/_trust/, поскольку он используется в качестве URL-адреса пассивного протокола для этой проверяющей стороны. Добавьте любую область и запомните ее название, поскольку его потребуется снова ввести при настройке SharePoint. Нажмите кнопку "Далее" (Next).

В большинстве случаев требуется разрешить доступ к этой проверяющей стороне всем пользователям. Предположим, что в этом сценарии имеет место аналогичная ситуация, примем предлагаемые по умолчанию настройки и нажмем кнопку "Далее" (Next).

При необходимости можно выполнить любые другие необходимые изменения конфигурации для отношения доверия проверяющей стороны. Для этого сценария такие изменения не требуются, поэтому нажмем кнопку "Далее" (Next).

Настройка отношения доверия проверяющей стороны завершена, однако по-прежнему не создано правило утверждения, с помощью которого службы федерации Active Directory определяют, какие утверждения будут передаваться обратно в SharePoint. Оставьте установленным флажок, определяющий открытие диалогового окна редактирования правил утверждений, и нажмите кнопку "Закрыть" (Close).

Далее создадим новое правило. Нажмите кнопку "Добавить правило…" (Add Rule…).

Атрибуты LDAP будут передаваться в виде утверждений, поскольку в этом случае информация получается из служб Active Directory. Это означает, что проверка подлинности будет выполняться в службах федерации Active Directory, которые, в свою очередь, будут использовать корпоративные службы Active Directory для проверки подлинности и определения наших атрибутов. Оставьте предлагаемое по умолчанию значение и нажмите кнопку "Далее" (Next), чтобы продолжить.

Для начала введите произвольное имя правила утверждения. Затем в раскрывающемся списке "Хранилище атрибутов" (Attribute store) выберите элемент Active Directory. В нашем сценарии требуется передавать адрес электронной почты и группы, которым принадлежит пользователь, обратно в SharePoint. Адрес электронной почты будет использоваться в качестве идентификатора пользователя. Все группы, которым принадлежит пользователь, будут передаваться в утверждении роли. Чтобы создать сопоставление, выберите нужный атрибут в раскрывающемся списке, расположенном с левой стороны, а затем выберите утверждение, которое будет передаваться, в раскрывающемся списке в правой области. В этом случае необходимо выбрать атрибут Active Directory "Адреса электронной почты" ( E-Mail-Addresses), который будет передаваться в стандартном утверждении "Адрес электронной почты". Нам требуется реализовать передачу групп, которым принадлежит пользователь, в стандартном утверждении роли. В этом случае выбран параметр "Группы токенов – неизвестные имена" (Token-Groups – Unqualified Names), поскольку он позволяет передавать имя группы в формате простой строки, содержащей имя группы. При необходимости можно передавать идентификаторы SID групп, однако это может повлечь за собой дополнительные сложности при попытке назначения утверждения роли группе SharePoint. После завершения настройки этого правила нажмите кнопку "Готово" (Finish).

Нажмите кнопку "ОК", чтобы завершить процесс создания отношения доверия проверяющей стороны в службах федерации Active Directory. С точки зрения конфигурации никаких дополнительных действий в службах федерации Active Directory выполнять не нужно. Тем не менее, нам следует ознакомиться еще с одним моментом. В службах федерации Active Directory для подписывания передаваемых токенов используется сертификат. Это позволяет получателю токена убедиться в отсутствии несанкционированного вмешательства в его структуру. Для настройки SharePoint потребуется копия этого сертификата, которая будет использоваться при настройке использования служб федерации Active Directory в качестве службы токенов безопасности IP-STS. Чтобы получить сертификат для подписывания токенов из служб федерации Active Directory, разверните узел "Служба" (Service) и щелкните узел "Сертификаты" (Certificates).

В этом узле присутствует раздел для сертификатов, используемых при подписывании токенов. Один сертификат может использоваться для подписывания множества токенов, однако в любом случае всегда используется ТОЛЬКО один основной сертификат для подписывания токенов. Щелкните этот сертификат, а затем щелкните ссылку "Просмотреть сертификат" (View Certificate) в правой области.

В нашем случае я выберу сертификат, который был создан для протокола на веб-сайте служб федерации Active Directory. Такой вариант не является ни необходимым, ни рекомендуемым, и выбран здесь произвольно. Во время просмотра сертификата перейдите на вкладку "Сведения" (Details) в верхней части диалогового окна.

Нажмите кнопку "Копировать в файл…" (Copy to File…). Запускается мастер для сохранения копии сертификата на диск.

Нажмите кнопку "Далее" (Next), чтобы продолжить.

В нашем сценарии закрытый ключ не требуется, поэтому примем предлагаемые по умолчанию значения параметров и нажмем кнопку "Далее" (Next).

Оставьте предлагаемый по умолчанию формат и нажмите кнопку "Далее" (Next), чтобы продолжить.

Выберите расположение для сохранения сертификата и нажмите кнопку "Далее" (Next). Запомните это расположение, поскольку в дальнейшем потребуется скопировать сохраненный сертификат из него на сервер SharePoint.

Все необходимые сведения для локального копирования сертификата получены, поэтому нажмите кнопку "Готово" (Finish), чтобы завершить работу мастера и сохранить сертификат в виде локального файла. Скопируйте этот файл на сервер SharePoint. На этом процесс настройки сервера служб федерации Active Directory завершен.

Перейдем к настройке сервера SharePoint. Прежде чем начать настройку SharePoint, рекомендуется создать новое приложение. Создадим веб-приложение с использованием проверки подлинности на основе утверждений, однако выберем в параметрах проверки подлинности встроенную проверку подлинности Windows – NTLM. Убедитесь, что для веб-приложения настроено использование порта 443 и установлен переключатель, задающий использование протокола SSL. После создания веб-приложения необходимо перейти в диспетчер служб IIS и изменить привязки для нового виртуального сервера таким образом, чтобы можно было назначить соответствующий сертификат. Выполнение этих действий не рассматривается в рамках этой статьи. При необходимости вы легко найдете множество инструкций по их выполнению в Интернете. Итак, в нашем сценарии создано веб-приложение с URL-адресом https://seo14, использующее порт 443 и протокол SSL.

Сначала необходимо добавить в SharePoint сертификат для подписывания токенов, который был скопирован с сервера служб федерации Active Directory. Перед этим рассмотрим сертификат. В цепочке сертификата для подписывания токенов может присутствовать один или несколько родительских сертификатов. В таком случае все присутствующие в цепочке сертификаты необходимо добавить в список надежных корневых центров сертификации SharePoint. Чтобы просмотреть интересующие нас сведения, дважды щелкните сертификат, скопированный из служб федерации Active Directory. Откроется окно свойств сертификата. Сведения о наличии других сертификатов в цепочке можно просмотреть на вкладке "Путь сертификации" (Certification Path). В этом сценарии наш сертификат для подписывания токенов ИМЕЕТ родительский сертификат – сертификат корневого центра сертификации.

Далее для каждого сертификата, располагающегося на более высоком уровне цепочки относительно сертификата для подписывания токенов, необходимо сохранить локальную копию. Для этого нужно щелкнуть сертификат, в результате чего в диалоговом окне отображается кнопка "Просмотреть сертификат" (View Certificate). Нажмите эту кнопку, чтобы открыть отдельное диалоговое окно свойств для этого сертификата. После этого выполните описанные выше действия для сохранения локальной копии сертификата на диск: перейдите на вкладку "Сведения" (Details), нажмите кнопку "Копировать в файл…" (Copy to File…) и сохраните сертификат локально в виде файла с расширением CER. В нашем случае это будет файл C:\adfsParent.cer. Теперь на сервере SharePoint присутствует два сертификата:

· Файл C:\adfs.cer, который содержит сертификат для подписывания токенов, скопированный с сервера служб федерации Active Directory

· Файл C:\adfsParent.cer, который содержит родительский сертификат нашего сертификата для подписывания токенов

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

$root = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\adfsParent.cer")

New-SPTrustedRootAuthority -Name "Token Signing Cert Parent" -Certificate $root

$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\adfs.cer ")

New-SPTrustedRootAuthority -Name "Token Signing Cert" -Certificate $cert

После выполнения этих команд в оболочке PowerShell будут получены аналогичные следующим результаты:

Далее создадим сопоставления утверждения, которое будет использоваться в SharePoint. Ранее в этой статье мы уже указывали, что предполагается использование адреса электронной почты и утверждений роли в SharePoint. Ниже приведен скрипт PowerShell, используемый для определения таких сопоставлений:

$map = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming

$map2 = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" -SameAsIncoming

Создадим переменную для области, которая будет использоваться в SharePoint. В этом сценарии будет использоваться область urn:seo:sharepoint. Ниже приведен скрипт PowerShell для создания переменной области:

$realm = "urn:seo:sharepoint"

Далее можно создать объект SPTrustedIdentityTokenIssuer. На этом этапе мы связываем все сведения о конфигурации, что позволяет приложению SharePoint определять способ подключения к службе IP-STS и работы с ней. Ниже приводится скрипт PowerShell и описываются его основные компоненты:

$ap = New-SPTrustedIdentityTokenIssuer -Name "SAML Provider" -Description "SharePoint secured by SAML" -realm $realm -ImportTrustCertificate $cert -ClaimsMappings $map,$map2 -SignInUrl "https://congen1.contoso.local/adfs/ls" -IdentifierClaim "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"

Атрибут "Name" определяет имя, которое будет отображаться в веб-приложении при настройке используемого поставщика проверки подлинности. Атрибут "realm" определяет точку для подключения области, которая будет использоваться в SharePoint с этим надежным издателем токенов удостоверений. Атрибут "ImportTrustCertificate" определяет точку для передачи сертификата для подписывания токенов, который был скопирован с сервера служб федерации Active Directory. Атрибут "ClaimsMappings" определяет утверждения, которые будут использоваться этим надежным издателем токенов безопасности. Атрибут "SignInUrl" определяет URL-адрес, на который будут перенаправляться пользователи для прохождения проверки подлинности в IP-STS. В этом случае требуется выполнять проверку подлинности пользователей на сервере служб федерации Active Directory с использованием встроенной проверки подлинности Windows, поэтому осуществляется перенаправление в подкаталог /adfs/ls. Наконец, атрибут "IdentifierClaim" определяет для SharePoint утверждения, которые будут использоваться для проверки личности пользователей в качестве собственного утверждения. В этом случае в качестве идентификатора пользователя выступает адрес электронной почты.

После выполнения заключительной команды PowerShell создается объект SPTrustedIdentityTokenIssuer, который можно использовать в веб-приложении SharePoint. Откройте браузер и перейдите в центр администрирования. Щелкните ссылку "Управление веб-приложениями", выберите в списке веб-приложение, которое будет использоваться службами федерации Active Directory для проверки подлинности, а затем нажмите кнопку "Поставщики проверки подлинности" на ленте. Щелкните в диалоговом окне ссылку, соответствующую зоне, в которой требуется использовать службы федерации Active Directory для проверки подлинности. Перейдите к разделу "Тип проверки подлинности" (Authentication Types). Отмените выбор параметра NTLM. В списке надежных поставщиков должен появиться новый поставщик "Поставщик SAML" (SAML Provider).

Установите флажок рядом с ним и нажмите кнопку "Сохранить" (Save), чтобы сохранить изменения. Теперь можно создать семейство сайтов для веб-приложения. Подробное описание этого процесса не входит в рамки этой статьи. Однако следует обратить внимание на один важный момент. При добавлении администратора семейства сайтов необходимо вводить имя в формате утверждения удостоверения. Например, в этом сценарии в качестве утверждения удостоверения выступает адрес электронной почты. Поэтому при добавлении администратора семейства сайтов используется имя administrator@contoso.local (адрес электронной почты пользователя, которого требуется назначить администратором семейства сайтов).

Протестируем созданное семейство сайтов. Откройте браузер, введите адрес https://seo14 и нажмите клавишу ВВОД. Сначала выполняется перенаправление на адрес SignInUrl для объекта SPTrustedIdentityTokenIssuer, который связан с веб-приложением. В скрипте PowerShell, который используется выше для создания объекта SPTrustedIdentityTokenIssuer для этого атрибута задается URL-адрес https://congen1.contoso.local/adfs/ls. После ввода этого URL-адреса для сайта в браузере отображается следующее:

Как видно, URL-адрес в окне браузера теперь указывает на сервер служб федерации Active Directory. Также отображается фоновый графический элемент окна входа в систему для сервера служб федерации Active Directory. Также обратите внимание, что для входа в систему используются учетные данные Windows (домен\пользователь). Это возможно, поскольку проверка подлинности осуществляется на сервере служб федерации Active Directory, а не в SharePoint. Приложение SharePoint настроено на использование адреса электронной почты в качестве удостоверения. Фактически, сначала осуществляется проверка подлинности на сервере служб федерации Active Directory, а затем используется созданное нами правило утверждения для извлечения адреса электронной почты и групп, которые помещаются в утверждения, отправляемые в SharePoint. После проверки подлинности повторно выполняется перенаправление в SharePoint по адресу https://seo14/_trust/, который настроен для проверяющей стороны в службах федерации Active Directory. На этот момент процесс проверки подлинности со стороны SharePoint завершается. Полученное утверждение помещается в токен SAML и преобразуется в объект SPUser. В завершение мы попадаем на домашнюю страницу сайта:

Обратите внимание, что в элементе управления входом в систему в правой части страницы отображается мое удостоверение в виде адреса электронной почты, поскольку это мое утверждение удостоверения.

В этой статье приводится полный процесс с небольшими пояснениями. С помощью приведенных в этой статье инструкций можно настроить и запустить сайты надлежащим образом.

Это локализованная запись блога. Исходная статья доступна по адресу Configuring SharePoint 2010 and ADFS v2 End to End