J'ai travaillé l'authentification LDAP avec la configuration suivante
AuthName "whatever"
AuthType Basic
AuthBasicProvider ldap
AuthLDAPUrl "ldap://server/OU=SBSUsers,OU=Users,OU=MyBusiness,DC=company,DC=local?sAMAccountName?sub?(objectClass=*)"
Require ldap-group CN=MySpecificGroup,OU=Security Groups,OU=MyBusiness,DC=company,DC=local
Cela fonctionne, mais je dois mettre tous les utilisateurs dans lesquels je veux m'authentifier MySpecificGroup
. Mais sur le serveur LDAP, j'ai configuré qui MySpecificGroup
contient également le groupe MyOtherGroup
avec une autre liste d'utilisateurs.
Mais ces utilisateurs MyOtherGroup
ne sont pas authentifiés, je dois tous les ajouter manuellement et je MySpecificGroup
ne peux pas utiliser le regroupement imbriqué. J'utilise Windows SBS 2003.
Existe-t-il un moyen de configurer Apache LDAP pour ce faire? Ou y a-t-il un problème avec une possible récursion infinie et donc non autorisé?
la source
AuthnProviderAlias
pour l'instant. Si personne ne propose de solution pour Apache 2.2, la prime vous appartient :)En outre
AuthLDAPSubGroupDepth
, qui n'est disponible que dans apache 2.4, il est possible, lors de l'utilisation de Microsoft AD LDAP, de faire une autorisation à l'aide de groupes imbriqués à l'aide de la règle de correspondance LDAP_MATCHING_RULE_IN_CHAIN. Ceci est beaucoup plus rapide que la recherche de sous-groupes sur le client, car cela se fait sur le serveur DC avec moins de requêtes sur le réseau.La chaîne
1.2.840.113556.1.4.1941
est un OID appeléLDAP_MATCHING_RULE_IN_CHAIN
. Cet OID est attribué par Microsoft pour être utilisé avec son implémentation LDAP (partie d'Active Directory). Vous ne pouvez pas l'utiliser avec d'autres serveurs LDAP. Le format réductible humain est:iso(1).member_body(2).us(840).microsoft(113556).ad(1).as_schema(4).LDAP_MATCHING_RULE_IN_CHAIN(1941)
De la documentation Microsoft:
Voir également:
la source
LDAP_MATCHING_RULE_IN_CHAIN
pour récupérer l'appartenance à un groupe récursif et le passer en tant qu'en-tête à un serveur principal (en utilisant Apache comme proxy inverse) ??mod_authnz_ldap
ne fournit pas cela. Cependant, vous pouvez utiliser leLDAP_MATCHING_RULE_IN_CHAIN
filtre LDAP dans votre application. Voir: stackoverflow.com/a/34075052/290087Il semble que votre seule option dans Apache 2.2 consiste à répertorier tous les groupes inclus par votre groupe autorisé principal.
Cela devrait être raisonnable si vos groupes imbriqués ne sont pas trop compliqués.
Traversée des domaines AD (à l'aide de deux serveurs LDAP)
Vous pouvez configurer OpenLDAP avec la superposition slapd_meta exécutée sur votre serveur Web pour proxy votre authentification.
/etc/ldap/slapd.conf devrait ressembler à:
Ensuite, votre strophe mod_authnz_ldap ressemblerait à quelque chose comme:
Cela nécessitera un certain massage pour le faire fonctionner, mais je pense que c'est l'idée générale.
la source
Bien que la solution fournie par @Mircea_Vutcovici ait fonctionné pour moi, ma seule critique est que les gens peuvent devenir délicats lorsqu'ils voient des opérateurs au niveau du bit utilisés.
Par exemple, je remettrai une installation Apache Bloodhound, qui utilise Apache HTTPd comme frontal avec l'authentification du groupe AD, à un groupe de collègues développeurs. Ils vont avoir des problèmes à gérer avec les opérateurs au niveau du bit. Les administrateurs ne seront pas aussi délicats bien sûr ... j'espère.
Cela étant dit, j'ai une solution qui n'utilise pas l'opérateur au niveau du bit et qui n'utilise pas plusieurs définitions de groupe LDAP.
La configuration suivante fonctionne pour moi:
La partie critique était la configuration suivante:
AuthLDAPMaxSubGroupDepth ne fonctionne pas par lui-même, ni lorsqu'il est couplé avec AuthLDAPSubgroupAttribute. Ce n'est que lorsque j'ai utilisé AuthLDAPSubGroupClass que l'authentification contre les sous-groupes a commencé à fonctionner ... au moins pour moi et ma situation.
la source