Contexte : - Active Directory Windows Server 2019 existant. - Serveur Laravel actuellement membre du domaine. - Objectif : reprendre l'existant AD puis faire évoluer l'IAM pour qu'il devienne le référentiel de gestion des accès et du provisioning. 1. Principe général L'Active Directory reste initialement la source de vérité pour les identités existantes. L'application Users Manager devient ensuite le référentiel IAM chargé de piloter les accès. Phase initiale : Active Directory -> Users Manager Phase cible : Users Manager -> Active Directory, Keycloak, applications et ressources. 2. Architecture applicative Laravel Utiliser une architecture monolithe modulaire : Modules : - Annuaire des personnes - Catalogue des applications - Catalogue des ressources - Gestion des groupes - Profils métiers - Gestion des accès - Provisionnement - Connecteurs - Audit Chaque module possède : - contrôleurs - modèles - vues - routes - services métier Les contrôleurs doivent rester légers : Contrôleur | v Service applicatif | v Modèle / dépôt | v Services techniques (AD, Keycloak, applications) 3. Séparation Personne / Compte Ne pas utiliser uniquement un modèle Utilisateur. Prévoir : Personne : - identité - coordonnées - service - fonction - statut Compte : - compte AD - compte Keycloak - comptes applicatifs Une personne peut posséder plusieurs comptes. 4. Reprise initiale Active Directory Créer un connecteur Active Directory en lecture. Importer : Utilisateurs : - nom - prénom - email - téléphone - service - fonction - manager - login - UPN - SID - état du compte Groupes : - nom - description - SID - DN LDAP - source - propriétaire Appartenances : - utilisateur - groupe Tables principales : - personnes - comptes - groupes - groupe_compte 5. Analyse des droits existants Après import, l'IAM doit fournir une photographie : Qui a quoi ? Depuis quand ? Par quel groupe ? Sur quelle ressource ? Cette étape permet de créer les profils métiers. 6. Profils métiers Ne pas attribuer directement des dizaines de groupes aux utilisateurs. Créer des profils métiers contenant : - applications - groupes de sécurité - ressources - autorisations Exemple : Profil COMPTABLE : Applications : - GestUp Groupes : - GG_COMPTABILITE Ressources : - partage fichiers comptabilité - SharePoint Finance L'utilisateur reçoit le profil métier. 7. Provisionnement Le module de provisioning orchestre les actions. Flux : Profil métier | v Provisionnement | +--> Active Directory +--> Keycloak +--> Applications +--> Ressources 8. Connecteurs Prévoir une interface commune : - discover() - synchronize() - create() - update() - disable() - assign() - remove() - verify() Connecteurs prévus : - Active Directory - Keycloak - SharePoint - NextCloud - applications spécifiques 9. Active Directory Le connecteur AD doit fonctionner en deux modes. Mode initial : AD -> IAM Utilisation : - import initial - synchronisation - contrôle Mode cible : IAM -> AD Utilisation : - création utilisateur - modification - désactivation - ajout/retrait de groupes 10. Synchronisation Prévoir : - synchronisation complète - synchronisation différentielle - planification Laravel Scheduler - journal des erreurs Exemple : Tous les jours : Scheduler Laravel | v Connecteur AD | v Synchronisation | v Audit 11. Audit Conserver toutes les actions. Table d'audit : - utilisateur concerné - action - cible - anciennes valeurs - nouvelles valeurs - motif - adresse IP - date Types d'évènements : - UTILISATEUR_CREE - ACCES_ATTRIBUE - PROFIL_ATTRIBUE - GROUPE_MODIFIE - SYNCHRONISATION_EN_ECHEC 12. Gouvernance Prévoir le suivi : - demandeur - valideur - justification - date - approbation Exemple : Ajout groupe : GG_COMPTABILITE Demandeur : Responsable hiérarchique Validateur : Responsable sécurité 13. Keycloak Architecture recommandée : Active Directory | v Users Manager | v Keycloak L'IAM doit connaître la raison d'un accès. Exemple : Jean Dupont possède GestUp car il possède le profil COMPTABLE. 14. Gestion des comptes particuliers Tous les comptes ne seront pas forcément gérés par l'IAM : - comptes techniques - comptes administrateurs natifs - comptes de secours Prévoir un indicateur : managed_by : - AD - IAM 15. Base de données Utiliser la base : usersmanager Les migrations Laravel devront prévoir les relations entre : - personnes - comptes - groupes - profils métiers - applications - ressources - droits - audits 16. Règles de développement - Respecter agents.md situé à la racine du projet. - Ne modifier aucun paramètre WampServer. - Les administrateurs doivent pouvoir sauvegarder et restaurer la base. - Utiliser Laravel PHP. - Garder les modules indépendants. - Utiliser les événements Laravel pour déclencher les actions. 17. Prochaine étape recommandée Avant le développement : - définir le schéma complet de base de données - définir les migrations Laravel - définir le connecteur LDAP Active Directory - définir la stratégie de synchronisation - définir les profils métiers initiaux Le schéma de la base est fait. Les migrations Laravel aussi. La base usersmanager doit conserver l'historique des droits, groupes,... pour un compte. Ce sera util pour l'audit. Exemple : Jean Dupont était membre de : GG_COMPTA du 01/01/2025 au 15/07/2026 Fais moi un plan d'implentation pour tout ça