Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Cloud Organization
  • Начало работы
  • Управление организациями
    • Создать организацию
    • Изменить данные организации
    • Переключиться на другую организацию
  • Управление пользователями
    • Обзор
    • Добавить пользователя
    • Получить идентификатор или почту пользователя
    • Назначить права доступа
    • Удалить аккаунт пользователя
  • Управление группами пользователей
  • Управление федерациями удостоверений
    • Настроить федерацию удостоверений
    • Аутентификация с помощью Active Directory
    • Аутентификация с помощью Google Workspace
    • Аутентификация с помощью Azure Active Directory
    • Аутентификация с помощью Keycloak
    • Аутентификация с помощью SAML-совместимой федерации удостоверений
  • Управление облаками и сервисами
  • Справочник API
    • Аутентификация
    • gRPC (англ.)
      • Overview
      • GroupService
      • OrganizationService
      • UserService
      • CertificateService
      • FederationService
      • OperationService
    • REST (англ.)
      • Overview
      • Group
        • Overview
        • create
        • delete
        • get
        • list
        • listAccessBindings
        • listMembers
        • listOperations
        • setAccessBindings
        • update
        • updateAccessBindings
        • updateMembers
      • Organization
        • Overview
        • get
        • list
        • listAccessBindings
        • listOperations
        • setAccessBindings
        • update
        • updateAccessBindings
      • User
        • Overview
        • deleteMembership
        • listMembers
      • Federation
        • Overview
        • list
        • get
        • listUserAccounts
        • delete
        • addUserAccounts
        • update
        • listOperations
        • create
      • Certificate
        • Overview
        • list
        • get
        • delete
        • update
        • listOperations
        • create
  • Правила тарификации
  1. Управление федерациями удостоверений
  2. Аутентификация с помощью Azure Active Directory

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

Статья создана
Yandex Cloud
  • Перед началом
  • Создание и настройка SAML-приложения в Azure AD
    • Создайте SAML-приложение и скачайте сертификат
    • Добавьте пользователей
  • Создание и настройка федерации в Yandex Cloud Organization
    • Создайте федерацию
    • Добавьте сертификаты
    • Получите ссылку для входа в консоль
  • Настройка системы единого входа (SSO)
    • Добавьте ссылку для входа в консоль
    • Настройте сопоставление атрибутов пользователей
    • Добавьте пользователей в организацию
  • Проверка аутентификации

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

Настройка аутентификации состоит из следующих этапов:

  1. Создание и настройка SAML-приложения в Azure AD.

  2. Создание и настройка федерации в Yandex Cloud Organization.

  3. Настройка системы единого входа (SSO).

  4. Проверка аутентификации.

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

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

Создание и настройка SAML-приложения в Azure AD

Создайте SAML-приложение и скачайте сертификат

В роли поставщика удостоверений (IdP) выступает SAML-приложение в Azure AD. Начните создавать приложение и скачайте сертификат:

  1. Перейдите на портал Azure AD.

  2. В разделе Службы Azure выберите Azure Active Directory.

  3. На панели слева выберите Корпоративные приложения.

  4. Нажмите Новое приложение.

  5. На странице Обзор коллекции Azure AD нажмите Создайте собственное приложение.

  6. В открывшемся окне:

    1. Введите название приложения.

    2. Выберите вариант Integrate any other application you don't find in the gallery (Non-gallery).

    3. Нажмите кнопку Создать.

  7. На открывшейся странице Обзор на панели слева выберите Единый вход.

  8. Выберите метод единого входа SAML.

  9. На странице Вход на основе SAML в разделе 3. Сертификат подписи SAML скачайте сертификат (Base64). С помощью него поставщик удостоверений подписывает сообщение о том, что пользователь прошел аутентификацию.

Не закрывайте страницу: данные IdP-сервера понадобятся при создании и настройке федерации.

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

