====== Gérer la branche DSA ======
La branche DSA ((**D**irectory **S**ystem **A**gent)) est utilisée pour créer des comptes systèmes sur l'annuaire. Ces comptes seront en général utilisé pour donner des droits particuliers sur certains attributs à certaines application. Par exemple, si vous connectez un serveur samba sur votre annuaire, il devra avoir des droits relativement élevé, sur beaucoup d'attribut (tous les attributs posix, ainsi que les mot de passe unix et samba). Plutôt que d'utiliser le compte admin de l'annuaire, on va créer un compte spécial pour samba.
===== Installation =====
Pour gérer cette branche DSA, il faut installer le plugin fusiondirectory-plugin-dsa
yum install fusiondirectory-plugin-dsa
===== Schéma =====
Il est nécessaire de charger le schéma dsa-fd-conf dans l'annuaire. Si vous utilisez le format slapd.conf:
[...]
include /etc/openldap/schema/fusiondirectory/dsa-fd-conf.schema
[...]
===== Sauver les préférences =====
Comme après l'installation de n'importe quel plugin, il faut aller dans les préférence de l'interface Fusion Directory puis sauvegarder (même sans faire de changement) pour que les nouvelles branches soient créées
===== Créez un compte DSA =====
Dans l'interface de Fusion Directory, un nouveau menu apparaît pour gérer la branche DSA:
{{:tuto:fusiondirectory:dsa_list.png|Liste des comptes DSA}}
{{:tuto:fusiondirectory:dsa_create.png|Création d'un nouveau compte}}
===== Utilisation dans les ACL =====
Vous pouvez maintenant utiliser ce nouveau compte dans vos ACL LDAP. Exemple pour OpenLDAP, avec le format slapd.conf:
[...]
# Access to passwords attributes
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
by dn=cn=samba,ou=DSA,dc=firewall-services,dc=com ssf=256 write
by anonymous peername.ip="127.0.0.1" auth
by anonymous peername.ip="[::1]" auth
by anonymous ssf=256 auth
by self peername.ip="127.0.0.1" write
by self peername.ip="[::1]" write
by self ssf=256 write
by * none
# Access to SSH public keys
access to attrs=sshPublicKey
by dn=cn=ssh,ou=DSA,dc=firewall-services,dc=com peername.ip="127.0.0.1" read
by dn=cn=ssh,ou=DSA,dc=firewall-services,dc=com peername.ip="[::1]" read
by dn=cn=ssh,ou=DSA,dc=firewall-services,dc=com ssf=256 read
by group.exact="cn=admins,ou=Groups,dc=firewall-services,dc=com" peername.ip="127.0.0.1" write
by group.exact="cn=admins,ou=Groups,dc=firewall-services,dc=com" peername.ip="[::1]" write
by group.exact="cn=admins,ou=Groups,dc=firewall-services,dc=com" ssf=256 write
by self peername.ip="127.0.0.1" write
by self peername.ip="[::1]" write
by self ssf=128 write
by * none
[...]