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

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

(Внедрение)
=== Внедрение ===

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

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

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

{{----}}
[[File:{{#setmainimage:Построение корпоративной системы управления идентификационной информацией на базе FreeIPA (Леонид Кантер, OSSDEVCONF-2018)!.jpg}}|center|640px]]
{{LinksSection}}
<!-- <blockquote>[©]</blockquote> -->

Версия 17:37, 3 октября 2018

Докладчик
Леонид Кантер

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

Видео

Презентация

Построение корпоративной системы управления идентификационной информацией на базе 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