Aller au contenu
Home » Blog » Azure DevOps : worload identity federation service connection

Azure DevOps : worload identity federation service connection

Dans ce billet de blog, nous allons nous intéresser à la création des services connections dans Azure DevOps en utilisant la fédération d’identité des charges de travail (Workload Identity Federation).

Qu’est-ce qu’un service connection Azure DevOps ?

Même si la majorité des lecteurs de ce blog savent ce qu’est un service connection, je vais prendre quelques instants pour définir un service connection Azure DevOps.

Un service connection dans Azure DevOps est une ressource qui permet à Azure DevOps de se connecter à des services externes ou à des ressources Azure pour effectuer des opérations telles que le déploiement, la gestion des pipelines, ou l’accès à des ressources cloud. Il s’agit essentiellement d’un ensemble de paramètres d’authentification et de configuration qui permet à Azure DevOps d’interagir avec ces services de manière sécurisée et automatisée. Ces connexions peuvent être utilisées dans les pipelines Azure DevOps pour déclencher des tâches telles que le déploiement d’applications, la gestion des infrastructures, ou l’exécution de tests, offrant ainsi une intégration fluide entre Azure DevOps et d’autres outils ou services cloud.

On peut donc utiliser un service connection pour s’authentifier et effectuer des opérations dans GitHub, Microsoft Azure, Amazon Web Services, SonarCloud, etc.

Service connection Azure avec l’approche service principal

Il y’a de cela quelques semaines, l’approche recommandée par Microsoft pour créer un service connection Azure était l’utilisation du service principal avec un secret ou un certificat. Cette approche présentait plusieurs limites, notamment en ce qui concerne la gestion des secrets :

  • Sécurité insuffisante : Les mots de passe et les secrets sont des informations sensibles qui peuvent être exposées en cas de mauvaise configuration ou de fuite accidentelle. Si ces informations tombent entre de mauvaises mains, elles peuvent être utilisées pour accéder de manière non autorisée aux ressources connectées, compromettant ainsi la sécurité de l’environnement.
  • Gestion des secrets : La gestion des secrets peut devenir complexe à mesure que le nombre de service connections augmente. Il devient difficile de maintenir et de gérer efficacement les différents mots de passe et secrets, ce qui peut entraîner des erreurs de configuration et des risques de sécurité accrus.
  • Rotation des secrets : Les mots de passe et les secrets doivent être régulièrement tournés pour réduire les risques de compromission. Cependant, la rotation des secrets peut être un processus fastidieux et propice aux erreurs, en particulier dans les environnements où de nombreux service connections sont utilisés. Pour certains de mes clients, fréquemment on se rendait compte que le secret avait expiré lorsqu’on voulait exécuter le pipeline. Il fallait contacter la sécurité pour générer un nouveau secret et effectuer les configurations. Ce qui pouvait prendre un certain temps.

Service connection Workload Identity Federation

La fonctionnalité de fédération d’identité des charges de travail pour les connexions de service Azure constitue une avancée significative dans la sécurisation et la gestion des déploiements dans Azure DevOps.

En éliminant la nécessité de stocker des secrets sensibles et de les faire pivoter régulièrement, cette solution simplifie considérablement la gestion des connexions de service, tout en renforçant la sécurité des environnements de production. En utilisant la norme industrielle Open ID Connect (OIDC), la fédération d’identité des charges de travail assure une authentification robuste entre Azure Pipelines et Azure, tout en évitant les risques associés à la gestion des secrets partagés.

Créer un service connection avec l’approche Workload Identity Federation (automatic)

L’option de création d’un service connection automatique permet, pour ceux qui ont suffisamment de privilèges sur l’abonnement Azure et Microsoft Entra ID, de laisser Azure DevOps créer et configurer le service connection.

Vous devez simplement sélectionner l’abonnement et renseigner le nom du service connection.

En arrière-plan, un service principal est créé dans Microsoft Entra ID et les droits de contributeur sont donnés sur l’abonnement.

Créer un service connection avec l’approche Workload Identity Federation (manuel)

Pour utiliser cette approche, vous devez disposer/créer au préalable un service principal dans Microsoft Entra ID et attribuer les permissions nécessaires dans Azure.

Cette option est utilisée lorsque :

  • Vous souhaitez contrôler les permissions/le scope du service principal;
  • Vous n’avez pas les autorisations nécessaires pour créer et configurer le service principal

Lorsque vous utilisez cette option, vous devez renseigner le nom du service connection et la description s’il y’a lieu :

En cliquant sur « Next », la fenêtre qui va suivre permettra de configurer le Service Principal.

Vous devez copier les valeurs des champs :

  • Issuer
  • Subject identifier

Vous devez ensuite :

  • Vous rendre sur la page de l’inscription d’application dans Microsoft Entra ID
  • Cliquer dans le menu sur Certificats et secrets.
  • Aller sur l’onglet « Information d’identification fédérée »
  • ET cliquer sur « Ajouter des justicatifs »

Dans la page qui s’afficher, vous devez :

  • Dans la liste déroulante « Scénario d’information d’identification fédérées », sélectionner « Autre Émetteur »
  • Dans émetteur, mettre l’information copiée du champ Issuer dans Azure DevOPs
  • Dans Identificateur de l’objet, mettre l’information copiée du champ « Subject identifier » dans Azure DevOps
  • Renseignez le Nom, puis une description s’il y’a lieu
  • Cliquez sur Ajouter pour terminer

Vous devez ensuite revenir dans Azure DevOps et finaliser la configuration en renseignant :

  • L’identifiant de l’abonnement Azure sur lequel le Service Principal a les droits
  •  Le nom de l’abonnement
  • Le cliend ID du Service Principal
  • Le tenant ID du répertoire Microsoft Entra ID

Il ne reste plus qu’à cliquer sur Verify and save pour terminer la configuration.

Vous pouvez consulter ma capsule vidéo sur YouTube pour voir pas à pas comment effectuer la configuration : https://www.youtube.com/watch?v=wWT2MYetX8c

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *