Apache mod_auth_kerb и группы пользователей LDAP


12

Я рассматривал возможность развертывания mod_auth_kerbна наших внутренних веб-серверах для включения единого входа. Одна очевидная проблема, которую я вижу, состоит в том, что это подход «все или ничего», либо все пользователи вашего домена могут получить доступ к сайту, либо нет.

Можно ли объединить mod_auth_kerbчто-то вроде mod_authnz_ldapпроверки на членство в группе в определенной группе в LDAP? Я предполагаю, что KrbAuthoritativeвариант будет иметь какое-то отношение к этому?

Также, насколько я понимаю, модуль устанавливает имя пользователя username@REALMпосле аутентификации, но, конечно, в каталоге пользователи хранятся только как имя пользователя. Кроме того, некоторые внутренние сайты, которые мы запускаем, такие как trac, уже имеют профиль пользователя, связанный с каждым именем пользователя. Есть ли способ решить эту проблему, возможно, удалив бит области после аутентификации?


Просто вопрос относительно реализации, используете ли вы Windows ADS для области Kerberos или какую-то другую реализацию?
Джереми Бауз

OpenDirectory от Apple, который поставляется с MIT Kerberos v5
Камил Кисиэль

Хорошо ... Раньше я не работал с OpenDirectory от Apple. Мне удалось заставить Apache проходить аутентификацию с использованием NTLM в Windows ADS, используя их учетные данные на рабочей станции, а затем ограничиваясь конкретными группами.
Джереми Бауз

Не удаляя область из имени пользователя, вы можете использовать альтернативный атрибут в запросе LDAP для поиска сущности пользователя, например атрибут «userPrincipalName» в Ms ActiveDirectory.
Ив Мартин,

Ответы:


13

Теперь в mod_auth_kerb 5.4 теперь возможно удалить область из REMOTE_USER с помощью следующей директивы config:

KrbLocalUserMapping On


Вау, похоже, что это было выпущено в 2008 году, но нет упоминания об этом (версия или параметр) на их веб-сайте.
Камил Кисиэль

7

Суть разделения authn / authz в 2.2 состоит в том, что вы можете аутентифицироваться с помощью одного механизма и авторизоваться с помощью другого. Аутентификация предоставляет вам настройку REMOTE_USER, с которой вы затем можете использовать authz_ldap. Кроме того, authn_ldap выполняет поиск пользователя (преобразует REMOTE_USER в DN, если он найден, используя критерии поиска, которые вы должны указать - например, поиск CN). Затем, когда DN будет найдено, вы можете указать требования к объекту LDAP. Например, если все пользователи, имеющие доступ к ресурсу, должны быть в одном подразделении, вы указываете

Требуется ldap-dn ou = Менеджеры, o = Компания


Можно ли изменить переменную REMOTE_USER, прежде чем она будет передана на этап авторизации? Например, чтобы удалить часть REALM имени пользователя Kerberos для поиска в базе данных LDAP?
Камил Кисиэль

Не с помощью конфигурации. Однако это относительно легко сделать в исходном коде модуля Apache. Ищите назначения для запроса-> пользователя и настраивайте их; затем пересоберите модуль с помощью apxs2 -c. OTOH, может быть проще поместить имена Kerberos в LDAP, под отдельным атрибутом, и заставить модуль ldap искать пользователя по этому атрибуту.
Мартин против Лёвиса

2

Стабильная версия Debian поставляется с версией 5.4 mod_auth_kerb .

Если вы застряли с более старой версией, эта страница объясняет, как mod_map_user можно использовать в сочетании с mod_auth_kerb и mod_authnz_ldap.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.