Аутентификация с помощью Active Directory

С помощью федерации удостоверений вы можете использовать Active Directory Federation Services (AD FS) для аутентификации в облаке.

Чтобы настроить аутентификацию:

  1. Создайте федерацию в облаке.
  2. Добавьте сертификаты в федерацию.
  3. Получите ссылку для входа в консоль.
  4. Настройте аутентификацию на сервере AD FS.
  5. Добавьте пользователей в облако.
  6. Протестируйте аутентификацию.

Перед началом

Для того, чтобы воспользоваться инструкциями в этом разделе, вам понадобятся:

  1. Роль admin или resource-manager.clouds.owner в облаке.

  2. Работающая ферма AD FS. Если на вашем сервере еще не настроен AD FS, установите и настройте его. Для развертывания AD FS вам также необходимо установить и настроить Active Directory Domain Services (AD DS).

    Если у вас нет машины с ОС Windows, чтобы развернуть сервер AD FS, вы можете создать виртуальную машину в Яндекс.Облаке.

    Совет

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

  3. Действующий сертификат, который используется для подписи в службе AD FS. Если у вас нет действующего SSL-сертификата, получите новый.

    Имя субъекта в сертификате должно содержать FQDN сервера поставщика удостоверений, например fs.contoso.com, чтобы страница аутентификации не могла быть заблокирована браузером.

Создайте федерацию в облаке

Чтобы создать федерацию в IAM:

  1. Откройте страницу каталога в консоли управления.

  2. В меню слева выберите вкладку Федерации.

  3. Нажмите Создать федерацию.

  4. Задайте имя федерации. Имя должно быть уникальным в каталоге.

  5. При необходимости добавьте описание.

  6. В поле Время жизни cookie укажите время, в течении которого браузер не должен требовать у пользователя повторной аутентификации.

  7. В поле IdP Issuer укажите ссылку в формате https://<ADFS>/adfs/services/trust, где <ADFS> — это FQDN вашего AD FS сервера.

  8. В поле SSO метод выберите POST.

  9. В поле Ссылка на страницу для входа в IdP укажите ссылку в формате https://[ADFS]/adfs/ls/, где <ADFS> — это FQDN вашего AD FS сервера.

  10. Включите опцию Автоматически создавать пользователей, чтобы аутентифицированный пользователь автоматически добавлялся в облако. Эта опция упрощает процесс заведения пользователей, но созданному таким образом пользователю по умолчанию назначается только роль resource-manager.clouds.member: он не сможет выполнять никаких операций с ресурсами в этом облаке. Исключение — те ресурсы, на которые назначены роли системной группе allUsers или allAuthenticatedUsers.

    Если эту опцию не включать, то пользователь, которого не добавили в облако, не сможет войти в консоль управления, даже если пройдет аутентификацию на вашем сервере. В этом случае вы можете управлять белым списком пользователей, которым разрешено пользоваться Яндекс.Облаком.

    Предупреждение

    Ручное добавление федеративных пользователей сейчас не поддерживается.

Укажите сертификаты для федерации

Когда поставщик удостоверений (IdP) сообщает Яндекс.Облаку, что пользователь прошел аутентификацию, он подписывает сообщение своим сертификатом. Чтобы Яндекс.Облако могло проверить этот сертификат, добавьте его в созданную федерацию в IAM.

Совет

Чтобы аутентификация не прерывалась в тот момент, когда у очередного сертификата закончился срок действия, рекомендуется добавлять в федерацию несколько сертификатов — текущий и те, которые будут использоваться после текущего. Если один сертификат окажется недействительным, Яндекс.Облако попробует проверить подпись другим сертификатом.

Чтобы получить сертификат службы AD FS:

  1. Войдите на ваш сервер AD FS и откройте Server Manager.
  2. Откройте консоль управления AD FS: ToolsAD FS Management.
  3. В открывшемся окне в дереве слева нажмите ServicesCertificates.
  4. Нажмите правой кнопкой мыши на сертификате в блоке Token-signing и выберите View certificate.
  5. В открывшемся окне перейдите на вкладку Details.
  6. Нажмите кнопку Copy to file.
  7. Нажмите кнопку Next.
  8. Выберите формат Base-64 encoded X.509 (.CER) и нажмите Next.
  9. Укажите, куда сохранить сертификат и с каким именем, и нажмите Next.
  10. Проверьте настройки экспорта сертификата и нажмите Finish.

Чтобы добавить сертификат в федерацию:

  1. Откройте страницу каталога в консоли управления.
  2. В меню слева выберите вкладку Федерации.
  3. Нажмите на имя федерации, которой вы хотите добавить сертификат.
  4. Нажмите на кнопку Добавить сертификат внизу страницы.
  5. Выберите способ добавления сертификата:
    • Чтобы добавить сертификат в виде файла, нажмите Выбрать файл и укажите путь к нему.
    • Чтобы вставить скопированное содержимое сертификата, выберите способ Текст и вставьте содержимое.

Когда вы настроите аутентификацию с помощью федерации, пользователи смогут войти в консоль управления по ссылке, в которой содержится идентификатор федерации. Эту же ссылку необходимо будет указать при настройке сервера аутентификации.