Добавьте пользователей на IdP-сервер:

  1. Перейдите на страницу Корпоративные приложения.

  2. Выберите созданное SAML-приложение.

  3. На панели слева выберите Пользователи и группы.

  4. Нажмите Добавить пользователя или группу.

  5. В поле Пользователи нажмите Не выбрано.

  6. В открывшемся окне отметьте пользователей и нажмите кнопку Выбрать.

  7. Нажмите кнопку Назначить.

Создание и настройка федерации в Yandex Cloud Organization

Создайте федерацию

Консоль управления
CLI
API
Terraform
  1. Перейдите в сервис Yandex Cloud Organization.

  2. На панели слева выберите раздел Федерации .

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

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

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

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

  7. В поле IdP Issuer вставьте ссылку, которая указана в поле Идентификатор Azure AD на странице Вход на основе SAML в Azure AD. Формат ссылки:

    https://sts.windows.net/<ID SAML-приложения>/
    
  8. В поле Ссылка на страницу для входа в IdP вставьте ссылку, которая указана в поле URL-адрес входа на странице Вход на основе SAML в Azure AD. Формат ссылки:

    https://login.microsoftonline.com/<ID SAML-приложения>/saml2
    
  9. Включите опцию Автоматически создавать пользователей, чтобы пользователь после аутенцификации автоматически добавлялся в организацию. Если опция отключена, федеративных пользователей потребуется добавить вручную.

  10. Нажмите кнопку Создать федерацию.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

  1. Посмотрите описание команды создания федерации:

    yc organization-manager federation saml create --help
    
  2. Создайте федерацию:

    yc organization-manager federation saml create --name my-federation \
        --organization-id <ID организации> \
        --auto-create-account-on-login \
        --cookie-max-age 12h \
        --issuer "https://sts.windows.net/<ID SAML-приложения>/" \
        --sso-binding POST \
        --sso-url "https://login.microsoftonline.com/<ID SAML-приложения>/saml2"
    

    Где:

    • name — имя федерации. Имя должно быть уникальным в каталоге.

    • organization-id — идентификатор организации.

    • auto-create-account-on-login — флаг, который активирует автоматическое создание новых пользователей в облаке после аутентификации на IdP-сервере.
      Опция упрощает процесс заведения пользователей, но созданный таким образом пользователь не сможет выполнять никаких операций с ресурсами в облаке. Исключение — те ресурсы, на которые назначены роли системной группе allUsers или allAuthenticatedUsers.

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

    • cookie-max-age — время, в течение которого браузер не должен требовать у пользователя повторной аутентификации.

    • issuer — идентификатор IdP-сервера, на котором должна происходить аутентификация.

      Используйте ссылку, которая указана в поле Идентификатор Azure AD на странице Вход на основе SAML в Azure AD. Формат ссылки:

      https://sts.windows.net/<ID SAML-приложения>/
      
    • sso-url — URL-адрес страницы, на которую браузер должен перенаправить пользователя для аутентификации.

      Используйте ссылку, которая указана в поле URL-адрес входа на странице Вход на основе SAML в Azure AD. Формат ссылки:

      https://login.microsoftonline.com/<ID SAML-приложения>/saml2
      
    • sso-binding — укажите тип привязки для Single Sign-on. Большинство поставщиков поддерживают тип привязки POST.

  1. Получите идентификатор каталога, в котором вы будете создавать федерацию.

  2. Создайте файл с телом запроса, например body.json:

    {
      "folderId": "<ID каталога>",
      "name": "my-federation",
      "organizationId": "<ID организации>",
      "autoCreateAccountOnLogin": true,
      "cookieMaxAge":"43200s",
      "issuer": "https://sts.windows.net/<ID SAML-приложения>/",
      "ssoUrl": "https://login.microsoftonline.com/<ID SAML-приложения>/saml2",
      "ssoBinding": "POST"
    }
    

    Где:

    • folderId — идентификатор каталога.

    • name — имя федерации. Имя должно быть уникальным в каталоге.

    • organizationId — идентификатор организации.

    • autoCreateAccountOnLogin — флаг, который активирует автоматическое создание новых пользователей в облаке после аутентификации на IdP-сервере.
      Опция упрощает процесс заведения пользователей, но созданный таким образом пользователь не сможет выполнять никаких операций с ресурсами в облаке. Исключение — те ресурсы, на которые назначены роли системной группе allUsers или allAuthenticatedUsers.

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

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

    • issuer — идентификатор IdP-сервера, на котором должна происходить аутентификация.

      Используйте ссылку, которая указана в поле Идентификатор Azure AD на странице Вход на основе SAML в Azure AD. Формат ссылки:

      https://sts.windows.net/<ID SAML-приложения>/
      
    • ssoUrl — URL-адрес страницы, на которую браузер должен перенаправить пользователя для аутентификации.

      Используйте ссылку, которая указана в поле URL-адрес входа на странице Вход на основе SAML в Azure AD. Формат ссылки:

      https://login.microsoftonline.com/<ID SAML-приложения>/saml2
      
    • ssoBinding — укажите тип привязки для Single Sign-on. Большинство поставщиков поддерживают тип привязки POST.

  3. Создайте федерацию с помощью метода create:

    curl -X POST \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer <IAM-токен>" \
      -d '@body.json' \
      https://organization-manager.api.cloud.yandex.net/organization-manager/v1/saml/federations
    {
     "done": true,
     "metadata": {
      "@type": "type.googleapis.com/yandex.cloud.organization-manager.v1.saml.CreateFederationMetadata",
      "federationId": "ajeobmje4dgj0belagb9"
     },
     ...
    

    В ответе в свойстве federationId будет указан идентификатор созданной федерации: сохраните его. Этот идентификатор понадобится на следующих шагах.

Если у вас ещё нет Terraform, установите его и настройте провайдер Yandex Cloud.

  1. В конфигурационном файле опишите параметры федерации:

    • name — имя федерации. Имя должно быть уникальным в каталоге.

    • description — описание федерации.

    • organization_id — идентификатор организации.

    • labels — набор пар меток ключ/значение, которые присвоены федерации.

    • issuer — идентификатор IdP-сервера, на котором должна происходить аутентификация.

      Используйте ссылку, которая указана в поле Идентификатор Azure AD на странице Вход на основе SAML в Azure AD. Формат ссылки:

      https://sts.windows.net/<ID SAML-приложения>/
      
    • sso_binding — укажите тип привязки для Single Sign-on. Большинство поставщиков поддерживают тип привязки POST.

    • sso_url — URL-адрес страницы, на которую браузер должен перенаправить пользователя для аутентификации.

      Используйте ссылку, которая указана в поле URL-адрес входа на странице Вход на основе SAML в Azure AD. Формат ссылки:

      https://login.microsoftonline.com/<ID SAML-приложения>/saml2
      
    • cookie_max_age — время в секундах, в течение которого браузер не должен требовать у пользователя повторной аутентификации. Значение по умолчанию 8 часов.

    • auto_create_account_on_login — флаг, который активирует автоматическое создание новых пользователей в облаке после аутентификации на IdP-сервере.
      Опция упрощает процесс заведения пользователей, но созданный таким образом пользователь не сможет выполнять никаких операций с ресурсами в облаке. Исключение — те ресурсы, на которые назначены роли системной группе allUsers или allAuthenticatedUsers.

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

    • case_insensitive_name_ids — зависимость имен пользователей от регистра.
      Если опция включена, идентификаторы имен федеративных пользователей будут нечувствительны к регистру.

    • security_settings — настройки безопасности федерации:

      • encrypted_assertions — подписывать запросы аутентификации.
        Если включить опцию, то все запросы аутентификации от Yandex Cloud будут содержать цифровую подпись. Вам потребуется скачать и установить сертификат Yandex Cloud.

    Пример структуры конфигурационного файла:

    resource "yandex_organizationmanager_saml_federation" federation {
     name            = "my-federation"
     organization_id = "<ID организации>"
     auto_create_account_on_login = "true"
     issuer          = "https://sts.windows.net/<ID SAML-приложения>/"      
     sso_url         = "https://login.microsoftonline.com/<ID SAML-приложения>/saml2"
     sso_binding     = "POST"
     security_settings {
        encrypted_assertions = "true"
        }
    }
    
  2. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в папку, где вы создали конфигурационный файл.

    2. Выполните проверку с помощью команды:

      $ terraform plan
      

    Если конфигурация описана верно, в терминале отобразятся параметры федерации. Если в конфигурации есть ошибки, Terraform на них укажет.

  3. Создайте федерацию.

    1. Если в конфигурации нет ошибок, выполните команду:

      $ terraform apply
      
    2. Подтвердите создание федерации.

    После этого в указанной организации будет создана федерация. Проверить появление федерации и ее настроек можно в организации в разделе Федерации.

Добавьте сертификаты

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

Консоль управления
CLI
API
  1. На панели слева выберите раздел Федерации .

  2. Нажмите имя федерации, для которой нужно добавить сертификат.

  3. Внизу страницы нажмите кнопку Добавить сертификат.

  4. Введите название и описание сертификата.

  5. Выберите способ добавления сертификата:

    • Чтобы добавить сертификат в виде файла, нажмите Выбрать файл и укажите путь к нему.

    • Чтобы вставить скопированное содержимое сертификата, выберите способ Текст и вставьте содержимое.

  6. Нажмите кнопку Добавить.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

  1. Посмотрите описание команды добавления сертификата:

    yc organization-manager federation saml certificate create --help
    
  2. Добавьте сертификат для федерации, указав путь к файлу сертификата:

    yc organization-manager federation saml certificate create \
      --federation-id <ID федерации> \
      --name "my-certificate" \
      --certificate-file certificate.cer
    

Воспользуйтесь методом create для ресурса Certificate:

  1. Сформируйте тело запроса. В свойстве data укажите содержимое сертификата:

    {
      "federationId": "<ID федерации>",
      "name": "my-certificate",
      "data": "-----BEGIN CERTIFICATE..."
    }
    
  2. Отправьте запрос на добавление сертификата:

    $ export IAM_TOKEN=CggaATEVAgA...
    $ curl -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer ${IAM_TOKEN}" \
        -d '@body.json' \
        "https://organization-manager.api.cloud.yandex.net/organization-manager/v1/saml/certificates"
    

Совет

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

Получите ссылку для входа в консоль

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

Получите ссылку:

  1. Скопируйте идентификатор федерации:

    1. На панели слева выберите раздел Федерации .

    2. Скопируйте идентификатор федерации, для которой вы настраиваете доступ.

  2. Сформируйте ссылку с помощью полученного идентификатора:

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

Настройка системы единого входа (SSO)

Добавьте ссылку для входа в консоль

Когда вы создали федерацию и получили ссылку для входа в консоль, завершите создание SAML-приложения в Azure AD:

  1. Откройте страницу настроек SAML-приложения Вход на основе SAML.

  2. В разделе 1. Базовая конфигурация SAML укажите сведения о Yandex Cloud, выступающем в роли поставщика услуг.

    Для этого в полях Идентификатор (сущности) и URL-адрес ответа (URL-адрес службы обработчика утверждений) введите полученную ранее ссылку для входа в консоль.

  3. Нажмите Сохранить.

Настройте сопоставление атрибутов пользователей

После аутентификации пользователя IdP-сервер отправит в Yandex Cloud SAML-сообщение, которое будет содержать:

  • информацию об успешной аутентификации;

  • атрибуты пользователя, такие как идентификатор Name ID, имя и адрес электронной почты.

Вы можете настроить сопоставление между атрибутами SAML-сообщения и персональными данными, которые хранятся на IdP-сервере. Для этого на странице Вход на основе SAML в разделе 2. Утверждения и атрибуты пользователя нажмите Изменить.

Типы персональных данных, которые поддерживает Yandex Cloud Organization для Azure AD, приведены ниже.

Данные пользователя Комментарий Атрибуты приложений
Уникальный идентификатор пользователя (Name ID) Обязательный атрибут.
По умолчанию в Azure AD в качестве источника атрибута используется User Principal Name (UPN) в формате <login>_<domain>#EXT#@<supplier>.onmicrosoft.com. При добавлении пользователей в федерацию вручную такой формат Name ID не поддерживается. Рекомендуется в Azure AD изменить источник атрибута: вместо UPN user.userprincipalname выбрать адрес электронной почты user.mail.
Утверждение Уникальный идентификатор пользователя (ID)
Фамилия Отображается в сервисах Yandex Cloud. http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
Имя Отображается в сервисах Yandex Cloud. http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
Полное имя Отображается в сервисах Yandex Cloud.
Пример: Иван Иванов
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
Почта Используется для отправки уведомлений из сервисов Yandex Cloud.
Пример: ivanov@example.com
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

Добавьте пользователей в организацию

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

Для этого вам понадобятся пользовательские Name ID. Их возвращает IdP-сервер вместе с ответом об успешной аутентификации.

Добавить пользователя может администратор (роль organization-manager.admin) или владелец (роль organization-manager.organizations.owner) организации. Как назначить роль пользователю, читайте в разделе Роли.

Консоль управления
CLI
API
  1. Войдите в аккаунт администратора или владельца организации.

  2. Перейдите в сервис Yandex Cloud Organization.

  3. На левой панели выберите раздел Пользователи .

  4. В правом верхнем углу нажмите на стрелку возле кнопки Добавить пользователя. Выберите пункт Добавить федеративных пользователей.

  5. Выберите федерацию, из которой необходимо добавить пользователей.

  6. Перечислите Name ID пользователей, разделяя их переносами строк.

  7. Нажмите кнопку Добавить. Пользователи будут подключены к организации.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

  1. Посмотрите описание команды добавления пользователей:

    yc organization-manager federation saml add-user-accounts --help
    
  2. Добавьте пользователей, перечислив их Name ID через запятую:

    yc organization-manager federation saml add-user-accounts --id <ID федерации> \
      --name-ids=alice@example.com,bob@example.com,charlie@example.com
    

    Где:

    • id — идентификатор федерации.

    • name-ids — Name ID пользователей.

Чтобы добавить пользователей федерации в облако:

  1. Сформируйте файл с телом запроса, например body.json. В теле запроса укажите массив Name ID пользователей, которых необходимо добавить:

    {
      "nameIds": [
        "alice@example.com",
        "bob@example.com",
        "charlie@example.com"
      ]
    }
    
  2. Отправьте запрос, указав в параметрах идентификатор федерации:

    $ curl -X POST \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer <IAM-токен>" \
      -d '@body.json' \
      https://organization-manager.api.cloud.yandex.net/organization-manager/v1/saml/federations/<ID федерации>:addUserAccounts
    

Проверка аутентификации

Когда вы закончили настройку SSO, протестируйте, что все работает:

  1. Откройте браузер в гостевом режиме или режиме инкогнито.

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

  3. Введите данные для аутентификации и нажмите кнопку Далее.

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

Что дальше

  • Назначьте роли добавленным пользователям.

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Перед началом
  • Создание и настройка SAML-приложения в Azure AD
  • Создайте SAML-приложение и скачайте сертификат
  • Добавьте пользователей
  • Создание и настройка федерации в Yandex Cloud Organization
  • Создайте федерацию
  • Добавьте сертификаты
  • Получите ссылку для входа в консоль
  • Настройка системы единого входа (SSO)
  • Добавьте ссылку для входа в консоль
  • Настройте сопоставление атрибутов пользователей
  • Добавьте пользователей в организацию
  • Проверка аутентификации