В продолжение темы 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 организацию:
Логинимся:
И получаем доступ к огранизации:
Готово.
Осталось придумать с группами.