Introduction
L'enregistrement d'une application Azure AD, communément appelé Service Principal, est l'une des méthodes préférées pour communiquer avec les services Azure à l'aide d'outils ou de scripts pour les mettre à jour ou les modifier. Les enregistrements d'applications font partie intégrante de la validation de la sécurité, fournissant l'authentification et l'autorisation pour les applications. Les organisations préfèrent souvent utiliser des comptes de service plutôt que des comptes d'utilisateur pour déployer du code à l'aide de CI/CD ou de tout autre outil tiers pour l'intégration avec les ressources Azure. Cette approche garantit la cohérence et la fiabilité en ne construisant les configurations qu'une seule fois et en s'appuyant sur un service géré par l'équipe AAD de l'organisation. En utilisant Service Principal, les organisations peuvent établir une communication sécurisée et efficace entre leurs applications et les services Azure, garantissant ainsi des opérations fluides et le maintien de l'intégrité des données.
Pourquoi est-ce nécessaire ?
Les services Azure ne disposent pas d'une fonction intégrée pour suivre l'expiration des enregistrements d'applications, ce qui peut poser des problèmes avec les intégrations existantes et les méthodes d'autorisation utilisées dans les scripts d'automatisation, les applications fonctionnelles basées sur des déclencheurs et les services qui nécessitent une interaction dans Azure. Sans solution pour surveiller et notifier l'expiration de ces enregistrements AD App, les pipelines DevOps CI/CD peuvent soudainement cesser de fonctionner, entraînant de graves perturbations. Initialement, il existait une option permettant de créer un secret qui n'expirait jamais, mais cette option a été supprimée des paramètres d'enregistrement des applications AD pour des raisons de sécurité, et la date d'expiration peut désormais être fixée à un maximum de 24 mois. Il est crucial pour les organisations de mettre en œuvre une solution de surveillance fiable afin de garantir le fonctionnement continu de leurs services Azure et d'éviter tout risque de sécurité potentiel lié à l'expiration des enregistrements d'applications.
Approches
- Utilisation d'applications logiques et d'applications fonctionnelles
- Utilisation d'outils de surveillance payants
- Utilisation des comptes d'automatisation Azure
Une solution possible consiste à créer une application fonctionnelle qui suit l'expiration des secrets de l'enregistrement de l'application AD, et une application logique qui est déclenchée en fonction de la logique commerciale et notifiée à l'aide d'outils de surveillance. Cependant, l'exécution de plusieurs applications fonctionnelles et logiques peut s'avérer coûteuse.
Une autre option consiste à utiliser des solutions payantes comme la surveillance Serverless 360, qui se charge de notifier l'expiration.
La troisième solution consiste à utiliser des comptes d'automatisation Azure, qui peuvent exécuter des scripts PowerShell en tant que tâches. Pour recevoir des notifications par courriel, nous pouvons utiliser un compte SendGrid (niveau gratuit disponible) sans aucune étape d'intégration supplémentaire avec d'autres ressources. Dans ce blog, nous discuterons de la troisième solution.
Approche simplifiée à l'aide des comptes Azure Automation
Pour suivre l'expiration du secret d'application AD, nous utiliserons PowerShell, des comptes d'automatisation et SendGrid pour la notification.
- Pour commencer, nous devons nous connecter à Azure AD avec l'enregistrement d'une autre application disposant de l'autorisation Global reader. Pour l'authentification, nous utiliserons un certificat X.509 auto-signé au lieu d'un secret.
- Une fois connecté, nous pouvons récupérer une liste de tous les enregistrements d'applications, qui fournira un tableau de tous les enregistrements d'applications, y compris les détails d'expiration de leur secret. Nous pouvons alors comparer ces informations avec la date du jour pour identifier les secrets qui ont expiré, qui vont bientôt expirer ou qui sont encore valides.
- Après avoir collecté les informations nécessaires, nous pouvons utiliser les commandes SendGrid PowerShell API v3 pour envoyer une notification par courrier électronique en utilisant une clé API et un corps HTML.
- Une fois que le script PowerShell est prêt, nous devons le télécharger dans un runbook d'automatisation Azure et le tester en l'exécutant dans le volet Test. L'e-mail envoyé ressemblera à ceci :
Grâce à cette approche, nous pouvons surveiller et gérer de manière proactive les secrets d'application AD, garantissant ainsi le fonctionnement continu de nos services Azure et évitant tout risque de sécurité potentiel lié à des secrets expirés.
Conclusion
L'approche la plus simple et la plus rentable, impliquant les services DevOps, a été décrite ci-dessus. Grâce à cette méthode, nous pouvons établir une tâche de compte d'automatisation pour surveiller et alerter l'équipe de l'expiration des identifiants. Cette approche proactive leur permet de renouveler les identifiants à l'avance, évitant ainsi les perturbations potentielles de dernière minute qui pourraient avoir un impact sur les applications intégrées ou les pipelines.
Avec une expertise dans les plateformes Azure et AWS, eInfochips a mené des initiatives cloud stratégiques telles que la conception et le développement cloud-native, l'architecture monolithique à microservices, et la migration cloud de l'entreprise. Notre équipe se compose de plus de 500 ingénieurs qui soutiennent les projets basés sur Azure/AWS, dont plus de 100 experts certifiés Azure/AWS. En tirant parti de notre expertise en matière de cloud, nous avons eu un impact significatif sur les principaux indicateurs commerciaux de nos clients, tels que la réduction de 50 % du TCO et du TTM, la monétisation de flux de revenus supplémentaires et la mise en place de nouveaux modèles commerciaux.