Inscription en masse d'utilisateurs ?

Bonjour je reviens sur le sujet ,
y’aurait t’il des retour d’expérience sur scenariBatch, notamment pour l’import en masse d’utilisateurs en LDAP ?
Y’aurait t’il une fonction permettant en mode ldap, la création automatique du compte avec par défaut un role.
En gros quand l’utilisateur se connecte la 1ere fois,
Vérification du compte et mot passe ldap et si ok création du compte avec un role automatiquement par defaut
Merci

Bonjour @Nhox ,

y’aurait t’il des retour d’expérience sur scenariBatch, notamment pour l’import en masse d’utilisateurs en LDAP ?

Je n’ai pas ce type de script tout fait sous la main. On parle de scenariBatch, mais ça peut aussi etre n’importe quel outil capable d’envoyer des directives HTTP qui peut faire ce type de travail (les requêtes qui créent des utilisateurs sont facilement identifiable en passant par les outils de debug des navigateurs).

Y’aurait t’il une fonction permettant en mode ldap, la création automatique du compte avec par défaut un role.

On a déjà implémenté ce type de chose pour d’autres modalités de connexion (SAML, …). Ca serait implémentable aussi pour la connexion LDAP si besoin.

Bonne journée
Antoine
Kelis

1 « J'aime »

@anp Merci pour votre réponse, il est possible que je vous contacte si nous sommes bloqués , c’est une partie que je ne maitrise pas :wink:

Bonjour @Nhox,

Quelle version de Scenari utilisez vous ?
Nous commençons doucement à avancer sur le futur remplaçant de SCENARIbatch et, si vous utilisez la dernière version de Scenari et que vous ne craignez pas d’être béta testeur, vous pouvez essayer les futurs libs Python pour Scenari.

Thibaut

Merci, nous sommes sur SCENARIchain-server 6.1.9 , j’en parle à mes collègues ,
Est ce que ce libs python est disponible en téléchargement ?
Merci
Arnaud V.

Pour tester les libs Python, il vaudrait mieux passer sur un serveur 6.2.

Ensuite, les développements sont en cours, donc pour tester, il faudrait que l’on échange pour qu’on vous donne des billes (et un lien de téléchargement vers les versions nightly des libs).

Thibaut

2 « J'aime »

Bonjour,

Je viens de finir la migration de mon serveur chain 4.2.203 en suite 6.2.3.

J’ai profité de cette opération pour automatiser certaines choses.

  1. interroger l’annuaire LDAP et affecter automatiquement les utilisateurs, selon l’unité organisationnelle d’appartenance dans LDAP, à un groupe d’utilisateurs Scenari
  2. réorganiser mes ateliers en respectant la règle suivante : chaque groupe a son atelier maitre et un atelier dérivé (brouillon).
  3. Les ateliers maîtres sont en lecture seule et donc consultables par tous.
  4. Les ateliers dérivés ne sont éditables que par les membres du groupe associé et donc visibles que des membres.
  5. Les permissions sur les ateliers sont portées par les groupes et non les utilisateurs.

Les scripts que j’ai créé, à partir des ressources fournies par Scenari Batch et ce forum :

  • scBatch.sh
    Script que je lance depuis la ligne de commande (sous l’autorité du compte jetty, avec sudo -u jetty ./scBatch.sh)
    La variable lib désigne le répertoire où se trouve les librairies Scenari Batch, avec /app/scBatch en racine de l’installation
#!/bin/sh
echo "SCENARIbatch - 6.2.3"
lib="/app/scBatch/bin/sclib"
ant="build.xml"
antparam="-Dprogram.param=main"

# Controle execution
if [ $(whoami | grep -c jetty) -ne 1 ]; then
  echo "Il faut etre connecte jetty !!!"
  exit 99
fi

# Extraction des donnees du LDAP
sh ./exportLdap.sh

# Constitution du ficher de commandes
sh ./makeBuild.sh

#Recherche de java et controle que se soit une version SUN
vJavaCmd="/usr/bin/java"
xCheckJava () {
	vInputVarName=\$"$1"
	vInputVarVal=`eval "expr \"$vInputVarName\" "`
	if [ -z "$vInputVarVal" ];then
		eval "$1=false"
		return
	fi
	vSunJavaFound=`$vInputVarVal -version 2>&1 | grep -Eo -m 1 "(HotSpot)|(OpenJDK)"`
	if [ "$vSunJavaFound" != "HotSpot" ] && [ "$vSunJavaFound" != "OpenJDK" ] ; then
		eval "$1=false"
		return
	fi
}
xCheckJava vJavaCmd
if [ "$vJavaCmd" = "false" ]; then
	vJavaCmd="$JAVA_HOME/bin/java"
	xCheckJava vJavaCmd
	if [ "$vJavaCmd" = "false" ]; then
		echo "ERREUR: JRE de SUN introuvable. Veuillez déclarer la variable d'environnement JAVA_HOME."
		exit 1
	fi
