

Synchro LDAP et AD
#21
Posté 02 mars 2010 - 15:21
tel : +33 (0)6 63 18 08 XX / mail : guy.carre+zimbrafr@libremail.fr
http://www.scalesi.fr/
#22
Posté 02 mars 2010 - 15:44
1 - Il scan l'Active Directory et créé sur ZCS tous les comptes présents dans AD non présents dans ZCS ( à partir de jean.bon@domaine.fr, il creer un compte jean.bon@domaine.fr avec un password en jbon et le nom du compte Jean BON.
2- Il vérrouille les comptes ZCS qui sont désactivés dans l'AD
3 - Il réactive les comptes ZCS qui sont réactivés dans l'AD/
Pour mon utilisation il fonctionne très bien. à utiliser à vos risques et périls.
#!/bin/bash #adzmbsync.sh is a script thant syncs AD users and Zimbra users # It is unidirectional, just replicates changes from AD to ZCS # Antony Martineau antony at info16 dot fr LDAPSEARCH=/usr/bin/ldapsearch ZMACCTS=/opt/zimbra/bin/zmaccts ZMPROV=/opt/zimbra/bin/zmprov DOMAIN_NAME="mondomaine.fr" AD_TMPDIR=/tmp/adusers.txt ZMB_TMPDIR=/tmp/zmbusers.txt LDAPSERVER="192.168.1.213" LDAPUSER="ldapuser" LDAPPASSWORD="Ldappassword" MAIL="antony.martineau@mondomaine.fr" #ACTIVE DIRECTORY emails listing $LDAPSEARCH -x -H ldap://$LDAPSERVER -b "dc=mouthiers,dc=priv" -D "CN=$LDAPUSER,CN=Users,dc=mouthiers,dc=priv" -w $LDAPPASSWORD "(&(sAMAccountName=*)(objectClass=user)(givenName=*))" mail | grep $DOMAIN_NAME | awk '{print $2}' > $AD_TMPDIR #ZIMBRA accounts listing $ZMACCTS | grep "@$DOMAIN_NAME" | awk '{print $1}' > $ZMB_TMPDIR LISTDIFF=$(diff -u -i -B $ZMB_TMPDIR $AD_TMPDIR | grep $DOMAIN_NAME | grep "+" | sed s/^+//g) for i in $LISTDIFF; do EMAIL=$(echo $i | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz') FIRSTNAME=$(echo $EMAIL | awk -F "@" '{print $1}' | awk -F"." '{print $1}' | sed -r 's/(^.|[ ]+.)/\U&/g') LASTNAME=$(echo $EMAIL | awk -F "@" '{print $1}' | awk -F"." '{print $2}'| tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') PASSWORD=$(echo $EMAIL | awk -F "@" '{print $1}' | awk -F "." '{print substr($1,1,1)$2}') # generate temporary password first letter firstname lastname ex: john.lord password=jlord echo $i $PASSWORD displayName ''$FIRSTNAME' '$LASTNAME'' givenName $FIRSTNAME sn $LASTNAME #zmprov ca pierre.corbeau@mondomaine.fr password pcorbeau displayName 'Pierre CORBEAU' givenName Pierre sn CORBEAU done #ACTIVE DIRECTORY ACCOUNT DISABLED-ENABLED ADENABLE=$($LDAPSEARCH -x -H ldap://$LDAPSERVER -b "dc=mouthiers,dc=priv" -D "CN=$LDAPUSER,CN=Users,dc=mouthiers,dc=priv" -w $LDAPPASSWORD '(&(objectClass=User)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))' | grep $DOMAIN_NAME | awk -F":" '{print $2}' | sed 's/ //g') ADDISABLE=$($LDAPSEARCH -x -H ldap://$LDAPSERVER -b "dc=mouthiers,dc=priv" -D CN=$LDAPUSER,CN=Users,dc=mouthiers,dc=priv -w $LDAPPASSWORD '(&(objectClass=User)(userAccountControl:1.2.840.113556.1.4.803:=2))' | grep $DOMAIN_NAME | awk -F":" '{print $2}' | sed 's/ //g') ZMBACTIVE=$($ZMACCTS | grep "@$DOMAIN_NAME" | grep -v "galsync" | egrep -v "closed | locked" |awk '{print $1}') ZMBINACTIVE=$($ZMACCTS | grep "@$DOMAIN_NAME" | grep -v "galsync" | egrep "closed | locked" |awk '{print $1}') for j in $ADDISABLE; do for k in $ZMBACTIVE; do if [ $j = $k ]; then zmprov ma $j zimbraAccountStatus locked echo Account $j seems to be disabled on Active Directory, so it has been disabled on ZCS | mail -s "ZCS Account disabled" $MAIL fi done done for j in $ADENABLE; do for k in $ZMBINACTIVE; do if [ $j = $k ]; then zmprov ma $j zimbraAccountStatus active echo Account $j seems to be enabled on Active Directory, so it has been enabled on ZCS | mail -s "ZCS Account enabled" $MAIL fi done done
Reste à faire:
le daemoniser toutes les 5 minutes avec un script d'init en tant qu'user zimbra
Modifié par bartounet, 02 mars 2010 - 15:46.
Zimbra NE V7.1.4 Xen SLES11-SP1 Paravirtualized (DomU 4Vcpus 8Go ram) - Prod 200 users
Serveur Perso HP Proliant DL120 DEDIBOX PRO Xeon® E3-1220 16Go Ram Opensuse 12.1 64bits Virtualisation Xen4
Zimbra OSE V8 Xen Ubuntu 10.04 LTS 64 bits Paravirtualized (DomU 2Vcpus 4Go ram) + Zextras - Potes et assoc
Auto-entreprise: Solutions informatiques sur mesure : http://www.info16.fr
Mon blog : http://blog.info16.fr



