: présentation
Doc OpenLDAP : https://www.openldap.org/doc/admin24/sasl.html#SASL%20Proxy%20Authorization
Il faut commencer par définir la politique du serveur en éditant l'objet cn=config et en ajoutant/modifiant l'attribut olcAuthzPolicy avec une des valeurs suivantes :
to
: possibilité d'autoriser l'authentification proxy via l'attribut authzTo
sur “les utilisateurs de service” (ceux qui ont le droit de se connecté en tant que quelqu'un d'autre).from
: possibilité d'autoriser l'authentification proxy via l'attribut authzFrom
sur les utilisateurs autorisant la délégation (ceux en tant que qui on se connectera).any
: possibilité d'autoriser l'authentification proxy via l'un ou l'autre des attributs précédentsall
: possibilité d'autoriser l'authentification proxy si les deux attributs précédents autorisent la déléguation
Pour plus d'informations, lancer la commande man slapd-config
et chercher olcAuthzPolicy
.
Il faudra ensuite protéger via une ACL les attributs authzTo
et authzFrom
, par exemple avec les ACLs suivantes (en première position) :
{0}to attrs=authzTo by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by self read {1}to attrs=authzFrom by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * read
authzTo
et/ou authzFrom
, d'où une règle autorisant la lecture pour tout le monde sur l'attribut authzFrom
et l'utilisateur lui-même sur l'attribut authzTo
.
Exemple de configuration pour un utilisateur de service pouvant se connecter en tant que n'importe quel utilisateur en se basant sur un modèle de DN :
authzTo
de l'utilisateur de service : {0}dn.regex:^uid=[^,]*,ou=people,o=ls$
: plein d'autres possibilités à documenter.