Azure Entra ID
Disponibilité des fonctionnalités
Section titled “Disponibilité des fonctionnalités”| Fonctionnalité | Support |
|---|---|
| Gestion utilisateurs | ✅ Complet |
| Organisations | ✅ Via Groupes ou Attribut personnalisé (voir ci-dessous) |
| Journaux d’audit | ⚠️ Connexions uniquement (nécessite AuditLog.Read.All) |
Configuration
Section titled “Configuration”-
Inscrivez une application dans Entra ID
Dans le centre d’administration Microsoft Entra, allez dans Inscriptions d’applications → Nouvelle inscription.
- Nom :
AUMS Management(ou tout autre nom) - Types de comptes pris en charge : Comptes dans cet annuaire organisationnel uniquement
- Cliquez sur S’inscrire
Notez l’ID d’application (client) et l’ID de l’annuaire (locataire).
- Nom :
-
Créez un secret client
Allez dans l’inscription d’application → Certificats et secrets → Nouveau secret client.
- Entrez une description et choisissez une durée d’expiration
- Copiez la Valeur immédiatement — elle n’est affichée qu’une seule fois
-
Accordez les permissions d’API
Allez dans Permissions d’API → Ajouter une permission → Microsoft Graph → Permissions d’application.
Accordez les permissions selon les fonctionnalités souhaitées :
Fonctionnalité Permissions requises Gestion utilisateurs User.Read.All,User.ReadWrite.AllOrganisations (stratégie groupes) Group.ReadWrite.All,GroupMember.ReadWrite.AllOrganisations (stratégie custom_attribute) User.ReadWrite.All(déjà inclus ci-dessus)Journaux d’audit AuditLog.Read.AllAprès avoir ajouté les permissions, cliquez sur Accorder le consentement administrateur.
-
Choisissez une stratégie d’organisation
Choisissez comment AUMS mappe les « organisations » dans votre tenant Entra. Consultez Stratégies d’organisation ci-dessous.
-
Définissez les variables d’environnement
Terminal window PROVIDER=entraENTRA_TENANT_ID=your-tenant-idENTRA_CLIENT_ID=your-client-idENTRA_CLIENT_SECRET=your-client-secret# Stratégie d'organisation (défaut : groups)ENTRA_ORGANIZATION_STRATEGY=groups# Requis uniquement pour ENTRA_ORGANIZATION_STRATEGY=custom_attribute :# ENTRA_ORGANIZATION_ATTRIBUTE_NAME=extension_abc123_organizationId
Stratégies d’organisation
Section titled “Stratégies d’organisation”Entra ID ne dispose pas d’un objet « organisation » natif. AUMS prend en charge deux approches :
Quelle stratégie choisir ?
Section titled “Quelle stratégie choisir ?”Utilisez groups si :
- Votre tenant Entra est un tenant de personnel ou B2B
- Vos organisations client ont déjà des groupes de sécurité Entra
- Vous avez besoin d’un CRUD complet (créer / renommer / supprimer des organisations via AUMS)
- Les utilisateurs peuvent appartenir à plusieurs organisations
Utilisez custom_attribute si :
- Votre tenant Entra est un tenant externe (CIAM)
- Les utilisateurs se sont inscrits via un flux d’inscription ou un fournisseur d’identité social
- Vous stockez un
organizationIdpar utilisateur comme attribut d’extension personnalisé - Vous n’avez pas besoin de créer ou supprimer des organisations via AUMS
Stratégie : groups
Section titled “Stratégie : groups”Chaque groupe de sécurité Entra est traité comme une organisation. AUMS gère l’appartenance aux groupes pour assigner et retirer des utilisateurs des organisations.
Permissions requises : Group.ReadWrite.All, GroupMember.ReadWrite.All
Ce que fait AUMS :
| Opération | Appel API Graph |
|---|---|
| Lister les orgs | GET /v1.0/groups |
| Créer une org | POST /v1.0/groups (groupe de sécurité, sans e-mail) |
| Supprimer une org | DELETE /v1.0/groups/{id} |
| Lister les membres | GET /v1.0/groups/{id}/members |
| Ajouter un membre | POST /v1.0/groups/{id}/members/$ref |
| Retirer un membre | DELETE /v1.0/groups/{id}/members/{userId}/$ref |
Configuration :
ENTRA_ORGANIZATION_STRATEGY=groupsStratégie : custom_attribute
Section titled “Stratégie : custom_attribute”Un attribut d’extension sur chaque profil utilisateur stocke l’identifiant d’organisation de l’utilisateur. AUMS dérive la liste des organisations en collectant les valeurs distinctes non nulles de cet attribut sur tous les utilisateurs.
Permissions requises : User.ReadWrite.All
Ce que fait AUMS :
| Opération | Appel API Graph |
|---|---|
| Lister les orgs | Dérivé de GET /v1.0/users?$select={attr} (toutes les pages) |
| Lister les membres | Filtrage de GET /v1.0/users par valeur d’attribut |
| Assigner un utilisateur | PATCH /v1.0/users/{id} avec { "{attr}": "{orgId}" } |
| Retirer un utilisateur | PATCH /v1.0/users/{id} avec { "{attr}": null } |
| Créer/supprimer une org | ❌ Non supporté — retourne une erreur 405 |
Configuration :
ENTRA_ORGANIZATION_STRATEGY=custom_attributeENTRA_ORGANIZATION_ATTRIBUTE_NAME=extension_abc123def456abc123def456abc12345_organizationIdTrouver le nom de votre attribut d’extension :
Les attributs d’extension enregistrés par b2c-extensions-app suivent le format
extension_{appId sans tirets}_{nomAttribut}. Vous pouvez les lister via :
GET /v1.0/applications/{b2cExtensionsAppObjectId}/extensionPropertiesOu trouvez le nom dans le centre d’administration Entra → Identités externes → Attributs utilisateur personnalisés.
Notes sur la gestion des utilisateurs
Section titled “Notes sur la gestion des utilisateurs”E-mail et UPN
Section titled “E-mail et UPN”Entra ID utilise le userPrincipalName (UPN) comme identifiant de connexion principal. AUMS définit l’UPN sur l’adresse e-mail lors de la création. Le domaine doit être un domaine vérifié dans votre tenant.
Politique de mot de passe
Section titled “Politique de mot de passe”Lors de la création d’un utilisateur sans mot de passe, AUMS génère un mot de passe temporaire aléatoire.
Journaux d’audit
Section titled “Journaux d’audit”Les journaux d’audit exposent les événements de connexion Entra (/v1.0/auditLogs/signIns). Le filtrage par ID utilisateur et plage de dates est pris en charge.
Connexion OIDC (optionnel)
Section titled “Connexion OIDC (optionnel)”Pour protéger le tableau de bord AUMS avec le SSO Entra ID, inscrivez une application séparée :
AUTH_CLIENT_OPENID_CONFIGURATION_URL=https://login.microsoftonline.com/{tenant-id}/v2.0AUTH_CLIENT_ID=your-oidc-app-client-idAUTH_CLIENT_SECRET=your-oidc-app-client-secretAjoutez <BASE_URL>/api/auth/callback/oidc aux URI de redirection de l’application.