Principe de la gestion des utilisateurs avec les

Transcription

Principe de la gestion des utilisateurs avec les
NOTE TECHNIQUE
Gestion des annuaires LDAP
1
[TN]
1
Cette note technique fournit une vue d’ensemble de la gestion des annuaires LDAP
dans W4 BPMN+.
C O M I N G U P T O P I CS
1.1
[TN]
Principe de la gestion des utilisateurs avec les annuaires LDAP, 1
Gestion de l’authentification, 2
Gestion de synchronisation entre la base W4 BPMN+ et l’annuaire, 2
Configuration de la synchronisation des utilisateurs, 3
Exemples de synchronisation, 3
Principe de la gestion des utilisateurs avec les
annuaires LDAP
2
W4 BPMN+ dispose d'une structure permettant de gérer les utilisateurs et leurs profils
de manière autonome afin de garantir la cohérence de la base de données.
Exemple :
 Si un utilisateur quitte la société, il est supprimé de l'annuaire d'entreprise.
 Or, au sein des processus, il reste un utilisateur ayant mené une action particulière.
L'utilisation des annuaires concerne 2 sujets complémentaires :
 L'authentification : volonté d'utiliser l'annuaire d'entreprise de manière uniforme et ainsi
disposer d'une authentification SSO dans les applications.
 La gestion des profils en fonction des informations de l'annuaire : volonté d'uniformiser
la gestion des droits dans un seul outil.
© 2014 - 2016 W4. Tous droits réservés.
L’aide en ligne de W4 BPMN+ est disponible à l’adresse docs.w4store.com
2
body
1.2
[TN]
Gestion de l’authentification
3
Les applications W4 BPMN+ permettent d'utiliser les mécanismes standards disponibles
en Java pour transmettre l'identité de l'utilisateur connecté vers les applications W4
BPMN+.
 Exemples : Kerberos, NTLM, CAS.
La complexité de mise en œuvre est plus liée au SSO souhaité qu'à W4 BPMN+.
Lors des connexions aux applications, il suffit de disposer dans le header du nom de
l'utilisateur et l'application ne proposera plus la page d'authentification.
W4 BPMN+ permet d'autoriser plusieurs types d'authentification :
Seuls les utilisateurs connus dans l'annuaire.
 Les utilisateurs de l'annuaire, puis s'ils ne sont pas connus, il est possible d'autoriser une
authentification directe au moteur à travers sa base d'utilisateurs.
De plus, il est possible d'exclure certains utilisateurs d'une authentification à travers
l'annuaire.
 Exemples : utilisateurs techniques (créés pour des besoins techniques), super
administrateurs, utilisateurs propres au moteur (par exemple : admin).

1.3
[TN]
Gestion de synchronisation entre la base W4 BPMN+
et l’annuaire
4
La synchronisation consiste à reporter les droits d'un utilisateur de l'annuaire dans la
base d'utilisateurs du moteur.
Les droits peuvent alors être gérés soit :
 Entièrement dans l'annuaire (ce qui est rarement le cas, exemple pour les
administrateurs du moteur).
 Entièrement dans le moteur.
 De manière mixte (cas le plus fréquent).
La séparation entre privilèges et groupes du moteur avec les droits de l'annuaire offre
toute la souplesse souhaitée :
 Certains clients vont utiliser dans les processus leurs droits issus de l'annuaire.
 Uniformise les profils, leur nommage. Facilite la compréhension des utilisateurs.
 Certains clients vont privilégier une vue "opérationnelle" dans les processus avec une
mise en correspondance au niveau de la configuration.
 Exemple : le processus utilise des groupes du type valideurCongés et il est défini dans
la configuration que l'utilisateur étant manager dispose du groupe valideurCongés.
De même, les attributs des utilisateurs peuvent diverger entre l'annuaire et la base
d'utilisateurs.
 Certains attributs pouvant n'avoir une existence que dans l'un ou l'autre.
1.4
[TN]
Configuration de la synchronisation des utilisateurs
Synchronisation possible avec un ou plusieurs annuaires LDAP.
5
Opération autorisée lors de la synchronisation :
 Création, modification et suppression d'utilisateurs.
 Création, modification et suppression de groupes.
