Как связать учетную запись пользователя в базе данных FreeIPA с учетной записью пользователя в базе данных веб-приложения - PullRequest
0 голосов
/ 15 октября 2018

Моя компания решила использовать FreeIPA, чтобы предоставить возможность Single Sign On нашим сотрудникам.Я совсем не знаком с Kerberos / LDAP и тому подобным, потому что я никогда раньше не использовал эти технологии.

У нас 70 пользователей - у них машины с ОС Windows, и SSO следует использовать для нескольких Python (Django) веб-приложений, веб-сайтов WordPress и, возможно, для Roundcube веб-почты и OpenVPN доступа.У них вообще нет доступа к веб-серверам, поэтому учетные записи SSH не важны для этой истории.

Наше веб-приложение python имеет таблицу базы данных с данными пользователей, которая связана с некоторыми другими таблицами, иДля нас очень важно, чтобы каждый пользователь был добавлен в эти таблицы (через интерфейс нашего веб-приложения), потому что иначе наше приложение не будет работать должным образом.Имея это в виду, я хотел бы знать, есть ли способ как-то ссылаться на пользователя из базы данных FreeIPA's в наших базах данных веб-приложений и wordpress, пример ниже: enter image description here

Не у каждого пользователя есть доступ к каждому веб-приложению, и не у каждого пользователя одинаковые привилегии в этих приложениях.

Мы уже определили пользовательские привилегии в каждом веб-приложении в отдельности, и все работает идеально, поэтому основная цель - простосделать доступным SSO для наших пользователей.Я не хочу беспокоиться о группах пользователей и привилегиях в системе FreeIPA, смогу ли я избежать этого?Когда пользователь получает билет Kerberos, я хочу, чтобы эти веб-приложения распознавали его / ее учетную запись, на которую ссылается соответствующая учетная запись пользователя в базе данных FreeIPA, и поэтому имеют определенные привилегии в этих приложениях.

В этом сценарииОчевидно, что мне придется добавлять каждого нового пользователя два раза - в базу данных FreeIPA и в базу данных веб-приложения, но это не проблема, я просто хочу как-то подключить / ссылаться на эти учетные записи пользователей.

РЕДАКТИРОВАТЬ в ответ Михаэля Стрёдера :

Как я вижу, мне нужно было бы добавить каждого существующего пользователя вручную в FreeIPA с помощью команды --uid, потому что FreeIPA автоматически предоставляет эти атрибуты каждому пользователю.Я согласен, я бы не использовал имена пользователей для UID, а только целые числа.Итак, я представлял себе, как это сделать - мне нужно было бы связать номер uid каждого пользователя со столбцом ID таблицы пользователя БД приложения.Допустим, если у Джона есть UID # 7, он также должен иметь ID # 7 в таблице WordPress wp_users, и это выглядит хорошо для меня.Я думаю, что я мог бы легко справиться с этим в моем собственном приложении Python, но я не уверен, как управлять этим в WordPress, есть ли какой-нибудь плагин, который можно использовать для таких вещей?Я нашел AuthLDAP, но я не уверен, что это правильный способ сделать это?Заранее спасибо

1 Ответ

0 голосов
/ 15 октября 2018

Обычный способ - это иметь уникальные и постоянные имена пользователей (String), обычно хранящиеся в атрибуте uid во FreeIPA (или других серверах LDAP), и использовать это в качестве ключа в вашемтаблица базы данных приложения.

Обратите внимание, что uid содержит не , содержит POSIX-UID (целое число), который фактически хранится в атрибуте uidNumber .

Я бы настоятельно рекомендовал , а не для получения имен пользователей, хранящихся в uid , из личных имен, поскольку они часто меняются.Также вы никогда не должны повторно использовать имена пользователей.

FreeIPA также имеет атрибут nsUniqueId , который содержит UUID, сгенерированный во время создания записи.Он не будет изменен в течение срока действия записи.Если вы хотите использовать это, вы должны позаботиться о том, чтобы записи не были удалены / заново созданы внешними системами управления удостоверениями.(Другие серверы LDAP используют стандартный атрибут entryUUID ).

...