Les principaux de service sont des identités dans EntraID (ex Azure AD) qui vous permettront d’authentifier vos programmes auprès de vos services utilisant Entra ID, comme Microsoft 365, dans un contexte de sécurité maitrisé.
Contexte
Lorsque vous travaillez dans l’écosystème Microsoft dans des outils comme Microsoft 365 ou Azure, vous êtes authentifié par un système nommé Entra ID (Ex Azure Active Directory ou aad).
Cette authentification permet ensuite d’attribuer des autorisations à votre identité.
Cette authentification est individuelle, elle est liée à votre identité dans cet écosystème. Quand vous souhaitez utiliser un programme qui utilise les ressources de cet écosystème, vous devez lui fournir sa propre identité.
Les principaux de service sont utilisés pour donner une identité à vos programmes.
Les bonnes pratiques veulent que vous créer une identité différente par programme et que vous lui attribuiez le minimum d’autorisation nécessaire pour son bon fonctionnement. C’est le principe du moindre privilège.
Si cette identité est compromise, les conséquences seront limitées aux autorisations que vous lui aurez accordées.
N’oubliez pas d’exécuter un programme dans votre contexte de sécurité et la porte ouverte aux problèmes de sécurité.
Comprendre les principaux de services
Si vous souhaitez approfondir votre compréhension des principaux de services, je vous recommande la vidéo Youtube de John Savill, Azure AD App Registrations, Enterprise Apps and Service Principals
Créer un principal de service
Nous allons maintenant créer un principal de service via 2 méthodes distinctes, l’interface Web et la ligne de commande. Les résultats seront les mêmes. La première méthode permet de bien voir l’ensemble des options possibles alors que la seconde est utilisable dans des usages plus complexes.
Via le portail Entra Id
Rendez-vous sur votre portail Entra ID.
- Sélectionnez Applications.
- Sélectionnez Inscriptions des applications.
- Choisissez + Nouvelle inscription.3
- Saisir un nom pour votre principal de service.
- On créer un compte utilisable uniquement dans notre annuaire Entra ID.
- Appuyez sur S’inscrire pour créer votre principal de service.
- L’ID d’application (client) est l’id de votre principal de service, il sera utilisé pour s’authentifier.
- Dans Certificats & secrets vous pouvez gérer le mode d’authentification de votre principal de service, via un secret (mot de passe) ou un certificat.
- Dans API autorisées vous pouvez autorisé votre principal de service à interagir avec les différents composants de votre écosystème.
- Rendez-vous dans Certificats & secrets.
- Sélectionnez + Nouveau secret client.
- Choisissez un nom pour ce secret, si vous ne mettez rien un nom par défaut avec la date sera mis.
- Sélectionnez une durée de vie pour le secret avec un maximum de 24 mois.
- Appuyez sur Ajouter pour créer le secret.
- La valeur de votre secret apparait pour cette fois uniquement.
- Vous pouvez voir la date de fin de validité du secret.
- Vous pouvez supprimer le secret.
Vous pouvez créer plusieurs secrets pour un même principal de service.
Vous devez impérativement copier votre secret dans un endroit sécurisé de type KeyPass. En cas de perte vous ne pourrez pas le retrouver, vous pourrez seulement le supprimer et le recréer.
Je vous conseille de mettre en place une stratégie d’inventaire des principaux de service et de rotation des secrets, de ne pas prendre des durées de vie trop longues, car dans 2 ans vous risquez de ne plus savoir où est utilisé ce service principal jusqu’au moment où une application tombe en panne pour un mot de passe périmé.
- Pour ajouter des autorisations à une API de votre écosystème à votre service principal rendez-vous dans API autorisé.
- Appuyez sur + Ajouter une autorisation.
- Sélectionnez l’API voulu puis le niveau de droit souhaité.
Par exemple pour donner l’autorisation Sites.Selected de Microsoft Graph, sélectionnez Microsoft Graph
- Sélectionner Autorisation d’application.
- Tapez Sites pour filtrer les droits.
- Cochez Sites.Selected.
- Appuyez sur Ajouter des autorisations.
- Certaines autorisations nécessitent un consentement de l’administrateur.
- Cliquez ici pour consentir formellement à l’attribution de l’autorisation. Sans consentement, pas d’autorisation.
Via une ligne de commande
Vous trouverez sur internet un grand nombre de méthodes différentes pour créer un service principal, en 2023, la bonne méthode, celle préconisée par Microsoft est de passer par Microsoft Graph. Toutes autres méthodes risquent de se voir déprécier avant Microsoft Graph.
Pour utiliser Microsoft Graph avec PowerShell, vous devrez installer le SDK. Toutes les informations concernant ce SDK sont sur la page Install the Microsoft Graph PowerShell SDK
Ouvrez une fenêtre en PowerShell Core (version 7) et installez le module Microsoft Graph.
|
|
Connectez-vous avec la ligne de code suivante :
|
|
Une fois la procédure de connexion terminée avec succès vous pouvez créer un principal de service nommé Mon application via PowerShell avec la ligne de commande suivante :
|
|
En sortie de la commande, vous aurez les informations concernant l’application créer.
Pour ajouter un secret et l’afficher, vous pouvez exécuter le script suivant :
|
|
Il existe des versions de ce SDK pour les principaux langages de développement.
Vous savez maintenant créer des identités pour vos programmes.
Merci de votre attention.