OpenDJ
OpenDJ
Installation
- Commencer par récupérer la dernière version du fichier opendj-4.x.x_all.deb sur le site https://github.com/OpenIdentityPlatform/OpenDJ/releases :
- Lancer l’installation :
Paramétrage initial
Afin de simplifier le paramétrage d'OpenDJ, nous allons créer un fichier “setupOpenDJ.props” contenant les options disponibles pour répondre à l'utilitaire "setup" d’OpenDJ (cela permet d'éviter l’interface de paramétrage).
Le fichier est à créer dans le répertoire /opt/opendj avec le contenu détaillé ci-dessous :
# Sample properties file to set up OpenDJ directory server
# See OpenDJ Setup command man for more options
#
# Root user Distinguished Name (DN) identifies a user who can perform all operations allowed for the server
rootUserDN =cn=Directory Manager
# Password for root user LDAP
rootUserPassword =adminOpenDJ1
# OpenDJ uses fully qualified host name in self-signed certificates and for identification when you use replication
hostname =localhost.localdomain
# Port used for connection with LDAP
ldapPort =389
# This is the service port used to configure the server and to run tasks
adminConnectorPort =4444
# Identifies the implementation of the repository that holds your data
backendType =je
# Directory Name for your LDAP
baseDN =dc=digdash,dc=com
addBaseEntry =true
# Secure LDAP Port used for SSL connection
ldapsPort =636
# Use StartTLS to negotiate a secure connection between a client and server
enableStartTLS =false
# Self-signed certificates for externally facing ports facilitate testing, but are not intended for production use
generateSelfSignedCertificate =true
# Start at the end of setup
start =true
Après avoir enregistré le fichier, exécuter la ligne de commande suivante :
Paramétrage supplémentaire
- Se placer dans le répertoire d’installation d’OpenDJ :
Les fichiers LDIF peuvent être téléchargés en cliquant sur le lien suivant .
- Créer les organisations grâce au fichier “neworganisation.ldif” ci-dessous :
objectClass: organizationalUnit
ou: default
- Définir le vérificateur de mot de passe "Custom Character-set Password Validator":
- Appliquer le vérificateur de mot de passe :
- Définir la politique de mot de passe pour les utilisateurs grâce au fichier “ppolicy.ldif” ci-dessous :
objectClass: top
objectClass: subentry
objectClass: pwdPolicy
cn: ppolicy
pwdAttribute: userPassword
pwdAllowUserChange: TRUE
pwdCheckQuality: 1
pwdExpireWarning: 600
pwdFailureCountInterval: 30
pwdGraceAuthNLimit: 5
pwdInHistory: 5
pwdLockout: TRUE
pwdLockoutDuration: 900
pwdMaxAge: 0
pwdMaxFailure: 5
pwdMinAge: 0
pwdMustChange: FALSE
pwdSafeModify: FALSE
subtreeSpecification: {base "ou=users", specificationFilter "!(uid=admin)" }
- Définir une seconde politique de mot de passe pour l’admin grâce au fichier “ppolicy-admin.ldif” ci-dessous :
objectClass: top
objectClass: subentry
objectClass: pwdPolicy
cn: ppolicy-admin
pwdAttribute: userPassword
pwdAllowUserChange: TRUE
pwdCheckQuality: 1
pwdFailureCountInterval: 30
pwdGraceAuthNLimit: 5
pwdInHistory: 5
pwdLockout: FALSE
pwdMaxAge: 0
pwdMinAge: 0
pwdMustChange: FALSE
pwdSafeModify: FALSE
subtreeSpecification: {base "ou=users", specificationFilter "(uid=admin)" }
- Modifier la politique de mot de passe pour autoriser les mots de passe pré-encodés (utiles pour les restaurations dans Digdash) :
- Créer un utilisateur admin pour digdash via le fichier “create_user_admin.ldif” ci-dessous :
objectClass: shadowAccount
objectClass: inetOrgPerson
cn: Admin Domain Default
sn: Default
uid: admin_default
- Lui affecter les droits nécessaires en utilisant les fichiers “add_admin_right.ldif” et “add_admin_right2.ldif” ci-dessous :
changetype: modify
add: aci
aci: (target ="ldap:///ou=default,dc=digdash,dc=com")(targetattr = "userpassword || shadowlastchange")(version 3.0; acl "allow write on userpassword and shadowlastchange for admin"; allow(write) (userdn = "ldap:///uid=admin,ou=default,dc=digdash,dc=com");)
aci: (target ="ldap:///ou=default,dc=digdash,dc=com")(targetattr = "userpassword || shadowlastchange")(version 3.0; acl "allow read,write on userpassword and shadowlastchange for auth users"; allow(read) (userdn = "ldap:///all");)
aci: (target ="ldap:///ou=default,dc=digdash,dc=com")(targetattr = "userpassword || shadowlastchange")(version 3.0; acl "allow read on userpassword and shadowlastchange for anonymous"; allow(selfwrite) (userdn = "ldap:///anyone");)
aci: (target ="ldap:///ou=default,dc=digdash,dc=com")(targetattr = "*")(version 3.0; acl "allow write on * for admin"; allow(all) (userdn = "ldap:///uid=admin,ou=default,dc=digdash,dc=com");)
aci: (target ="ldap:///ou=default,dc=digdash,dc=com")(targetattr = "*")(version 3.0; acl "allow read on * for anonymous"; allow(read) (userdn = "ldap:///all");)
changetype: modify
add: ds-privilege-name
ds-privilege-name: config-read
ds-privilege-name: password-reset
ds-privilege-name: unindexed-search
- Générer un mot de passe pour l’administrateur et le conserver en mémoire pour plus tard :
Activation du lancement automatique du service au démarrage
- Créer le fichier opendj.service :
- Et y coller les lignes suivantes :
Description=OpenDJ Server Daemon
Wants=network-online.target
After=network-online.target
Conflicts=shutdown.target
[Service]
Type=simple
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/opt/opendj/bin/start-ds --quiet
ExecStop=/opt/opendj/bin/stop-ds --quiet
[Install]
WantedBy=multi-user.target
- Ensuite taper les commandes suivantes :
systemctl daemon-reload
systemctl enable --now opendj
systemctl status opendj
Fonction utile
L'opération ci-dessous ne fait pas partie de l'installation.
Il peut néanmoins être utile de la connaître pour une utilisation ultérieure.
Étendre la limite pour les recherches LDAP
Afin d'augmenter la limite de résultats retournés durant la recherche à plus de 1000 utilisateurs, modifiez le fichier “extend_search_limit.ldif” ci-dessous :
changetype: modify
add: ds-rlim-size-limit
ds-rlim-size-limit: 10000
Afin d'augmenter le nombre d’entrées parcourues durant la recherche, ajouter le fichier “ds-rlim-lookthrough-limit.ldif” :
changetype: modify
replace: ds-rlim-lookthrough-limit
ds-rlim-lookthrough-limit: 100000
Exécuter ensuite :
