Code ouvert
Entra-Credential-Monitor
Chaque locataire Entra ID accumule des inscriptions d’applications, et chaque inscription détient des secrets et des certificats qui expirent. Personne ne s’en aperçoit jusqu’à ce que l’intégration qu’ils alimentent cesse de fonctionner. Ce moniteur s’en aperçoit un mois plus tôt — en lecture seule, tous les mois, et sans rien à exploiter entre-temps.
- 3autorisations Microsoft Graph — toutes en lecture seule
- 0serveurs permanents : l’ordonnanceur d’intégration continue tient lieu de cron
- 189tests — presque une ligne de test par ligne de code
- 9classifications d’échec, chacune avec une action recommandée
Le problème
Un secret client expiré, c’est la panne que personne n’avait prévue — parce que rien ne le surveillait.
Les identifiants d’application sont la plomberie d’un locataire Entra ID : intégrations, démons et pipelines s’authentifient tous avec des secrets et des certificats dont les dates d’expiration ont été fixées des mois ou des années plus tôt, par quelqu’un qui n’est peut-être plus là. Le portail ne vous appellera pas quand l’un d’eux expirera ; l’intégration s’arrête, tout simplement. Nous avons bâti le moniteur pour de vrais environnements clients — et le maintenons en code ouvert, parce que ce problème n’est l’avantage concurrentiel de personne.
Ce que nous avons bâti
Un balayage mensuel en lecture seule qui se conclut par un seul courriel qui vaut la peine d’être lu.
Une fois par mois, le moniteur se connecte à chaque locataire client avec trois autorisations Microsoft Graph en lecture seule et balaie chaque inscription d’application et principal de service à la recherche de secrets clients et de certificats. Chaque identifiant est classé — expirant d’ici trente jours, récemment expiré ou expiré depuis longtemps — et le résultat est un seul courriel qui met en tête ce sur quoi agir. L’historique ancien est plafonné à un court tableau de référence, pour que le rapport reste lisible au lieu de devenir la chose que personne n’ouvre.
Le rapport
Vrai moteur de rendu, données inventées : voici le courriel qu’un technicien reçoit quand des identifiants approchent de l’expiration.

Rendu par le vrai moteur de rendu de courriel du produit avec des données Contoso inventées — les rapports clients portent les identifiants de leurs propres locataires.
Comment ça fonctionne
Aucune infrastructure permanente : pendant quelques minutes par mois, il existe, puis il n’existe plus.
Il n’y a pas de serveur à corriger ni de tableau de bord à oublier : l’ordonnanceur d’intégration continue tient lieu de cron, chaque locataire s’exécute dans sa propre tâche de courte durée (pour qu’un locataire défaillant ne puisse pas cacher le rapport d’un autre), et les secrets sont résolus à l’exécution depuis un coffre — le seul identifiant stocké est un unique jeton de compte de service. Le thème d’ingénierie tout du long est échouer bruyamment, ne jamais feindre un feu vert : les enregistrements Graph malformés sont comptés et rapportés plutôt qu’abandonnés en silence, une date d’expiration illisible est traitée comme critique plutôt que filtrée, et une mauvaise configuration interrompt l’exécution au lieu de réduire discrètement la portée de l’analyse.
Qui surveille le surveillant
Le moniteur s’authentifie avec un identifiant qui expire lui aussi. Il traite sa propre expiration comme la plus importante.
Décisions à souligner
- En lecture seule par construction. Trois autorisations Graph, aucune en écriture. Le rayon d’impact du moniteur lui-même est nul — la posture de moindre privilège que nous exigeons de chaque automatisation.
- Échouer bruyamment, ne jamais feindre un feu vert. Le mode de défaillance dangereux de tout moniteur est un faux « tout va bien ». Chaque chemin qui pourrait réduire la portée de l’analyse en silence — incohérences de schéma, dates illisibles, échecs de pagination, mauvaise configuration — soit apparaît dans le rapport, soit interrompt l’exécution de façon visible.
- Un courriel en échec ne peut pas s’annoncer par courriel. Le chemin d’échec est explicitement empêché d’utiliser le canal qui vient d’échouer — cette alerte va plutôt au sommaire de la tâche et à la minuterie de vigilance.
- Le rapport est conçu, pas un simple gabarit. Le courriel HTML reste sous le seuil de troncature de Gmail — imposé par un test de budget de taille — et s’affiche dans Outlook, qui retire la plupart des styles. La délivrabilité est une propriété d’exactitude.
- Des échecs classifiés avec des conseils pour l’opérateur. Neuf types d’échec, chacun portant une action recommandée — la personne de garde ne devrait jamais avoir à rétro-concevoir ce qui a mal tourné.
Réalisé avec
- TypeScript
- Microsoft Graph