#23
Posté 02 mars 2010 - 17:07
Cela sera certainement d'une grande utilité pour la communauté.
Et surtout il ne faut pas hésiter pour ceux qui l'utiliseront de remonter leur expérience ainsi que des améliorations qu'ils auraient pu apporter.
A+
tel : +33 (0)6 63 18 08 XX / mail : guy.carre+zimbrafr@libremail.fr
http://www.scalesi.fr/
#24
Posté 03 mars 2010 - 08:13
7.1.3 OSE : IBM 3350 -> SAN FC (SLES 11 x64 sous vSphere)750 Users
#25
Posté 03 mars 2010 - 08:38
#26
Posté 03 mars 2010 - 08:40
Citation
C'est vrai que ca fait beaucoup... Pourquoi ne pas faire une synchro la nuit simplement ?
#27
Posté 03 mars 2010 - 09:20
La synchro est rapide et pas trop consommatrice.
La recherche ldap est très rapide, la recherche zimbra un peu moins.
Zimbra NE V7.1.4 Xen SLES11-SP1 Paravirtualized (DomU 4Vcpus 8Go ram) - Prod 200 users
Serveur Perso HP Proliant DL120 DEDIBOX PRO Xeon® E3-1220 16Go Ram Opensuse 12.1 64bits Virtualisation Xen4
Zimbra OSE V8 Xen Ubuntu 10.04 LTS 64 bits Paravirtualized (DomU 2Vcpus 4Go ram) + Zextras - Potes et assoc
Auto-entreprise: Solutions informatiques sur mesure : http://www.info16.fr
Mon blog : http://blog.info16.fr



