Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018)

Материал из 0x1.tv

(перенаправлено с «20180929E»)
Докладчик
Леонид Kaнтер.jpg
Леонид Kaнтер

Доклад посвящён опыту построения и внедрения корпоративной системы управления идентификационной информацией на базе свободных продуктов FreeIPA и Ipsilon с поддержкой единого входа в систему (SSO) по протоколу SAML для сторонних поставщиков услуг.

Видео

on youtube

Посмотрели доклад? Понравился? Напишите комментарий! Не согласны? Тем более напишите.

Презентация

Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018).pdf

Thesis

Постановка задачи

В процессе развития любой компании неизбежно возникает момент, когда администрирование пользователей становится невозможным без единой корпоративной системы управления идентификационной информацией сотрудников, которая с одной стороны хранила бы организационную информацию о пользователях, такую как имя, контакты, отдел, должность; с другой стороны, позволяла бы управлять политиками доступа к ресурсам. К этому моменту мы уже пользовались пакетом G Suite, в котором были заведены все пользователи, кроме этого, необходимо было предоставлять доступ к OpenNebula, сборочной системе, веб-серверам, серверам БД и другим корпоративным ресурсам, поскольку пользователи на всех этих ресурсах добавлялись индивидуально. В случае увольнения сотрудника необходимость проверки наличия учётных записей пользователя на всех этих ресурсах вызывала большую нагрузку на IT-отдел.

Выбор FreeIPA

Поскольку у нас уже была готовая база сотрудников в G Suite, звучали предложения использовать именно его в качестве первичного источника идентификационной информации. И действительно, вход на некоторые ресурсы уже был организован с использованием Google OAuth2. Но организовать таким образом доступ на системы Linux по ssh в консольном окружении не представлялось возможным. Поэтому необходима была такая система, которая позволяла бы управлять политикой консольного доступа по ssh и предоставлять идентификационную информацию для G Suite одновременно. Основными аргументами в пользу FreeIPA стали:

  • Появление в CentOS 7.2 поставщика идентификации (IdP) в виде пакета Ipsilon 1.0.0, работающего с FreeIPA;
  • Появление на стороне пакета приложений от Google поддержки единого входа в систему (SSO) по протоколу SAML с использованием сторонних IdP.

Возможности FreeIPA

FreeIPA (от Free Identity, Policy, Audit) — открытый проект для создания централизованной системы масштаба предприятия по управлению идентификацией пользователей, задания политик доступа и аудита сетей. Поддерживается компанией Red Hat. Используемые цели и механизмы схожи с Microsoft Active Directory. Включает в себя следующие компоненты: 389 Directory Server в качестве сервера LDAP; MIT Kerberos 5.0 для аутентификации и единого входа; DogTag для управления сертификатами; NTP; BIND и DHCP для управления DNS; WEB-интерфейс управления. Начиная с версии 3.0.0, FreeIPA также использует Samba для интеграции с Active Directory от Microsoft путём доверительных отношений.

Ipsilon

Ipsilon представляет собой поставщик идентификационной информации (Identity Provider, IdP), поддерживающий протоколы SAML2, OpenID Connect, OAuth2, Persona, OpenID 2.0, а также набор инструментов, позволяющий настраивать поставщики услуг на базе веб-сервера Apache. Представляет собой приложение, работающее на mod_wsgi. Аутентификация пользователей выполняется на отдельно стоящем сервере FreeIPA.

Внедрение

После испытаний на тестовом домене G Suite были установлены основной сервер FreeIPA и две реплики для обеспечения отказоустойчивости. Подготовлены инструкции для пользователей по использованию Kerberos для консольного и графического входа. На IPA были заведены рабочие группы. Из основного домена G Suite был экспортирован список пользователей. Был написан скрипт, который для полученного списка пользователей выполнил следующие действия: добавление пользователя в IPA; генерация начального пароля; отправка начального пароля и инструкции по смене пароля пользователю. После получения подтверждения от всех пользователей о возможности входа на веб-страницу Ipsilon домен G Suite был перенастроен на использование SSO. После этого началась работа по интеграции существующих и новых сервисов. В настоящее время c FreeIPA интегрированы следующие внешние и внутренние сервисы:

  • G Suite — SAML-авторизация через Ipsilon
  • Корпоративные веб-сайты на Apache — ipsilon-client (mod_auth_mellon)
  • Консольный доступ на Linux-системы — ipa-client (Kerberos/sssd)
  • OpenNebula — LDAP
  • Jupyterhub — локальная pam-авторизация через sssd
  • OpenVPN — локальная pam-авторизация через sssd
  • Сборочная система — библиотека python-saml на уровне приложения

В обозримое время планируется интеграция таких внутренних сервисов, как Jenkins и Sentry.

Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018)!.jpg

Примечания и ссылки

  1. https://freeipa.org
  2. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/linux_domain_identity_authentication_and_policy_guide/index
  3. https://ipsilon-project.org/
  4. https://fedoraproject.org/wiki/Features/SSSD

Plays:1369   Comments:1