В продолжение темы SSO, Okta и SAML.
Для Jenkins всё сделано (см. Jenkins: SAML, Okta, группы пользователей и Role-Based Security) — теперь пришёл черёд Github.
Идея та же: в Okta держим список пользователей, при логине в Github (наш Service provider, SP) — он должен запросить авторизацию у нашего Identity Provider, IDP — Okta, используя SAML.
Используем приложение Okta Github Enterprise Cloud — Organization.
Документация:
- How to Configure SAML 2.0 for GitHub Enterprise Cloud — Organization
- About authentication with SAML single sign-on
Чего пока не нашёл, как реализовать — так это передать группы из Okta в Github как teams пользователя.
Содержание
Trial Github Enterprise Cloud — Organization
Для того, что бы использовать SAML в Github — необходим тип аккаунта Github Enterprise Cloud — Organization.
Для тестов — создадим новую огранизацию и возьмём Enterprise на trial-период.
Переходим в огранизацию, Settings > Security:
Сейчас тут нет ни SAML, ни SSH-сертификатов.
Переходим на страницу GitHub Enterprise Cloud:
Кликаем Trial — создаём новую организацию:
Можно сразу добавить пользователей:
Теперь мой пользователь имеется доступ к трём огранизациям — рабочий проект, и два личных, в том числе только что созданный тестовый с Enterprise:
Переходим в Settings — Security организации, и тут уже доступен SAML:
Okta SAML — настройка Github Enterprise Cloud — Organization
Переходим в Okta — Applications — Add application, находим Github Enterprise Cloud — Organization:
Задаём имя организации в том же виде, в котором она задана в Github:
Переходим во вкладку Sign On:
Кликаем на View Setup Instructions — будем переадресованы на стрицу с уже готовыми настройками для нашего SAML:
Настройка SAML в Github Organization
Переходим в Github, кликаем Enable SAML authentication, заполняем поля данными со страницы, которую открыли выше в View Setup Instructions, тут просто скпировать значения трёх полей:
Возвращаемся в приложение Github в Okta, во вкладке Assignments подключаем приложение тестовому пользователю:
В Github кликаем Test SAML configuration:
Логинимся с тестовым пользователем из Okta — проверка пройдена:
Внизу не забываем нажать Save.
Проверка SAML
Находим SSO URL:
Открываем его в инкогнито:
Кликаем Continue — и нас переадресует на страницу аутентификации в Okta:
Тут можно либо создать нового пользователя — либо залогиниться с уже существующим аккаунтом Github.
В любом случае Okta использует Just In Time (JIT) Provisioning для добавления пользователя в Github организацию:
Логинимся:
И получаем доступ к огранизации:
Готово.
Осталось придумать с группами.