#28
Posté 03 mars 2010 - 09:22
Citation
Citation
C'est vrai que ca fait beaucoup... Pourquoi ne pas faire une synchro la nuit simplement ?
Si un nouvel user arrive et que tu veux lui creer une boite mail, ou que tu veux le bloquer rapidement, je pense pas attendre la nuit...
Zimbra NE V7.1.4 Xen SLES11-SP1 Paravirtualized (DomU 4Vcpus 8Go ram) - Prod 200 users
Serveur Perso HP Proliant DL120 DEDIBOX PRO Xeon® E3-1220 16Go Ram Opensuse 12.1 64bits Virtualisation Xen4
Zimbra OSE V8 Xen Ubuntu 10.04 LTS 64 bits Paravirtualized (DomU 2Vcpus 4Go ram) + Zextras - Potes et assoc
Auto-entreprise: Solutions informatiques sur mesure : http://www.info16.fr
Mon blog : http://blog.info16.fr



#29
Posté 03 mars 2010 - 09:59
Si un nouveau user arrive, il commence par être référencé par les RH.
Qui devraient pouvoir créer tout ce qu'il faut d'un seul coup : son compte dans l'appli RH (voire les applis RH), son compte dans l'AD (avec les bons droits), son compte dans le système de messagerie (pareil) et dans toutes les applis "métier" (ou pas "métier").
Là, ton système permet effectivement de créer "tout seul" le compte dans le système de messagerie après l'avoir créé dans l'AD mais ne prend pas en compte tout ce qui devrait être pris en compte si on automatise vraiment : CoS, DL, aliases, etc.
Bref, t'es obligé de finir la conf à la main dans le système de messagerie.
Donc aucun intérêt à automatiser...
C'est ce que je me tue à expliquer aux gens qui râlent qu'il n'y ait pas d'auto-provisioning "out of the box" dans ZCS.
C'est parce que ça ne correspond pas aux vrais besoins. Pour y répondre "correctement" il faut un vrai outil de gestion des utilisateurs, capable de vraiment créer les utilisateurs dans les différentes applis (avec toutes les specs, des systèmes d'héritage, etc).
Modifié par Klug, 03 mars 2010 - 10:00.
#30
Posté 03 mars 2010 - 10:25
Mais effectivement , ce type de tâche toutes les 5 minutes c'est sur-charger la machine pour rien. Dans la plus part des entreprises, la création de compte est soumise à un délais. Donc une fois par jour en dehors des horaires de prod si possible est largement suffisant. Après dans le cas d'une urgence, on peut lancer le script à la mano.
A+
tel : +33 (0)6 63 18 08 XX / mail : guy.carre+zimbrafr@libremail.fr
http://www.scalesi.fr/
#31
Posté 03 mars 2010 - 10:31
Mais il faut aussi tout avoir configuré pour, comme tu le dis 8)
#32
Posté 03 mars 2010 - 11:26
Mais déjà pour un utilisateur lambda normalement pas d'alias.
Jean Dupont jean.dupont@mondomaine.fr password=jdupont Name Jean DUPONT COS par défaut.
Ca me suffit y a pas besoin de plus, puisque la COS par défaut est défini.
Après je vais suivre la charge, une fois par heure peut suffir.
Zimbra NE V7.1.4 Xen SLES11-SP1 Paravirtualized (DomU 4Vcpus 8Go ram) - Prod 200 users
Serveur Perso HP Proliant DL120 DEDIBOX PRO Xeon® E3-1220 16Go Ram Opensuse 12.1 64bits Virtualisation Xen4
Zimbra OSE V8 Xen Ubuntu 10.04 LTS 64 bits Paravirtualized (DomU 2Vcpus 4Go ram) + Zextras - Potes et assoc
Auto-entreprise: Solutions informatiques sur mesure : http://www.info16.fr
Mon blog : http://blog.info16.fr