Получите и сохраните эту ссылку:

  1. Получите идентификатор федерации:

    1. Откройте страницу каталога в консоли управления.
    2. В меню слева выберите вкладку Федерации.
    3. Скопируйте идентификатор федерации, для которой вы настраиваете доступ.
  2. Сформируйте ссылку с помощью полученного идентификатора:

    https://console.cloud.yandex.ru/federations/<ID федерации>

Настройте аутентификацию на сервере AD FS

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

Инструкции в этом разделе написаны для ОС Windows Server 2016, для других версий шаги могут отличаться.

Чтобы настроить аутентификацию на сервере AD FS:

  1. Создайте отношение доверия с проверяющей стороной
  2. Настройте Claims Mapping

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

AD FS требует создавать отношение доверия с проверяющей стороной (relying party trust) для каждого поставщика услуг (Service Provider, SP), который будет использовать AD FS для аутентификации.

Создайте отношение доверия с проверяющей стороной для федерации, созданной в облаке:

  1. Войдите на ваш сервер AD FS и откройте Server Manager.

  2. Откройте консоль управления AD FS: ToolsAD FS Management.

  3. В списке действий выберите Add Relying Party Trust.

  4. Откроется окно помощника. На первой странице выберите Claims aware и нажмите Start.

  5. Выберите Enter data about the relying party manually и нажмите Next.

  6. Задайте имя, например Yandex.Cloud, и нажмите Next.

  7. На следующем шаге вас попросят указать сертификат для подписи токенов. Этот шаг необязательный, поэтому нажмите Next.

  8. На шаге Configure URL выберите Enable support for the SAML 2.0 WebSSO protocol и укажите ссылку для входа в консоль, полученную ранее. После этого нажмите Next.

    image

  9. На следующей странице введите в качестве идентификатора эту же ссылку для входа в консоль и нажмите Add. После этого нажмите Next.

  10. На следующей странице можно выбрать, кому будет доступна аутентификация с помощью этой федерации. По умолчанию выбрана политика Permit for everyone, которая разрешает доступ для всех пользователей.

    Вы можете выбрать другую политику. Например, чтобы разрешить доступ только для отдельной группы пользователей, выберите Permit specific group и нажмите на слово <parameter>, чтобы выбрать, для каких групп разрешить доступ. Подробнее о политиках управления доступом.

    image

  11. Нажмите Next.

  12. На странице Ready to Add Trust проверьте введенные данные и нажмите Close.

Настройте Claims Mapping

Когда AD FS аутентифицирует пользователя, она отправляет в Яндекс.Облако SAML-сообщение с подтверждением об успешной аутентификации. В элементе NameID в этом сообщении должно указываться, кто именно был аутентифицирован. Для этого необходимо настроить соответствие данных пользователя элементам SAML-сообщения.

Важная информация

Идентификатор NameID должен быть уникальным для всех пользователей федерации. В качестве идентификатора рекомендуется указывать User Principal Name (UPN) или адрес электронной почты.

Чтобы настроить соответствие данных пользователя элементам SAML-сообщения:

  1. В консоли управления AD FS в блоке Relying Party Trusts нажмите правой кнопкой мыши на созданном ранее отношении доверия с проверяющей стороной и выберите Edit Claim Issuance Policy.
  2. В открывшемся окне нажмите Add Rule.
  3. Выберите Send LDAP Attributes as Claims и нажмите Next.
  4. На следующей странице настройте, что будет передаваться в полях сообщения:
    1. В поле Claim rule name задайте имя правила, например Claims mapping

    2. В поле Attribute Store выберите Active Directory.

    3. Укажите атрибут, который будет передаваться в качестве NameID. Для этого добавьте строчку в списке Mapping of LDAP attributes:

      В LDAP Attribute выберите User-Principal-Name или E-Mail-Addresses.

      В Outgoing Claim Type выберите Name ID.

    4. Чтобы пользователь мог обратиться в техподдержку Яндекс.Облака из консоли управления, настройте, чтобы сервер передавал адрес электронной почты (E-Mail Address и имя пользователя (Name):

      image

      Вы также можете передавать отдельно имя и фамилию пользователя. Для этого вместо Name используйте типы Given Name и Surname.

  5. Нажмите Finish, затем нажмите OK, чтобы закрыть окно Edit Claim Issuance Policy.

Добавьте пользователей в облако

Предупреждение

Ручное добавление федеративных пользователей сейчас не поддерживается.

Протестируйте аутентификацию

Теперь, когда вы закончили настройку аутентификации с помощью Active Directory, проверьте ее работу:

  1. Откройте браузер в гостевом режиме или режиме инкогнито для чистой симуляции нового пользователя.

  2. Перейдите по ссылке для входа в консоль управления, которую вы получили ранее. Браузер должен перенаправить вас на страницу аутентификации в AD FS, которая по умолчанию выглядит так:

    image

  3. Введите ваши данные для аутентификации. По умолчанию, необходимо ввести UPN и пароль. Затем нажмите кнопку Sign in.

  4. После успешной аутентификации AD FS перенаправит вас обратно по ссылке для входа в консоль управления, а после этого — на главную страницу консоли управления. В правом верхнем углу вы можете увидеть, что вы вошли в консоль от имени аккаунта в Active Directory.

Что дальше