no way to compare when less than two revisions
Ci-dessous, les différences entre deux révisions de la page.
| |
— | informatique:reseau:ldap:authzproxy [2021/08/26 18:45] (Version actuelle) – créée bn8 |
---|
| ====== Authz proxy ====== |
| |
| FIXME: présentation |
| |
| **Doc OpenLDAP :** https://www.openldap.org/doc/admin24/sasl.html#SASL%20Proxy%20Authorization |
| |
| ===== Activation ===== |
| |
| 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édents |
| - ''all'' : 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) : <code>{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</code> |
| |
| <note important>L'utilisateur se connectant en tant qu'un autre doit avoir la possibilité de lire les attributs ''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''.</note> |
| |
| ===== Configuration des autorisations ===== |
| |
| **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 :** |
| * ajouter la valeur suivante dans l'attribut ''authzTo'' de l'utilisateur de service : <code>{0}dn.regex:^uid=[^,]*,ou=people,o=ls$</code> |
| |
| FIXME : plein d'autres possibilités à documenter. |
| |