Apache mod_auth_kerb та групи користувачів LDAP


12

Я розглядав можливість розміщення mod_auth_kerbна наших внутрішніх веб-серверах для включення SSO. Єдиною очевидною проблемою, яку я можу бачити, є те, що це підхід, який повністю або ніщо, або всі користувачі вашого домену можуть отримати доступ до сайту чи ні.

Чи можливо поєднувати mod_auth_kerbщось із на зразок mod_authnz_ldapперевірки на приналежність до певної групи в LDAP? Я здогадуюсь, KrbAuthoritativeваріант матиме щось таке?

Крім того, наскільки я розумію, модуль встановлює ім'я користувача username@REALMпісля автентифікації, але, звичайно, у каталозі користувачі зберігаються лише як ім'я користувача. Крім того, деякі внутрішні сайти, які ми запускаємо, такі як trac, вже мають профіль користувача, пов’язаний із кожним іменем користувача. Чи є спосіб вирішити це, можливо, знявши біт сфери після аутентифікації?


Лише питання щодо впровадження, чи використовуєте ви ADS Windows для царини kerberos чи якусь іншу реалізацію?
Джеремі Бууз

Apple OpenDirectory, який поставляється з MIT Kerberos v5
Kamil Kisiel

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

Не знімаючи царину з імені користувача, ви можете використовувати альтернативний атрибут у запиті LDAP для пошуку сутності користувача, наприклад, атрибута "userPrincipalName" у папці Ms ActiveDirectory.
Ів Мартін

Відповіді:


13

Тепер у mod_auth_kerb 5.4 можна знімати область з REMOTE_USER із такою директивою конфігурації:

Увімкнено KrbLocalUserMapping


Нічого собі, схоже, це було випущено у 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?
Kamil Kisiel

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

2

Debian stable тепер постачається з версією 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.