Service Principal VS Managed Identity
Def :
Qu'est ce qu'un service principal ? Qu'est-ce qu'une Managed Identity ?
Managed Identity :
C'est une fonctionnalité d'Azure qui fourni une identité à un service dans le but de simplifier la gestion des secrets. Il existe deux types de managed identities :
- System-assigned : par défaut lors de la création de certaines ressources Azure comme les VMs, lors de la destruction de la ressource, l'identité est aussi détruite
- User-assigned : cette identité est créée de manière indépendante, ce qui permet à plusieurs ressources de partager une seule identité assignée
Une identité permet par exemple d'éviter de mettre des Creds dans du code en gérant les permissions de manière extérieure.
Alors, comment accéder à des ressources ?
Simplement avec les rôles RBAC de la managed identity, il est possible d'accéder à certaines ressources.
Service Principal :
Un service principal est indépendant (similaire à user-assigned), mais permet d'accéder à des ressources hors Azure, en s'authentifiant à d'autres services Microsoft comme le devops et autres.
Le but est la encore de réduire le besoin de stocker les mots de passe en clair dans du code et des configs.
Utilité et fonctionnement :
Comment créer et utiliser une managed identity :
Cas 1 : logic App to Key Vault
Dans cet exemple on créé un User-assigned managed identity, de lui donner l'autorisation de lire les secrets d'un key vault puis de donner comme authorisaiton à la logic app celles de la managed identity :
1. Key Vault :
puis on crée notre Key Vault avec un secret dedans :
Il est nécessaire de changer le mode d'attribution des droits du vault pour la suite :
2. Managed identity :
On créé notre user-assigned managed identity :
Une fois notre managed identity créée il faut que l'on ajoute le droit à celle-ci d'accéder aux secrets dans le key vault, on va donc dans key vault -> Access Policies -> create -> secret permissions
:
On choisit ensuite notre managed identity :
c'est tout bon désormais :
3. Logic App :
Enfin on créé notre logic App :
il faut maintenant qu'on change son type de permission en User-assigned :
puis :
On a donc bien ajouté notre managed identity à notre ressource :
Notre logic app peut donc récupérer des secrets depuis le key vault grâce à la managed identity.
Cas 2 :
On va voir comment attribuer des rôles à notre Managed identity
Cas 3 : Créer un service principal
Pour créer un service principal il faut se rendre dans : MEID -> add -> app registration
A partir de ce moment le service principal est créé mais il nous faut rajouter des permissions :
https://learn.microsoft.com/en-us/entra/identity-platform/howto-create-service-principal-portal