Repository navigation
Connexion Microsoft
La connexion unique est facultative. Sans elle, l'application fonctionne avec ses comptes locaux. Une fois activée, la page de connexion affiche un bouton « Se connecter avec Microsoft » à côté du formulaire habituel : le mot de passe local reste toujours possible, par exemple pour un compte de secours.
Elle se règle depuis la console d'administration (onglet « Connexion unique ») ou en ligne de commande (gestion-mep sso), sans modifier .env ni redémarrer. Microsoft Entra ID est préréglé ; tout autre fournisseur OpenID Connect (Okta, Google Workspace, Keycloak, ADFS récent…) se règle de la même façon.
- Un administrateur de l'annuaire Microsoft Entra de l'entreprise, pour inscrire l'application (une seule fois).
- L'application servie en HTTPS derrière le proxy inverse. Microsoft n'accepte une adresse de retour en HTTP que pour
localhost. - Un accès sortant du serveur vers
https://login.microsoftonline.com(directement ou par le proxy sortant de l'entreprise).
L'adresse de retour exacte est affichée dans la console (onglet « Connexion unique ») et par gestion-mep sso afficher. Elle a la forme :
https://mep.entreprise.fr/connexion-sso/retour
Si l'adresse affichée n'est pas l'adresse publique (proxy qui réécrit l'hôte), la régler dans la console (onglet Paramètres, « Adresse publique »), par gestion-mep reglages definir url-publique https://mep.entreprise.fr, ou par URL_PUBLIQUE dans .env (voir Installer).
Dans le portail Entra (entra.microsoft.com) :
- Inscriptions d'applications › Nouvelle inscription. Nom : « Gestion MEP ». Types de comptes : comptes de cet annuaire organisationnel uniquement.
- URI de redirection : plateforme Web, coller l'adresse de retour. Enregistrer.
- Certificats et secrets › Nouveau secret client. Copier la Valeur (pas l'ID du secret) et noter la date d'expiration.
- Vue d'ensemble : copier l'ID de l'annuaire (locataire) et l'ID d'application (client).
- Facultatif, pour donner le rôle administrateur depuis Entra : Rôles d'application › Créer un rôle d'application (par exemple valeur
MEP.Admin, membres autorisés : utilisateurs/groupes), puis dans Applications d'entreprise › Gestion MEP › Utilisateurs et groupes, attribuer ce rôle aux administrateurs.
Aucune permission d'API supplémentaire n'est nécessaire : l'application ne lit que l'identité de la personne (nom, identifiant, rôles).
Console d'administration › onglet Connexion unique :
- Saisir l'ID de l'annuaire, l'ID d'application, le secret et sa date d'expiration. Enregistrer.
- Tester : l'application vérifie que Microsoft connaît l'annuaire, l'application et le secret, sans connecter personne.
- Activer. Le bouton apparaît aussitôt sur la page de connexion.
docker compose exec app gestion-mep sso afficher # réglages et adresse de retour
# Le secret est lu sur l'entrée standard : il ne reste ni dans l'historique ni dans la liste des processus.
docker compose exec -T app gestion-mep sso configurer \
--annuaire 72f988bf-0000-0000-0000-000000000000 \
--client 3f2a1b4c-0000-0000-0000-000000000000 \
--expiration 2027-04-01 \
--secret-stdin < secret.txt
docker compose exec app gestion-mep sso tester # code 1 si une vérification échoue
docker compose exec app gestion-mep sso activerSans redirection, --secret-stdin demande le secret au clavier sans l'afficher (docker compose exec app …, sans -T). sso configurer ne change que les options données. Autres options :
| Option | Rôle |
|---|---|
--emetteur <url> |
Autre fournisseur OpenID Connect : adresse https de l'émetteur, à la place de --annuaire. |
--role-admin <valeur> |
Rôle d'application qui donne le rôle administrateur (aucun pour revenir à une gestion dans l'application). |
--creation-auto oui|non |
Créer le compte à la première connexion (défaut oui). |
--libelle "texte" |
Texte du bouton de la page de connexion. |
--expiration aucune |
Retire la date d'expiration du secret. |
gestion-mep sso desactiver retire le bouton (les liaisons sont conservées). gestion-mep sso comptes liste les comptes reliés, gestion-mep sso delier <login> supprime une liaison. gestion-mep config verifier signale une connexion unique active mais inutilisable, et un secret qui expire dans moins de 30 jours.
- À la première connexion par Microsoft, le compte est créé (identifiant = adresse Microsoft de la personne, sans mot de passe). Avec « Créer le compte à la première connexion » décoché (
--creation-auto non), seuls les comptes déjà reliés peuvent entrer. Le compte créé prend le nom donné par Microsoft ; si ce nom est déjà le nom affiché ou l'identifiant d'un autre compte (deux « Dana Martin »), la première connexion est refusée et inscrite au journal d'administration (« Première connexion unique refusée »), au lieu de créer un second compte au même nom. Un administrateur crée alors le compte sous un nom qui distingue la personne (« Dana Martin (Lyon) »), qu'elle relie ensuite à Microsoft depuis « Mon profil ». - Un compte reste relié à la personne par l'identifiant immuable que Microsoft lui donne dans l'annuaire, jamais par l'adresse mail : un changement de nom ou d'adresse ne casse rien, et personne ne peut prendre un compte en obtenant la même adresse ailleurs.
- Un compte local existant (créé avant le SSO) se relie par la personne elle-même : connectée avec son mot de passe, « Mon profil › Connexion unique › Lier mon compte ». Si elle passe directement par le bouton Microsoft, la connexion est refusée tant qu'un compte local porte déjà son identifiant, avec la marche à suivre.
-
Rôle administrateur : sans rôle d'application réglé, il se gère dans l'onglet Comptes, comme pour un compte local. Avec un rôle réglé (
MEP.Admin), il est relu à chaque connexion par Microsoft : présent, la personne devient administrateur ; absent, elle ne l'est plus. Le dernier administrateur actif garde toujours son rôle. - Désactiver un compte dans l'application bloque aussi sa connexion par Microsoft. Supprimer la personne de l'annuaire Entra l'empêche de se connecter par Microsoft ; pensez à désactiver aussi son compte dans l'application s'il a un mot de passe.
Si la session prend fin pendant le travail, le dialogue « Session expirée » propose aussi le bouton Microsoft. Les saisies non enregistrées de la page sont copiées dans l'onglet du navigateur (stockage de session, effacé à sa fermeture, gardé une heure au plus), puis le navigateur passe par Microsoft et revient sur la même page, où chaque formulaire reprend sa saisie. De même, un lien ouvert sans session rouvre sa page après la connexion par Microsoft.
- Flux OpenID Connect « code d'autorisation » avec PKCE ; jeton d'identité vérifié (émetteur, audience, signature, nonce). L'annuaire est celui de l'entreprise :
commonouorganizations, qui ouvriraient l'application à tous les comptes Microsoft, sont refusés. - Le secret client est chiffré en base avec les clés de l'application (volume
cles) et n'est jamais renvoyé par l'API ni affiché. - Le secret appartient à une application d'un annuaire : changer l'ID de l'annuaire, l'émetteur ou l'ID d'application efface l'ancien secret, qu'il faut saisir de nouveau (celui de la nouvelle application). Ainsi, il ne peut jamais être envoyé à un autre fournisseur. Le test ne l'envoie qu'à un point de jeton en https, et pour Microsoft, uniquement sur
login.microsoftonline.com. - Après une restauration sur une autre machine (autres clés), le secret devient illisible : la console et
gestion-mep sso afficherle signalent, il suffit de le saisir de nouveau. - Chaque réglage, activation, liaison et compte créé par Microsoft est inscrit dans le journal d'administration.
Un secret Entra expire (6 mois à 2 ans). La console prévient 30 jours avant la date saisie. Créer un nouveau secret dans Entra, puis :
docker compose exec -T app gestion-mep sso configurer --expiration 2028-04-01 --secret-stdin < nouveau-secret.txt
docker compose exec app gestion-mep sso testerou le saisir dans la console. Supprimer ensuite l'ancien secret dans Entra.
| Message | Cause et solution |
|---|---|
| « Secret refusé : copiez la Valeur du secret » | L'ID du secret a été copié à la place de sa valeur. |
| « Application introuvable dans cet annuaire » | ID d'application erroné, ou application inscrite dans un autre annuaire. |
| « Microsoft ne connaît pas cet annuaire » | ID de l'annuaire erroné. |
| « Injoignable depuis le serveur » | Pas d'accès sortant vers login.microsoftonline.com : ouvrir le flux ou régler le proxy sortant (HTTPS_PROXY). |
| Microsoft affiche « AADSTS50011 : redirect URI mismatch » | L'adresse de retour déclarée dans Entra diffère de celle affichée par la console : la recopier exactement, ou définir URL_PUBLIQUE. |
| « Un compte local porte déjà cet identifiant » | Se connecter avec son mot de passe, puis lier son compte depuis « Mon profil ». |
| « Un autre compte porte déjà le nom donné par Microsoft » | Homonyme : créer le compte dans la console sous un nom qui distingue la personne ; elle s'y connecte avec son mot de passe provisoire, puis lie son compte depuis « Mon profil ». Le refus est au journal d'administration. |
Prise en main
Utiliser
Installer et exploiter
Contribuer
Référence