Mode de synchronisation (combinaisons possibles entre chacun des critères ci-dessous) :
 Quand ?
 Au démarrage du moteur.
 A chaque connexion de l'utilisateur.
 Quand l'utilisateur fait partie d'une recherche.
 Sur l'accès direct à l’utilisateur.
 Toutes les x périodes.
 Quoi ?
 Une partie des attributs et/ou des groupes.
 L'ensemble des attributs et/ou des groupes.
 Tous les attributs et/ou des groupes sauf...
Gestion des timeouts sur les connexions à l'annuaire :
 Le nombre de tentatives et leur espacement est défini dans la configuration.
1.5
[TN]
Exemples de synchronisation
6
La synchronisation consiste à définir les informations à recopier dans la base des
utilisateurs et des groupes W4 en fonction de requêtes auprès de l'annuaire.
Il est possible de définir un comportement général sur _default puis de le surcharger sur
une ou plusieurs définitions
Au moins une définition doit être positionnée pour que la synchronisation soit prise en
compte. Elle permet principalement de définir le scope de filtre LDAP à appliquer. Dans
les exemples, ci-dessous, nous utiliserons <def> comme le nom de la définition utilisée
H E A D I N G S I N T H I S TO P I C
Récupération d'informations sur l'utilisateur, 4
Récupération de groupes de l'annuaire, 4
Affectation d'un groupe W4 à des utilisateurs donnés, 5
Note technique - Gestion des annuaires LDAP
3
4
body
Récupération d'informations sur l'utilisateur
Recopier une information de l'annuaire
core.ldap.search.users._default.mappings+=properties.lastName
core.ldap.search.users._default.mapping.properties.lastName=${entry.attributes.get('name').get()}
Positionner une information fixe en fonction d'un critère
core.ldap.search.users.<def>.searchName=CN=Users,DC=company,DC=com
core.ldap.search.users.<def>.searchFilter=(&(objectclass=user)(department=Purchase))
core.ldap.search.users.<def>.mappings+=attributes.cpp:Branch
core.ldap.search.users.<def>.mapping.attributes.cpp:Branch=Antwerp
Récupération de groupes de l'annuaire
Créer des groupes à partir de ceux existant dans l'annuaire
core.ldap.search.groups._default.mappings+=identifier.name
core.ldap.search.groups._default.mapping.identifier.name=${entry.attributes.get('cn').get()}
core.ldap.search.groupsDefinitions=<def>
core.ldap.search.groups.<def>.searchName=CN=Groups,DC=company,DC=com
core.ldap.search.groups.<def>.searchFilter=(objectclass=group)
Affectation d'un groupe W4 à des utilisateurs donnés
Affectation du groupe MyGroup à tous les utilisateurs du département
Purchase
core.ldap.search.users.<def>.searchName=CN=Users,DC=company,DC=com
core.ldap.search.users.<def>.searchFilter=(&(objectclass=user)(department=Purchase))
core.ldap.search.users.<def>.mappings+=groupNames
core.ldap.search.users.<def>.mapping.groupNames+=myGroup
Affectation d'un groupe à chacun des utilisateurs appartenant à celui-ci
core.ldap.search.users.<def>.mapping.groupNames+=\
${ldap.getEntryAttributeStringValues(entry.attributes.get('memberOf').getAll(), 'cn')}
Affectation des utilisateurs ayant le groupe AD Purchase dans le groupe
W4_Purchase
core.ldap.search.groups.<def>.searchName=CN=Users,DC=company,DC=com
core.ldap.search.groups.<def>.searchFilter=(&(objectclass=group)(mailNickname=purchase))
core.ldap.search.groups.<def>.mappings+=userNames
core.ldap.search.groups.<def>.mapping.userNames+= W4_${entry.attributes.get('cn').get()}
Affectation des utilisateurs à un groupe
Besoin exprimé par rapport à l'annuaire OID dont l'information memberOf n'est pas
disponible.
Par conséquent, on effectue l'affectation d'un ensemble d'utilisateurs dans un groupe
core.ldap.search.groups.<def>.mapping.userNames+=\
${ldap.getEntryAttributeStringValues(entry.attributes.get('member').getAll(), 'mailNickname')}
Exemple avec des expressions plus riches
Si nous avons créé nos utilisateurs avec le login W4_<cnOfDirectory>.
Nous pouvons les retrouver de la manière suivante pour remplir un groupe :
Note technique - Gestion des annuaires LDAP
5
6
body
${ldap.getEntryExpressionValues(entry.attributes.get('member').getAll(),"W4_${attributes.get('
mailNickname').get()}")}
FINAL
Note technique - Gestion des annuaires LDAP
7