fi

#Lancer la commande
scJarList="$lib/*"

$vJavaCmd -classpath "$scJarList:" -Xmx512m org.apache.tools.ant.Main -buildfile $ant $antparam
exit $?
  • exportLdap.sh
    Script d’interrogation de l’annuaire Ldap qui construit le fichier users.xml contenant des blocs similaires à celui-ci, avec tous mes utilisateurs :
<o account="prénom.nom" userType="user" lastName="nom" firstName="prénom" email="prénom.nom@domaine" password="" authMethod="remote">
   <a k="groups">
     <s>groupe_scenari_utilisateur</s>
   </a>
 </o>
  • Export des groupes
    L’export des groupes, que je voulais reprendre tels quels, a été réalisé en appelant la fonction :
    url_webapp/~~chain/web/u/adminWsp?cdaction=ExportConfig
    Le contenu a été sauvegardé dans groups.xml
    Exemple de contenu
<importUsers>
   <createOrUpdate>
      <a>
         <!-- Rôle -->
         <o>
            <s k="account">grp_vide</s>
            <s k="userType">group</s>
            <s k="groupName">Groupe temporaire</s>
            <s k="email"/>
            <a k="grantedRoles">
               <s>main:none</s>
            </a>
            <a k="inheritedRoles">
               <s>main:none</s>
            </a>
         </o>
      </a>
   </createOrUpdate>
</importUsers>
  • makeBuild.sh
    Script de construction du fichier build.xml dont ont besoin les primitives de Scenari Batch.
#!/usr/bin/bash

groupsfile="groups.xml"
usersfile="users.xml"
buildfile="build.xml"

password='****************'

# Entete du fichier de commandes
cp ./build.template-debut.xml $buildfile

# Preparation du traitement d'import
echo "	  <echo>Sécurisation des ateliers, avec import LDAP.</echo>" >> $buildfile
echo '    <scServer url="url_webapp/~~chain/web/u/batch" user="system" password="'$password'" haltOnError="no" verbose="true">' >> $buildfile
echo '      <sequence haltOnError="false">' >> $buildfile

# Ajout des groupes
cat $groupsfile >> $buildfile

echo '<importUsers>' >> $buildfile
echo '  <createOrUpdate>' >> $buildfile
echo '    <a>' >> $buildfile

# Ajout des utilisateurs
cat $usersfile >> $buildfile
rm $usersfile

# Conclusion du traitement
echo '         </a>' >> $buildfile
echo '       </createOrUpdate>' >> $buildfile
echo '     </importUsers>' >> $buildfile
echo '   </sequence>' >> $buildfile
echo '</scServer>' >> $buildfile

# Fin du fichier de commandes
cat ./build.template-fin.xml >> $buildfile

Ce qui donne un fichier build.xml qui ressemble à ça :

<project name="scBatch" default="main" basedir=".">
        <taskdef name="scServer" classname="com.scenari.scant.batch.ScServerTask"/>
        <taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
        <taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>
        <taskdef name="http" classname="org.missinglink.ant.task.http.HttpClientTask"/>

        <property name="tmp.dir" location="${basedir}/tmp"/>
        <property name="lib.dir" location="${basedir}/lib"/>

        <!--**
                 *  Run principal
                 **-->
        <target name="main">
                <!-- !Target à paramétrer! -->
          <echo>Sécurisation des ateliers, avec import LDAP.</echo>
    <scServer url="url_webapp/~~chain/web/u/batch" user="system" password="****************" haltOnError="no" verbose="true">
      <sequence haltOnError="false">
<importUsers>
   <createOrUpdate>
      <a>
          Tous les groupes
      </a>
      </a>
   </createOrUpdate>
</importUsers>
<importUsers>
  <createOrUpdate>
         <a>
          Tous les utilisateurs
         </a>
       </createOrUpdate>
     </importUsers>
   </sequence>
</scServer>
<!--
                <ant antfile="${lib.dir}/log.ant" target="file">
                        <property name="p.msg" value="${x.logs}${ts}"/>
                </ant>
-->
        </target>
</project>

La réorganisation de mes ateliers suit une logique similaire.

1 « J'aime »