#33
Posté 11 juin 2010 - 12:01
ldap://ForestDnsZones.cui.ma/DC=ForestDnsZones,DC=cui,DC=ma lcui displayName Ldap://forestdnszones CUI givenName Ldap://forestdnszones sn CUI
ldap://DomainDnsZones.cui.ma/DC=DomainDnsZones,DC=cui,DC=ma lcui displayName Ldap://domaindnszones CUI givenName Ldap://domaindnszones sn CUI
ldap://cui.ma/CN=Configuration,DC=cui,DC=ma lma/cn=configuration,dc=cui,dc=ma displayName Ldap://cui MA/CN=CONFIGURATION,DC=CUI,DC=MA givenName Ldap://cui sn MA/CN=CONFIGURATION,DC=CUI,DC=MA
le fichiers /tmp/adusers.txt contient des comptes qui se trouve dans AD.
lorsque j'entre dans la console zimbra, je trouve pas des comptes.
#34
Posté 11 juin 2010 - 13:41
A mon avis l'arborescence ldap n'est pas forcément la même...
Fait un bash -x et regarde le déroulement du script...
Zimbra NE V7.1.4 Xen SLES11-SP1 Paravirtualized (DomU 4Vcpus 8Go ram) - Prod 200 users
Serveur Perso HP Proliant DL120 DEDIBOX PRO Xeon® E3-1220 16Go Ram Opensuse 12.1 64bits Virtualisation Xen4
Zimbra OSE V8 Xen Ubuntu 10.04 LTS 64 bits Paravirtualized (DomU 2Vcpus 4Go ram) + Zextras - Potes et assoc
Auto-entreprise: Solutions informatiques sur mesure : http://www.info16.fr
Mon blog : http://blog.info16.fr



#35
Posté 11 juin 2010 - 15:48
j'ai pas compris, pouvez-vous m'expliquer qu'est ce que sa veut dire !! :)
#36
Posté 11 juin 2010 - 16:00
Si aucun user ne se crée dans ZCS, c'est curieux tu devrais avoir des erreurs zmprov à la fin du script...
Please arretez de prendre les scripts que vous trouvez comme des formules magiques...
Il faut un minimum l'adapter à vos besoins.
Je poste ici mes scripts pour donner des idées et aider les gens à réaliser leurs propres scripts...
Modifié par bartounet, 11 juin 2010 - 16:02.
Zimbra NE V7.1.4 Xen SLES11-SP1 Paravirtualized (DomU 4Vcpus 8Go ram) - Prod 200 users
Serveur Perso HP Proliant DL120 DEDIBOX PRO Xeon® E3-1220 16Go Ram Opensuse 12.1 64bits Virtualisation Xen4
Zimbra OSE V8 Xen Ubuntu 10.04 LTS 64 bits Paravirtualized (DomU 2Vcpus 4Go ram) + Zextras - Potes et assoc
Auto-entreprise: Solutions informatiques sur mesure : http://www.info16.fr
Mon blog : http://blog.info16.fr



