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.