Создать SAML-приложение в Yandex Identity Hub
Чтобы пользователи вашей организации могли аутентифицироваться во внешних приложениях с помощью технологии единого входа по стандарту SAML
Управлять SAML-приложениями может пользователь, которому назначена роль organization-manager.samlApplications.admin или выше.
Создайте приложение
- Войдите в сервис Yandex Identity Hub
. - На панели слева выберите
Приложения. - В правом верхнем углу страницы нажмите
Создать приложение и в открывшемся окне:-
Выберите метод единого входа SAML (Security Assertion Markup Language).
-
В поле Имя задайте имя создаваемого приложения. Имя должно быть уникальным в пределах организации и соответствовать требованиям:
- длина — от 1 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
(Опционально) В поле Описание задайте описание приложения.
-
(Опционально) Добавьте метки:
- Нажмите Добавить метку.
- Введите метку в формате
ключ: значение. - Нажмите Enter.
-
Нажмите кнопку Создать приложение.
-
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для создания SAML-приложения:
yc organization-manager idp application saml application create --help -
Создайте SAML-приложение:
yc organization-manager idp application saml application create \ --organization-id <идентификатор_организации> \ --name <имя_приложения> \ --description <описание_приложения> \ --labels <ключ>=<значение>[,<ключ>=<значение>]Где:
-
--organization-id— идентификатор организации, в которой нужно создать SAML-приложение. Обязательный параметр. -
--name— имя SAML-приложения. Обязательный параметр. Имя должно быть уникальным в пределах организации и соответствовать требованиям:- длина — от 1 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
--description— описание SAML-приложения. Необязательный параметр. -
--labels— список меток. Необязательный параметр. Можно указать одну или несколько меток через запятую в формате<ключ1>=<значение1>,<ключ2>=<значение2>.
Результат:
id: ek0o663g4rs2******** name: saml-app organization_id: bpf2c65rqcl8******** group_claims_settings: group_distribution_type: NONE status: ACTIVE created_at: "2025-10-21T10:51:28.790866Z" updated_at: "2025-10-21T12:37:19.274522Z"Сохраните значение поля
id, оно понадобится для настройки приложения. -
-
(Опционально) Получите информацию о сертификатах приложения:
yc organization-manager idp application saml signature-certificate list \ --application-id <идентификатор_приложения>При создании SAML-приложения автоматически создается сертификат для проверки подписи SAML-ответов.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.
-
Опишите в конфигурационном файле параметры SAML-приложения:
resource "yandex_organizationmanager_idp_application_saml_application" "saml_app" { organization_id = "<идентификатор_организации>" name = "<имя_приложения>" description = "<описание_приложения>" labels = { "<ключ>" = "<значение>" } }Где:
-
organization_id— идентификатор организации, в которой нужно создать SAML-приложение. Обязательный параметр. -
name— имя SAML-приложения. Обязательный параметр. Имя должно быть уникальным в пределах организации и соответствовать требованиям:- длина — от 1 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
description— описание SAML-приложения. Необязательный параметр. -
labels— список меток. Необязательный параметр.
Подробнее о параметрах ресурса
yandex_organizationmanager_idp_application_saml_applicationчитайте в документации провайдера. -
-
Создайте ресурсы:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Terraform создаст все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в интерфейсе Cloud Center
. -
При создании SAML-приложения автоматически создается сертификат для проверки подписи SAML-ответов.
Воспользуйтесь методом REST API Application.Create для ресурса Application или вызовом gRPC API ApplicationService/Create.
Настройте приложение
Чтобы настроить интеграцию внешнего приложения с созданным SAML-приложением в Yandex Identity Hub, выполните настройки на стороне поставщика услуг и на стороне Yandex Identity Hub.
Задайте настройки интеграции на стороне поставщика услуг
Значения настроек интеграции, которые нужно задать на стороне поставщика услуг, доступны на странице с информацией о приложении в интерфейсе Cloud Center
В зависимости от возможностей вашего поставщика услуг вы можете выполнить необходимые настройки вручную или автоматически, загрузив файл с метаданными или указав URL с метаданными:
-
Войдите в сервис Yandex Identity Hub
. -
На панели слева выберите
Приложения и выберите нужное SAML-приложение. -
На вкладке Обзор в блоке Конфигурация поставщика удостоверений (IdP) скопируйте значения параметров, которые необходимо задать на стороне поставщика услуг:
Issuer / IdP EntityID— уникальный идентификатор, используемый для приложения. Значение должно совпадать на стороне поставщика услуг и на стороне Yandex Identity Hub.Login URL— адрес, на который поставщик услуг будет отправлять запросы для аутентификации пользователя.Logout URL— адрес, на который поставщик услуг будет отправлять SAML-запрос при выходе пользователя из системы.
-
Скачайте сертификат приложения в блоке Сертификат приложения, нажав кнопку Скачать сертификат.
-
На стороне поставщика услуг настройте интеграцию с SAML-приложением Yandex Identity Hub, указав скопированные параметры и добавив скачанный сертификат. При необходимости обратитесь к документации или в службу поддержки вашего поставщика услуг.
-
Войдите в сервис Yandex Identity Hub
. -
На панели слева выберите
Приложения и выберите нужное SAML-приложение. -
На вкладке Обзор в блоке Конфигурация поставщика удостоверений (IdP) нажмите кнопку Скачать файл с метаданными.
Скачанный XML
-файл содержит значения всех необходимых настроек и сертификат, который используется для проверки подписи SAML-ответов. Загрузите скачанный файл на стороне поставщика услуг, если ваш поставщик услуг поддерживает конфигурирование приложения с помощью файла с метаданными. При необходимости обратитесь к документации или в службу поддержки вашего поставщика услуг.
-
Войдите в сервис Yandex Identity Hub
. -
На панели слева выберите
Приложения и выберите нужное SAML-приложение. -
На вкладке Обзор в блоке Конфигурация поставщика удостоверений (IdP) скопируйте значение поля Metadata URL.
По ссылке доступны значения всех необходимых настроек и сертификат, который используется для проверки подписи SAML-ответов. Укажите полученную ссылку в настройках на стороне поставщика услуг, если ваш поставщик услуг поддерживает конфигурирование приложения с помощью URL с метаданными. При необходимости обратитесь к документации или в службу поддержки вашего поставщика услуг.
Настройте SAML-приложение на стороне Yandex Identity Hub
Прежде чем настраивать SAML-приложение на стороне Yandex Identity Hub, получите необходимые значения настроек у вашего поставщика услуг. Затем перейдите к настройкам SAML-приложения в Yandex Identity Hub:
- Войдите в сервис Yandex Identity Hub
. - На панели слева выберите
Приложения и выберите нужное SAML-приложение. -
Справа сверху нажмите кнопку
Редактировать и в открывшемся окне:-
В поле SP EntityID укажите уникальный идентификатор поставщика услуг (Service Provider).
Значение должно совпадать на стороне поставщика услуг и на стороне Yandex Identity Hub.
-
В поле ACS URL укажите URL-адрес, на который Yandex Identity Hub будет отправлять SAML-ответ.
Если ваш поставщик услуг вместо ACS URL использует ACS-индексы, в дополнение к ACS URL вы можете задать полученное на стороне поставщика услуг значение индекса.
При необходимости воспользуйтесь кнопкой Добавить URL, чтобы указать несколько URL/индексов ACS.
Примечание
Если в настройках поля ACS URL для одного из URL-адресов вы указали индекс, то индексы также должны быть указаны и для всех остальных URL-адресов.
-
В поле Режим подписи выберите элементы SAML-ответа, которые будут подписываться электронной подписью:
Assertions— будут подписываться только передаваемые атрибуты. Значение по умолчанию.Response— будет подписываться весь SAML-ответ целиком.Assertions and Response— будут подписываться как целиком весь SAML-ответ, так и (отдельно) передаваемые атрибуты.
Важно
Режим подписи, заданный для SAML-приложения на стороне Yandex Identity Hub, должен соответствовать режиму подписи, заданному на стороне поставщика услуг.
-
Нажмите кнопку Сохранить.
-
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для настройки SAML-приложения:
yc organization-manager idp application saml application update --help -
Выполните команду для настройки параметров поставщика услуг:
yc organization-manager idp application saml application update \ --id <идентификатор_приложения> \ --sp-entity-id <идентификатор_поставщика_услуг> \ --acs-urls <URL>[,<URL>] \ --signature-mode <режим_подписи>Где:
--id— идентификатор SAML-приложения. Обязательный параметр.--sp-entity-id— уникальный идентификатор поставщика услуг (Service Provider). Значение должно совпадать на стороне поставщика услуг и на стороне Yandex Identity Hub.--acs-urls— URL-адрес или несколько адресов через запятую, на которые Yandex Identity Hub будет отправлять SAML-ответ. ACS URL должен соответствовать схемеhttps. Использовать протокол без шифрования допускается только в целях тестирования на локальном хосте (значенияhttp://127.0.0.1иhttp://localhost).--signature-mode— элементы SAML-ответа, которые будут подписываться электронной подписью. Возможные значения:assertion_only— только передаваемые атрибуты пользователя;response_only— весь SAML-ответ целиком;response_and_assertion— целиком весь SAML-ответ и (отдельно) передаваемые атрибуты.
Результат:
id: ek0o663g4rs2******** name: saml-app organization_id: bpf2c65rqcl8******** sp_entity_id: https://example.com/saml acs_urls: - url: https://example.com/saml/acs signature_mode: RESPONSE_AND_ASSERTION group_claims_settings: group_distribution_type: NONE status: ACTIVE created_at: "2025-10-21T10:51:28.790866Z" updated_at: "2025-10-21T12:37:19.274522Z"
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.
-
Опишите в конфигурационном файле параметры настройки SAML-приложения:
resource "yandex_organizationmanager_idp_application_saml_application" "saml_app" { organization_id = "<идентификатор_организации>" name = "<имя_приложения>" service_provider = { entity_id = "<идентификатор_поставщика_услуг>" acs_urls = [ { url = "URL" } ] security_settings = { signature_mode = "RESPONSE_AND_ASSERTIONS" } } }Где:
organization_id— идентификатор организации, в которой нужно создать SAML-приложение. Обязательный параметр.entity_id— уникальный идентификатор поставщика услуг (Service Provider). Значение должно совпадать на стороне поставщика услуг и на стороне Yandex Identity Hub.acs_urls— список URL-адресов, на которые Yandex Identity Hub будет отправлять SAML-ответ. ACS URL должен соответствовать схемеhttps. Использовать протокол без шифрования допускается только в целях тестирования на локальном хосте (значенияhttp://127.0.0.1иhttp://localhost).signature_mode— элементы SAML-ответа, которые будут подписываться электронной подписью. Возможные значения:ASSERTION_ONLY— только передаваемые атрибуты пользователя;RESPONSE_ONLY— весь SAML-ответ целиком;RESPONSE_AND_ASSERTION— целиком весь SAML-ответ и (отдельно) передаваемые атрибуты.
Подробнее о параметрах ресурса
yandex_organizationmanager_idp_application_saml_applicationчитайте в документации провайдера. -
Примените изменения:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Проверить изменения ресурсов и их настройки можно в интерфейсе Cloud Center
. -
Воспользуйтесь методом REST API Application.Update для ресурса Application или вызовом gRPC API ApplicationService/Update.
Настройте атрибуты пользователей и групп
Вы можете настроить атрибуты, которые будут передаваться из Yandex Identity Hub поставщику услуг:
-
Войдите в сервис Yandex Identity Hub
. -
На панели слева выберите
Приложения и выберите нужное приложение. -
Перейдите на вкладку Атрибуты.
-
Чтобы добавить атрибут групп пользователей, в правом верхнем углу страницы нажмите кнопку
Добавить атрибут группы и в открывшемся окне:-
В поле Имя атрибута задайте имя атрибута групп пользователей. Имя атрибута должно быть уникальным для вашего приложения.
-
В поле Передаваемые группы выберите одно из значений:
-
Все группы— в SAML-ответе в значение данного поля будут включены все группы, в которые входит пользователь.Максимальное количество передаваемых в этом поле групп — 1 000. Если количество групп, в которые входит пользователь, превышает это число, на сторону поставщика услуг будет передана только первая тысяча групп.
-
Только назначенные группы— в SAML-ответе в значение данного поля из всех групп, в которые входит пользователь, будут включены только те группы, которые явно заданы на вкладке Пользователи и группы SAML-приложения.
-
-
Нажмите кнопку Добавить.
-
-
Чтобы добавить дополнительные атрибуты пользователей, в правом верхнем углу страницы нажмите кнопку
Добавить атрибут и в открывшемся окне:-
В поле Имя атрибута задайте имя атрибута, уникальное для вашего приложения.
-
В поле Значение выберите одно из значений:
SubjectClaims.sub— идентификатор пользователя. Значение поля соответствует значению, отображаемому в поле Идентификатор в списке пользователей организации в интерфейсе Yandex Identity Hub в Cloud Center. Например:aje0fapf84ofj57q1r0b.SubjectClaims.preferred_username— уникальный логин пользователя. Значение поля соответствует значению, отображаемому в поле Имя пользователя в списке пользователей организации в интерфейсе Yandex Identity Hub в Cloud Center. Например:ivanov@example-federation.ru.SubjectClaims.name— полное имя пользователя. Значение поля соответствует значению, отображаемому в поле Пользователь в списке пользователей организации в интерфейсе Yandex Identity Hub в Cloud Center. Например:Иванов Иван.SubjectClaims.given_name— имя. Значение поля соответствует значению, отображаемому в поле Имя в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:Иван.SubjectClaims.family_name— фамилия. Значение поля соответствует значению, отображаемому в поле Фамилия в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:Иванов.SubjectClaims.email— адрес электронной почты. Значение поля соответствует значению, отображаемому в поле Электронная почта на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:ivanov@example-company.ru.SubjectClaims.phone_number— номер телефона. Значение поля соответствует значению, отображаемому в поле Номер телефона в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:+74951234567.SubjectClaims.company_name— название компании. Значение поля соответствует значению, отображаемому в поле Название компании в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:ООО «Праздник».SubjectClaims.department— название подразделения. Значение поля соответствует значению, отображаемому в поле Подразделение в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:Отдел АСУ.SubjectClaims.job_title— название должности. Значение поля соответствует значению, отображаемому в поле Должность в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:Разработчик.SubjectClaims.employee_id— цифровой код пользователя из кадровой системы компании. Значение поля соответствует значению, отображаемому в поле Табельный номер в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:08012.
Примечание
Любое из этих значений атрибутов вы можете добавлять более одного раза под разными именами.
-
(Опционально) Нажмите Добавить трансформацию, чтобы добавить трансформацию атрибута. Выберите один из типов трансформации:
ExtractAfter— возвращает часть значения, которая находится после указанной подстроки. Подстрока указывается в поле Подстрока. Например,user@site.com+@→site.com.ExtractBefore— возвращает часть значения, которая находится до указанной подстроки. Подстрока указывается в поле Подстрока. Например,user@example.com+@→user.ToLowercase— приводит все символы в значении атрибута к нижнему регистру.ToUppercase— приводит все символы в значении атрибута к верхнему регистру.Trim— удаляет пробелы в начале и в конце значения атрибута.IfEmpty— заменяет текущее значение атрибута, если оно пустое. Можно выбрать значение для замены из списка значений атрибутов или указать свое. Например, если значениеusernameпустое, использоватьemail.Constant— заменяет текущее значение на указанную константу. Константа указывается в поле Значение. Например,<значение_атрибута>→User.
-
Нажмите кнопку Добавить.
-
-
Чтобы изменить имеющийся атрибут, нажмите на строку с нужным атрибутом и в открывшемся окне:
-
Измените имя и/или значение атрибута.
Для атрибута
NameID, в котором передается идентификатор пользователя, можно изменить формат и значение. Список доступных значений в поле Значение зависит от выбранного формата. При изменении формата значение атрибута изменяется автоматически на значение по умолчанию для этого формата.Возможные форматы и значения атрибута:
-
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress— идентификатор пользователя передается в формате адреса электронной почты. Доступные значения:-
SubjectClaims.preferred_username— значение по умолчанию при переключении на этот формат.Уникальность и неизменяемость передаваемого идентификатора не гарантируется: в одной организации могут быть два пользователя с одинаковым идентификатором
preferred_username. Например: федеративный пользователь и локальный пользователь могут иметь одинаковое значение этого атрибута.Если идентификатор
preferred_usernameфедеративного пользователя задан не в формате адреса электронной почты, к передаваемому идентификатору будет автоматически добавлен суффикс@<идентификатор_федерации_удостоверений>, чтобы привести его к такому формату. -
SubjectClaims.email— адрес электронной почты пользователя.
-
-
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent— идентификатор пользователя передается в формате идентификатора пользователя организации. При этом передаваемое значение гарантированно уникальное и неизменяемое. Доступные значения:SubjectClaims.sub— значение по умолчанию при переключении на этот формат.SubjectClaims.external_id— внешний идентификатор пользователя.SubjectClaims.employee_id— табельный номер сотрудника.
-
urn:oasis:names:tc:SAML:2.0:nameid-format:transient— идентификатор пользователя передается в значении идентификатора текущей сессии пользователя. Значение этого идентификатора изменяется в зависимости от используемой сессии и не может применяться для однозначной идентификации пользователя.Формат
urn:oasis:names:tc:SAML:2.0:nameid-format:transientнельзя задать в настройках атрибутаNameIDявно: идентификатор пользователя в этом формате передается в SAML-ответе только в том случае, если этот формат был явно запрошен в SAML-запросе.
Важно
Если SAML-запрос со стороны поставщика услуг содержит явное указание формата, в котором ожидается значение идентификатора пользователя
NameID, то в SAML-ответе значение будет отправлено в том формате, который указан в SAML-запросе. При этом значение формата, заданное в настройках Yandex Identity Hub, будет проигнорировано. -
-
Нажмите кнопку Обновить.
-
-
Чтобы удалить имеющийся атрибут пользователя или группы, в строке с этим атрибутом нажмите значок
и выберите Удалить, после чего подтвердите удаление.Примечание
Удалять можно любые атрибуты, кроме обязательного атрибута
NameID.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для добавления атрибута:
yc organization-manager idp application saml attribute create --help -
Чтобы добавить атрибут пользователя, выполните команду:
yc organization-manager idp application saml attribute create \ --application-id <идентификатор_приложения> \ --name <имя_атрибута> \ --value <значение_атрибута>Где:
-
--application-id— идентификатор SAML-приложения. -
--name— имя атрибута, уникальное для вашего приложения. -
--value— значение атрибута. Возможные значения:SubjectClaims.sub— идентификатор пользователя. Значение поля соответствует значению, отображаемому в поле Идентификатор в списке пользователей организации в интерфейсе Yandex Identity Hub в Cloud Center. Например:aje0fapf84ofj57q1r0b.SubjectClaims.preferred_username— уникальный логин пользователя. Значение поля соответствует значению, отображаемому в поле Имя пользователя в списке пользователей организации в интерфейсе Yandex Identity Hub в Cloud Center. Например:ivanov@example-federation.ru.SubjectClaims.name— полное имя пользователя. Значение поля соответствует значению, отображаемому в поле Пользователь в списке пользователей организации в интерфейсе Yandex Identity Hub в Cloud Center. Например:Иванов Иван.SubjectClaims.given_name— имя. Значение поля соответствует значению, отображаемому в поле Имя в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:Иван.SubjectClaims.family_name— фамилия. Значение поля соответствует значению, отображаемому в поле Фамилия в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:Иванов.SubjectClaims.email— адрес электронной почты. Значение поля соответствует значению, отображаемому в поле Электронная почта на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:ivanov@example-company.ru.SubjectClaims.phone_number— номер телефона. Значение поля соответствует значению, отображаемому в поле Номер телефона в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:+74951234567.SubjectClaims.company_name— название компании. Значение поля соответствует значению, отображаемому в поле Название компании в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:ООО «Праздник».SubjectClaims.department— название подразделения. Значение поля соответствует значению, отображаемому в поле Подразделение в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:Отдел АСУ.SubjectClaims.job_title— название должности. Значение поля соответствует значению, отображаемому в поле Должность в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:Разработчик.SubjectClaims.employee_id— цифровой код пользователя из кадровой системы компании. Значение поля соответствует значению, отображаемому в поле Табельный номер в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:08012.
Примечание
Любое из этих значений атрибутов вы можете добавлять более одного раза под разными именами.
-
-
Чтобы добавить атрибут групп пользователей, выполните команду:
yc organization-manager idp application saml attribute create \ --application-id <идентификатор_приложения> \ --name <имя_атрибута_групп> \ --value <значение_атрибута_групп>Где:
-
--name— имя атрибута групп пользователей. Имя атрибута должно быть уникальным для вашего приложения. -
--value— значение атрибута групп. Возможные значения:-
Все группы— в SAML-ответе в значение данного поля будут включены все группы, в которые входит пользователь.Максимальное количество передаваемых в этом поле групп — 1 000. Если количество групп, в которые входит пользователь, превышает это число, на сторону поставщика услуг будет передана только первая тысяча групп.
-
Только назначенные группы— в SAML-ответе в значение данного поля из всех групп, в которые входит пользователь, будут включены только те группы, которые явно заданы на вкладке Пользователи и группы SAML-приложения.
-
-
-
Чтобы изменить атрибут, выполните команду:
yc organization-manager idp application saml attribute update \ --id <идентификатор_атрибута> \ --name <новое_имя_атрибута> \ --value <новое_значение_атрибута> -
Чтобы удалить атрибут, выполните команду:
yc organization-manager idp application saml attribute delete <идентификатор_атрибута>
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.
-
Опишите в конфигурационном файле атрибуты SAML-приложения:
resource "yandex_organizationmanager_idp_application_saml_application" "saml_app" { organization_id = "<идентификатор_организации>" name = "<имя_приложения>" attribute_mapping = { name_id = { format = "EMAIL" } attributes = [{ name = "email" value = "SubjectClaims.email" }, { name = "firstName" value = "SubjectClaims.given_name" }, { name = "lastName" value = "SubjectClaims.family_name" }] } group_claims_settings = { group_attribute_name = "<имя_атрибута_групп>" group_distribution_type = "ALL_GROUPS" } }Где:
-
organization_id— идентификатор организации, в которой нужно создать SAML-приложение. Обязательный параметр. -
name— имя SAML-приложения. Обязательный параметр. -
attributes— список атрибутов, которые будут передаваться из Yandex Identity Hub поставщику услуг. Каждый атрибут содержит:-
name— имя атрибута, уникальное для вашего приложения. -
value— значение атрибута. Возможные значения:SubjectClaims.sub— идентификатор пользователя. Значение поля соответствует значению, отображаемому в поле Идентификатор в списке пользователей организации в интерфейсе Yandex Identity Hub в Cloud Center. Например:aje0fapf84ofj57q1r0b.SubjectClaims.preferred_username— уникальный логин пользователя. Значение поля соответствует значению, отображаемому в поле Имя пользователя в списке пользователей организации в интерфейсе Yandex Identity Hub в Cloud Center. Например:ivanov@example-federation.ru.SubjectClaims.name— полное имя пользователя. Значение поля соответствует значению, отображаемому в поле Пользователь в списке пользователей организации в интерфейсе Yandex Identity Hub в Cloud Center. Например:Иванов Иван.SubjectClaims.given_name— имя. Значение поля соответствует значению, отображаемому в поле Имя в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:Иван.SubjectClaims.family_name— фамилия. Значение поля соответствует значению, отображаемому в поле Фамилия в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:Иванов.SubjectClaims.email— адрес электронной почты. Значение поля соответствует значению, отображаемому в поле Электронная почта на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:ivanov@example-company.ru.SubjectClaims.phone_number— номер телефона. Значение поля соответствует значению, отображаемому в поле Номер телефона в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:+74951234567.SubjectClaims.company_name— название компании. Значение поля соответствует значению, отображаемому в поле Название компании в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:ООО «Праздник».SubjectClaims.department— название подразделения. Значение поля соответствует значению, отображаемому в поле Подразделение в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:Отдел АСУ.SubjectClaims.job_title— название должности. Значение поля соответствует значению, отображаемому в поле Должность в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:Разработчик.SubjectClaims.employee_id— цифровой код пользователя из кадровой системы компании. Значение поля соответствует значению, отображаемому в поле Табельный номер в разделе Персональная информация на странице с информацией о пользователе в интерфейсе Yandex Identity Hub в Cloud Center. Например:08012.
Примечание
Любое из этих значений атрибутов вы можете добавлять более одного раза под разными именами.
-
-
group_claims_settings— параметры атрибутов групп пользователей:group_attribute_name— имя атрибута групп пользователей. Имя атрибута должно быть уникальным для вашего приложения.group_distribution_type— значение атрибута групп. Возможные значения:-
ASSIGNED_GROUPS— в SAML-ответе в значение данного поля из всех групп, в которые входит пользователь, будут включены только те группы, которые явно заданы на вкладке Пользователи и группы SAML-приложения. -
ALL_GROUPS— в SAML-ответе в значение данного поля будут включены все группы, в которые входит пользователь.Максимальное количество передаваемых в этом поле групп — 1 000. Если количество групп, в которые входит пользователь, превышает это число, на сторону поставщика услуг будет передана только первая тысяча групп.
-
Подробнее о параметрах ресурса
yandex_organizationmanager_idp_application_saml_applicationчитайте в документации провайдера. -
-
Примените изменения:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Проверить изменения ресурсов и их настройки можно в интерфейсе Cloud Center
. -
Воспользуйтесь методом REST API Application.Update для ресурса Application или вызовом gRPC API ApplicationService/Update.
Убедитесь, что добавленные атрибуты также добавлены в настройки интеграции SAML-приложения на стороне поставщика услуг и корректно обрабатываются им.
Трансформации изменяют значение атрибута перед отправкой в SAML-ответе. Например, приводят текст к нижнему регистру, удаляют пробелы или извлекают часть строки. Трансформации применяются последовательно, сверху вниз.
Настройте пользователей и группы
Чтобы пользователи вашей организации могли аутентифицироваться во внешнем приложении с помощью SAML-приложения Yandex Identity Hub, необходимо явно добавить в SAML-приложение нужных пользователей и/или группы пользователей:
Примечание
Управлять пользователями и группами, добавленными в SAML-приложение, может пользователь, которому назначена роль organization-manager.samlApplications.userAdmin или выше.
-
Войдите в сервис Yandex Identity Hub
. -
На панели слева выберите
Приложения и выберите нужное приложение. -
Перейдите на вкладку Пользователи и группы.
-
Чтобы добавить в SAML-приложение пользователя или группу пользователей:
- Нажмите кнопку
Добавить пользователей. - В открывшемся окне выберите нужного пользователя или группу пользователей.
- Нажмите кнопку Добавить.
- Нажмите кнопку
-
Чтобы удалить пользователя или группу пользователей из SAML-приложения:
- В списке пользователей и групп в строке с нужным пользователем или группой нажмите значок
и выберите Удалить. - Подтвердите удаление.
- В списке пользователей и групп в строке с нужным пользователем или группой нажмите значок
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Получите идентификатор пользователя или группы пользователей.
-
Чтобы добавить в приложение пользователя или группу пользователей:
-
Посмотрите описание команды CLI для добавления пользователей в приложение:
yc organization-manager idp application saml application add-assignments --help -
Выполните команду:
yc organization-manager idp application saml application add-assignments \ --id <идентификатор_приложения> \ --subject-id <идентификатор_пользователя_или_группы>Где:
--id— идентификатор приложения.--subject-id— идентификатор нужного пользователя или группы пользователей.
Результат:
assignment_deltas: - action: ADD assignment: subject_id: ajetvnq2mil8********
-
-
Чтобы удалить пользователя или группу пользователей из приложения:
-
Посмотрите описание команды CLI для удаления пользователей из приложения:
yc organization-manager idp application saml application remove-assignments --help -
Выполните команду:
yc organization-manager idp application saml application remove-assignments \ --id <идентификатор_приложения> \ --subject-id <идентификатор_пользователя_или_группы>Где:
--id— идентификатор SAML-приложения.--subject-id— идентификатор нужного пользователя или группы пользователей.
Результат:
assignment_deltas: - action: REMOVE assignment: subject_id: ajetvnq2mil8********
-
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.
-
Опишите в конфигурационном файле параметры SAML-приложения с пользователями и группами:
resource "yandex_organizationmanager_idp_application_saml_application_assignment" "example_assignment" { application_id = "<идентификатор_SAML-приложения>" subject_id = "<идентификатор_пользователя_или_группы>" }Где:
application_id— идентификатор SAML-приложения.subject_id— идентификатор пользователя или группы пользователей, которые будут иметь доступ к SAML-приложению. Чтобы получить идентификатор пользователя, воспользуйтесь инструкцией. Чтобы получить идентификатор группы пользователей, воспользуйтесь инструкцией.
Подробнее о параметрах ресурса
yandex_organizationmanager_idp_application_saml_application_assignmentчитайте в документации провайдера. -
Примените изменения:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Проверить изменения ресурсов и их настройки можно в интерфейсе Cloud Center
. -
Воспользуйтесь методом REST API Application.UpdateAssignments для ресурса Application или вызовом gRPC API ApplicationService/UpdateAssignments.
Совет
Если вы хотите более тонко настроить аутентификацию пользователей в приложениях, в том числе разрешить аутентификацию только с определенных IP-адресов, используйте политики аутентификации.
Политики аутентификации — это инструмент Yandex Identity Hub, позволяющий гибко настраивать доступ к приложениям, запрещая или разрешая аутентификацию определенным пользователям в определенных приложениях и/или с определенных IP-адресов. Подробнее читайте в разделе Политики аутентификации в Yandex Identity Hub.
Убедитесь в корректной работе приложения
Чтобы убедиться в корректной работе SAML-приложения и интеграции с поставщиком услуг, выполните аутентификацию во внешнем приложении от имени одного из добавленных в приложение пользователей.