#37
Posté 11 juin 2010 - 16:09
#!/bin/bash
#adzmbsync.sh is a script thant syncs AD users and Zimbra users
# It is unidirectional, just replicates changes from AD to ZCS
# Antony Martineau antony at info16 dot fr
LDAPSEARCH=/opt/zimbra/bin/ldapsearch
ZMACCTS=/opt/zimbra/bin/zmaccts
ZMPROV=/opt/zimbra/bin/zmprov
DOMAIN_NAME="test.ma"
AD_TMPDIR=/tmp/adusers.txt
ZMB_TMPDIR=/tmp/zmbusers.txt
LDAPSERVER="172.16.2.2"
LDAPUSER="administrateur"
LDAPPASSWORD="123.pol"
MAIL="administrateur@test.ma"
#ACTIVE DIRECTORY emails listing
$LDAPSEARCH -x -H ldap://$LDAPSERVER -b "dc=test,dc=ma" -D "cn=$LDAPUSER,CN=Users,dc=test,dc=ma" -w $LDAPPASSWORD "(&(sAMAccountName=*)(objectClass=user)(givenName=*))" mail | grep $DOMAIN_NAME | awk '{print $2}' > $AD_TMPDIR
#ZIMBRA accounts listing
$ZMACCTS | grep "@$DOMAIN_NAME" | awk '{print $1}' > $ZMB_TMPDIR
LISTDIFF=$(diff -u -i -B $ZMB_TMPDIR $AD_TMPDIR | grep $DOMAIN_NAME | grep "+" | sed s/^+//g)
for i in $LISTDIFF; do
EMAIL=$(echo $i | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz')
FIRSTNAME=$(echo $EMAIL | awk -F "@" '{print $1}' | awk -F"." '{print $1}' | sed -r 's/(^.|[ ]+.)/\U&/g')
LASTNAME=$(echo $EMAIL | awk -F "@" '{print $1}' | awk -F"." '{print $2}'| tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
PASSWORD=$(echo $EMAIL | awk -F "@" '{print $1}' | awk -F "." '{print substr($1,1,1)$2}') # generate temporary password first letter firstname lastname ex: john.lord password=jlord
echo $i $PASSWORD displayName ''$FIRSTNAME' '$LASTNAME'' givenName $FIRSTNAME sn $LASTNAME
#zmprov ca pierre.corbeau@mondomaine.fr password pcorbeau displayName 'Pierre CORBEAU' givenName Pierre sn CORBEAU
done
#ACTIVE DIRECTORY ACCOUNT DISABLED-ENABLED
ADENABLE=$($LDAPSEARCH -x -H ldap://$LDAPSERVER -b "dc=test,dc=ma" -D "CN=$LDAPUSER,CN=Users,dc=test,dc=ma" -w $LDAPPASSWORD '(&(objectClass=User)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))' | grep $DOMAIN_NAME | awk -F":" '{print $2}' | sed 's/ //g')
ADDISABLE=$($LDAPSEARCH -x -H ldap://$LDAPSERVER -b "dc=test,dc=ma" -D CN=$LDAPUSER,CN=Users,dc=test,dc=ma -w $LDAPPASSWORD '(&(objectClass=User)(userAccountControl:1.2.840.113556.1.4.803:=2))' | grep $DOMAIN_NAME | awk -F":" '{print $2}' | sed 's/ //g')
ZMBACTIVE=$($ZMACCTS | grep "@$DOMAIN_NAME" | grep -v "galsync" | egrep -v "closed | locked" |awk '{print $1}')
ZMBINACTIVE=$($ZMACCTS | grep "@$DOMAIN_NAME" | grep -v "galsync" | egrep "closed | locked" |awk '{print $1}')
for j in $ADDISABLE; do
for k in $ZMBACTIVE; do
if [ $j = $k ]; then
zmprov ma $j zimbraAccountStatus locked
echo Account $j seems to be disabled on Active Directory, so it has been disabled on ZCS | mail -s "ZCS Account disabled" $MAIL
fi
done
done
for j in $ADENABLE; do
for k in $ZMBINACTIVE; do
if [ $j = $k ]; then
zmprov ma $j zimbraAccountStatus active
echo Account $j seems to be enabled on Active Directory, so it has been enabled on ZCS | mail -s "ZCS Account enabled" $MAIL
fi
done
done
SVP aidez moi cher amis
#39
Posté 11 juin 2010 - 20:06
7.1.3 OSE : IBM 3350 -> SAN FC (SLES 11 x64 sous vSphere)750 Users
#40
Posté 12 juin 2010 - 07:57
Je suis pas un cador, mais j'essaye de comprendre par moi même comment fonctionne les scripts...
commence par étudier les bases de scripting bash
Zimbra NE V7.1.4 Xen SLES11-SP1 Paravirtualized (DomU 4Vcpus 8Go ram) - Prod 200 users
Serveur Perso HP Proliant DL120 DEDIBOX PRO Xeon® E3-1220 16Go Ram Opensuse 12.1 64bits Virtualisation Xen4
Zimbra OSE V8 Xen Ubuntu 10.04 LTS 64 bits Paravirtualized (DomU 2Vcpus 4Go ram) + Zextras - Potes et assoc
Auto-entreprise: Solutions informatiques sur mesure : http://www.info16.fr
Mon blog : http://blog.info16.fr



0 utilisateur(s) li(sen)t ce sujet
0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)