Groupes d'utilisateurs Apache mod_auth_kerb et LDAP

12

J'ai envisagé de déployer mod_auth_kerbsur nos serveurs Web internes pour activer l'authentification unique. Le seul problème évident que je peux voir est que c'est une approche tout ou rien, que tous les utilisateurs de votre domaine puissent accéder à un site ou non.

Est-il possible de combiner mod_auth_kerbavec quelque chose comme mod_authnz_ldappour vérifier l'appartenance à un groupe particulier dans LDAP? Je suppose que l' KrbAuthoritativeoption aurait quelque chose à voir avec ça?

De plus, si je comprends bien, le module définit le nom d'utilisateur username@REALMaprès l'authentification, mais bien sûr, dans le répertoire, les utilisateurs sont stockés en tant que nom d'utilisateur uniquement. De plus, certains sites internes que nous gérons tels que trac ont déjà un profil utilisateur lié à chaque nom d'utilisateur. Existe-t-il un moyen de résoudre ce problème, peut-être en supprimant le bit de domaine après l'authentification d'une manière ou d'une autre?

Kamil Kisiel
la source
Juste une question concernant l'implémentation, utilisez-vous un ADS Windows pour le domaine Kerberos ou une autre implémentation?
Jeremy Bouse
OpenDirectory d'Apple fourni avec MIT Kerberos v5
Kamil Kisiel
D'accord ... Je n'ai jamais travaillé avec OpenDirectory d'Apple auparavant. J'ai pu obtenir Apache pour authentifier en utilisant NTLM contre Windows ADS en utilisant leurs informations d'identification de poste de travail, puis en me restreignant à des groupes spécifiques.
Jeremy Bouse
Sans supprimer le domaine du nom d'utilisateur, vous pouvez utiliser un autre attribut dans la requête LDAP pour rechercher une entité utilisateur, par exemple l'attribut "userPrincipalName" dans Ms ActiveDirectory.
Yves Martin

Réponses:

13

Il est maintenant possible dans mod_auth_kerb 5.4 de supprimer le domaine de REMOTE_USER avec la directive de configuration suivante:

KrbLocalUserMapping On

styro
la source
Wow, on dirait que cela a été publié en 2008, mais aucune mention de celui-ci (la version ou le paramètre) sur leur site Web.
Kamil Kisiel
7

C'est tout l'intérêt de la séparation authn / authz dans 2.2 que vous pouvez authentifier avec un mécanisme et autoriser avec un autre. L'authentification vous fournit un paramètre REMOTE_USER, contre lequel vous pouvez ensuite utiliser authz_ldap. De plus, authn_ldap recherche ensuite un utilisateur (convertissant REMOTE_USER en DN s'il est trouvé, en utilisant des critères de recherche que vous devez spécifier - par exemple en recherchant CN). Ensuite, lorsqu'un DN a été trouvé, vous pouvez spécifier des exigences sur l'objet LDAP. Par exemple, si tous les utilisateurs accédant à une ressource doivent se trouver dans la même unité d'organisation, vous spécifiez

require ldap-dn ou = Managers, o = L'entreprise

Martin c. Löwis
la source
Est-il possible de modifier la variable REMOTE_USER avant qu'elle ne soit passée à l'étape d'autorisation? Par exemple, pour supprimer la partie REALM du nom d'utilisateur Kerberos pour la recherche dans une base de données LDAP?
Kamil Kisiel
Pas au moyen de la configuration. Cependant, il est relativement facile de le faire dans le code source du module Apache. Recherchez les affectations à demander-> utilisateur et ajustez-les; puis reconstruisez le module avec apxs2 -c. OTOH, il pourrait être plus facile de mettre les noms Kerberos dans LDAP, sous un attribut distinct, et de demander au module ldap de rechercher l'utilisateur par cet attribut.
Martin c.Löwis
2

Debian stable est désormais livré avec la version 5.4 de mod_auth_kerb .

Si vous êtes bloqué avec une ancienne version, cette page explique comment mod_map_user peut être utilisé en combinaison avec mod_auth_kerb et mod_authnz_ldap.

jcharaoui
la source