IAM Manager, My IAM deux applications développées pour la gestion des identités et habilitations.
La solution de gestion des identités et des accès (IAM) réalisée par Atol C&D est composée des applications My IAM et IAM Manager. Les fonctionnalités sont réparties sur ces deux applications web :
- IAM – manager : accès authentifié à l'application d'administration (gestion des applications, des délégations, …)
- IAM – public : accès authentifié grand public (gestion de son compte et de son).
Schéma général
Les fonctionnalités
IAM Manager
L'application « IAM Manager » implémente une interface d'administration (accessible seulement via le réseau local) disposant des fonctions suivantes
- Gestion des utilisateurs
- lister et filtrer les utilisateurs
- éditer / désactiver / réactiver un utilisateur
- lister et filtrer les comptes applicatifs d'un utilisateur
- ajouter un compte applicatif à un utilisateur
- lister et filtrer les affectations professionnelles d'un utilisateur
- ajouter / éditer / supprimer une affectation professionnelle à un utilisateur
- Gestion d'un compte applicatif
- éditer / désactiver / réactiver un compte applicatif
- lister et filtrer les demandes d'accès liées au compte applicatif courant
- ajouter / éditer une demande d'accès liée au compte applicatif courant
- lister et filtrer les droits d'habilitant liés au compte applicatif courant
- éditer un droit d'habilitant lié au compte applicatif courant
- Gestion des applications
- lister et filtrer les applications
- éditer / désactiver / réactiver une application
- lister et filtrer les comptes applicatifs liés à l'application courante
- ajouter un compte applicatif à une application lié à l'application courante
- lister et filtrer les environnements liés à l'application courante
- ajouter / éditer / désactiver / réactiver un environnement lié à l'application courante
- lister et filtrer les responsables de structures liés à l'application courante
- ajouter / éditer / désactiver / réactiver un responsable d'une structure liée à l'application courante
- lister (sous forme d'un tableau croisé entre les environnements et les rôles accessibles) les droits d'habilitants liés à l'application courante
- ajouter / éditer / supprimer un droit d'habilitant
- Gestion des structures
- lister / filtrer les structures sous forme d'un arbre
- éditer / désactiver / réactiver une structure (et ses sous-structures)
- Gestion des demandes de réinitialisation de mot de passe
- lister les demandes
- ajouter / réinitialiser (c'est-à-dire changer son code et sa date d'expiration) / supprimer une demande
L'application iam-manager dispose d'un mécanisme de tâches de fond qui traite des fonctions suivante :
- la synchronisation Oracle => LDAP
- l'import Astre
- la suppression des comptes non activés et expirés.
- l'export des comptes propres
- la notification des demandes d'habilitation non traitées
- la notification des demandes d'affectation professionnelle non traitées
My IAM
L'application " My IAM " implémente les fonctions suivantes :
- la délégation de droits d'habilitation
- la gestion de sa structure de responsabilité lors du processus d'habilitation
- le processus de changement de sa structure de responsabilité
- la gestion des demandes d'affectations pro par un référent
Coté technique
Pile logiciel pour les applications web
Les applications sont des applications web java basées sur les standards java en vigueur (principalement Jax-rs 2, injection de dépendance et JPA). Les applications sont fournies par un Jetty 9 embarquée dans chaque application.
Jetty s'occupe de la gestion des sessions utilisateur. Les librairies suivantes sont utilisées (liste non exhaustive) :
- Resteasy : implémentation Jax-rs
- Jetty : serveur d'application
- Guice : injection de dépendance
- Slf4j / log4j2 : logs
- UnboundId : sdk ldap
- Hibernate : pour JPA
- Twitter bootstrap : css
- AngularJS : js
- Handlesbar : templating
Le projet est développé avec Maven. Le projet est intégré dans un système Jenkins pour l'intégration continue et analyse du code par sonar pour avoir des métriques sur la qualité de code. Chaque web app est buildée en paquet RPM et Debian (avec utilisateur spécifique, gestion de conflit et service de démarrage). L'application a différentes sorties de log.