Skip to main content

Gestion d'utilisateurs Azure Entra ID.

· 6 min read
Chems Eddine Rachdi

Introduction à Terraform pour Azure et Azure DevOps

Dans le monde du développement logiciel et de la gestion d'infrastructures, l'automatisation joue un rôle crucial. Terraform, un outil puissant d'Infrastructure as Code (IaC), se présente comme une solution incontournable pour automatiser la création, la modification et la gestion de l'infrastructure de manière efficace et sécurisée. Spécifiquement pour Azure et Azure DevOps, Terraform offre la flexibilité nécessaire pour gérer non seulement les ressources d'infrastructure mais aussi les utilisateurs et leurs droits, simplifiant ainsi les tâches administratives complexes et répétitives.

Avantages de l'Infrastructure as Code pour la gestion des utilisateurs

L'adoption de Terraform pour gérer les utilisateurs sur Azure présente plusieurs avantages significatifs :

Automatisation et cohérence
Avec Terraform, les équipes peuvent décrire l'infrastructure nécessaire à l'aide de code, permettant une création, une mise à jour et une suppression uniformes des ressources. Cette approche garantit que la configuration des utilisateurs et de leurs droits est cohérente à travers tous les environnements, éliminant les disparités souvent observées avec les méthodes manuelles.

Réduction des erreurs manuelles
En automatisant la création et la gestion des utilisateurs, Terraform réduit considérablement le risque d'erreurs humaines, telles que les oublis ou les configurations incorrectes. Cela contribue à une infrastructure plus sûre et plus fiable.

Versioning et traçabilité
La gestion de la configuration en tant que code permet de versionner facilement les définitions de l'infrastructure, offrant une traçabilité complète des modifications et la possibilité de revenir à des versions antérieures en cas d'erreur ou de besoin de restauration.

Stratégie de Gestion des Utilisateurs via Terraform

La gestion des utilisateurs et de leurs droits peut s'avérer complexe, surtout à grande échelle. Terraform simplifie cette gestion en permettant de définir ces utilisateurs et leurs droits au sein de votre code, offrant ainsi une approche déclarative et reproductible. Vous pouvez ainsi créer, mettre à jour et supprimer des utilisateurs dans Azure et Azure DevOps, en gérant efficacement leurs droits d'accès à travers des groupes Azure, le tout versionné et sous contrôle de source.

Gestion Évolutive et Automatisée

Avec l'augmentation de la complexité et de la taille des environnements Azure, la gestion manuelle des utilisateurs et des droits devient impraticable. L'adoption de Terraform pour cette gestion permet non seulement une mise en œuvre plus rapide mais aussi une approche scalable et automatisée, capable de s'adapter aux évolutions futures des besoins organisationnels.

Préparation des Données Utilisateurs

La première étape dans la création des utilisateurs sur Microsoft Entra ID consiste à configurer leur profil. Il est possible de fournir simplement les informations de base requises telles que le nom, prénom, email et mot de passe pour chaque compte. Cependant, Entra ID offre également la flexibilité d'ajouter des détails supplémentaires tels que le nom de l'entreprise (Company name) ou la date d'embauche (Employee hire date), qui sont des attributs standard pris en charge par la plateforme. En outre, pour une personnalisation plus poussée, il est possible de créer des attributs personnalisés via entra.microsoft.com, tels que la date d'expiration des comptes Azure. Ce paramètre n'est pas disponible nativement et permet de gérer la durée de vie des comptes de manière efficace. Cette approche modulable permet d'adapter précisément les comptes utilisateurs en fonction de leurs rôles spécifiques et des exigences de l'environnement de travail.

Création de custom security attributes

Pour configurer des attributs de sécurité personnalisés, commencez par naviguer sur le site entra.microsoft.com. Dirigez-vous ensuite vers la section Protection, puis cliquez sur Custom security attributes. Sur cette interface, vous avez la possibilité de créer des ensembles d'attributs, chaque ensemble pouvant contenir jusqu'à 25 attributs.

