4.6. Аутентификация через SAML¶
Технология SAML SSO позволяет пользователям получать доступ к нескольким приложениям, используя один набор учетных данных. Для этого поставщик SAML-идентификации проверяет подлинность пользователей и передает учетные данные для авторизации в Boro-приложение. Чтобы подключить вход через SAML, необходимо произвести обмен метаданных между поставщиком и Boro-приложением. Обмен метаданными необходим, чтобы поставщик мог однозначно идентифицировать приложение и безопасно передавать данные для авторизации пользователей. В нашей инструкции для примера в качестве поставщика рассматривается Amazon Web Services (AWS).
Получение метаданных из AWS¶
Перейдите на сайт AWS и нажмите кнопку Вход в Консоль в правом верхнем углу.
Войдите в аккаунт AWS.
Откройте IAM Identity Center и активируйте его в вашем AWS-аккаунте.
На панели слева нажмите на вкладку Applications.
Нажмите кнопку Add application в правом верхнем углу, чтобы добавить приложение, для которого нужно настроить SAML-аутентификацию.
Далее в разделе Setup preference выберите опцию I have an application I want to set up.
Ниже появится раздел Application type. Выберите в нем SAML 2.0 и нажмите Next в самом низу. Откроется страница Configure application.
На странице Configure application задайте имя приложения в поле Display name.
Ниже скачайте файл IAM Identity Center SAML metadata file, нажав на ссылку с надписью Download. Файл содержит метаданные поставщика идентификации. Содержимое файла необходимо скопировать и добавить в Boro-приложение.
Примечание
В поле Session duration оставьте значение по умолчанию. Данная настройка относится к порталу AWS. Чтобы задать продолжительность сессии в системе Boro, воспользуйтесь настройкой Сессия истекает.
Далее необходимо настроить SAML в Boro, прежде чем выполнять оставшиеся шаги на стороне AWS.
Настройка SAML-аутентификации в Boro¶
Войдите в аккаунт Boro, используя логин и пароль администратора или владельца выбранного проекта. Аутентификация настраивается для каждого проекта индивидуально.
Перейдите в Настройки проекта → Общие настройки. Пролистайте страницу до раздела SAML и отметьте чекбокс Использовать SAML SSO.
Выберите метод входа:
Индивидуальный аккаунт — пользователи входят на сервер через собственные аккаунты. Если пользователь с таким адресом электронной почты отсутствует в базе, он будет автоматически зарегистрирован. Регистрация требует подтверждения через ссылку в письме.
Прокси-аккаунт — пользователи входят через аккаунт единственного пользователя, который был зарегистрирован на сервере обычным способом (без SAML SSO). Аккаунт должен быть заранее добавлен с выбранной ролью в проект. Владельцу такого аккаунта необходимо одобрить использование аккаунта в качестве единой точки входа.
Ниже описана настройка индивидуального аккаунта и прокси-аккаунта.
Индивидуальный аккаунт
Укажите роль пользователя, которая будет присваиваться ему в проекте при регистрации через SAML SSO. Доступны следующие роли: Администратор, Инженер, Оператор, Наблюдатель. Подробнее о ролях можно прочитать в разделе Совместный доступ к проекту. Если пользователь с таким адресом электронной почты уже добавлен в проект, его роль сохраняется.
При необходимости задайте время продолжительности сессии в поле Сессия истекает. Чтобы предоставить доступ только аккаунтам с определенными доменными именами верхнего уровня, перечислите эти имена через запятую в поле Доверенные домены.
В поле Метаданные поставщика идентификации скопируйте данные из файла, скачанного с сайта AWS. Нажмите кнопку Применить.
Прокси-аккаунт
Выберите адрес электронной почты прокси-аккаунта из выпадающего списка. В списке присутствуют адреса пользователей, которым ранее был предоставлен Совместный доступ к проекту.
Скопируйте данные из файла, скачанного с сайта AWS, и вставьте их в поле Метаданные поставщика идентификации. Нажмите кнопку Применить.
Пользователь с выбранным адресом получит письмо с запросом стать прокси-пользователем в проекте. Он должен открыть письмо и перейти по ссылке в свой профиль.
На странице профиля пользователь должен принять предложение стать прокси-пользователем. Впоследствии решение можно отозвать. Когда пользователь примет предложение, рядом с его адресом электронной почты в разделе SAML появится статус Принят.
Далее пролистайте страницу вниз и скачайте файл метаданных Boro-приложения, нажав Скачать. Загрузите файл в AWS, как описано ниже, чтобы завершить настройку аутентификации через SAML.
Загрузка метаданных Boro-приложения в AWS¶
Чтобы загрузить метаданные Boro-приложения, вернитесь на страницу Configure application, где вы скачивали метаданные поставщика идентификации AWS. Перейдите в раздел Application metadata в конце страницы и выберите опцию Upload application SAML metadata file. Нажмите кнопку Choose file и выберите файл с метаданными Boro-приложения. Нажмите кнопку Submit.
На странице вашего приложения нажмите кнопку Actions и выберите пункт Edit attribute mappings в выпадающем списке, чтобы задать атрибуты для авторизации.
Задайте значения атрибутов. Впишите
${user:subject}
в поле рядом с атрибутом Subject и в выпадающем списке справа от поля выберите свойство transient.Добавьте новый атрибут, нажав кнопку Add new attribute mapping. Дайте атрибуту название e-mail, рядом впишите значение
${user:email}
и выберите свойство basic. Нажмите кнопку Save changes.Назначьте Boro-приложению пользователей и(или) группы, нажав кнопку Assign users and groups. Отметьте чекбокс напротив имен пользователей, которых хотите добавить. Или перейдите на вкладку Groups над списком пользователей и отметьте соответствующие группы. Нажмите кнопку Assign users. Если пользователи или группы еще не созданы, создайте их во вкладках Users и Groups на панели слева.
Откройте страницу AWS access portal, которая содержит все приложения с SAML-аутентификацией. Для этого кликните по вкладке Dashboard на панели слева, a затем по ссылке AWS access portal URL в разделе Settings summary справа.
Примечание
При первом входе в AWS access portal необходимо подключить двухфакторную аутентификацию.
Перейдите в приложение Boro.
Если выбран метод входа Прокси-аккаунт, авторизация пользователя в проекте Boro происходит под именем прокси-пользователя.
Если выбран метод Индивидуальный аккаунт, при первой попытке аутентификации Boro отправит письмо с подтверждением регистрации на адрес электронной почты, указанный для пользователя в AWS. Откройте письмо, перейдите по ссылке из письма для подтверждения регистрации в системе Boro, затем вновь перейдите в Boro-приложение из AWS access portal.