Après avoir créé un ensemble d'attributs, vous pouvez ajouter des attributs individuels en spécifiant un nom, une description, un type (String, Boolean ou Integer), et en configurant deux paramètres booléens : Allow multiple values to be assigned et Only allow predefined values to be assigned. Si vous activez ce dernier paramètre, vous pourrez également définir une liste de valeurs prédéfinies parmi lesquelles l'utilisateur pourra choisir.

alt text

Attribution des custom security attributes

Une fois les attributes créés, vous pouvez vous diriger sur Microsoft Entra ID, sur les utilisateurs vous trouverez sous la partie Manage les custom security attributes que vous pouvez spécifier a chaque utilisateur. Vous pouvez également automatiser ce process en utilisant un script powershell (par exemple lors de la création du user)

alt text

Génération des mots de passe sécurisés

La sécurité des comptes est une priorité absolue lors de leur création. Pour cela, nous utilisons la ressource random_password de Terraform afin de générer des mots de passe aléatoires et robustes pour chaque utilisateur. Ces mots de passe sont conformes aux critères stricts de sécurité, incluant la longueur et l'inclusion de caractères spéciaux. Cette méthode garantit que chaque compte est sécurisé dès le départ.

resource "random_password" "generate" {
count = length(local.users)
length = 16
special = false
upper = true
lower = true
numeric = true
min_upper = 1
min_lower = 1
min_numeric = 1
}

Il est également possible de transmettre de manière sécurisée les identifiants (email et mot de passe) aux nouveaux utilisateurs. Ceci est réalisé en définissant les identifiants comme sorties (outputs) de Terraform, puis en les intégrant à un script qui automatise l'envoi de ces informations par email aux nouveaux utilisateurs.

Gestion des droits utilisateurs via les groupes Microsoft Entra ID

Création et gestion des groupes

Terraform simplifie la création de groupes dans Microsoft Entra ID, permettant aux administrateurs de regrouper les utilisateurs selon leurs rôles et responsabilités. Cette structuration facilite l'attribution de droits d'accès adaptés, assurant que seules les personnes autorisées aient accès aux ressources critiques.

Attribution des droits

Plutôt que d'attribuer des droits individuellement, ce qui peut être fastidieux et sujet à erreur, Terraform permet d'associer des droits d'accès aux groupes. Ainsi, en ajoutant un utilisateur à un groupe, il hérite automatiquement des droits associés, rationalisant la gestion des accès.

resource "azuread_group" "example" {
name = "my-example-group"
}

resource "azuread_group_member" "example" {
group_object_id = azuread_group.example.object_id
member_object_id = azuread_user.example.object_id
}

data "azurerm_subscription" "current-subscription" {
}

resource "azurerm_role_assignment" "example" {
scope = data.azurerm_subscription.primary.id
role_definition_name = "Contributor"
principal_id = azuread_group.example.object_id
}

Ce simple exemple de code Terraform illustre comment créer un groupe Microsoft Entra ID, y ajouter un utilisateur, puis attribuer le rôle de Contributor au groupe sur la souscription actuelle. En appliquant cette méthode à différents environnements et groupes, vous établissez une gestion des droits qui est à la fois flexible et sécurisée.

Automatisation des tâches post-création des utilisateurs

Envoi d'emails de bienvenue

Une fois un utilisateur créé et configuré, Terraform peut déclencher des scripts pour envoyer automatiquement un email de bienvenue. Cela améliore l'expérience utilisateur en fournissant immédiatement les informations nécessaires pour accéder aux ressources cloud.

Gestion de l'expiration des comptes

Vous pouvez également mettre en place un script qui s'exécute de manière hebdomadaire pour contrôler la date d'expiration des comptes utilisateurs. Une fois cette date atteinte, le script procédera automatiquement à la désactivation des comptes concernés. Cette automatisation assure une gestion efficace et sécurisée des accès en retirant les droits aux utilisateurs dont les comptes ont expiré.