Aperçu : Autorisation basée sur un certificat

Il existe plusieurs façons de s’authentifier par programmation avec Microsoft Azure. La méthode la plus courante utilise un « jeton d’accès » (Access token) dans le cadre des techniques d’authentification modernes. Le jeton d’accès permet à itrezzo Unified Contact Manager (UCM) d’accéder aux ressources Azure. Cependant, la durée de vie d’un « jeton d’accès » est de 90 jours (environ 3 mois) et doit être renouvelée régulièrement. Après expiration, le jeton doit être mis à jour par une connexion interactive au portail Azure. L’autorisation basée sur des certificats est une autre méthode d’accès aux ressources Azure à l’aide d’identités basées sur des certificats. Dans de nombreux cas, on le préférera à l’authentification moderne. La justification principale est que l’authentification de base est obsolète lors de la programmation de PowerShell. Ainsi, la seule option viable est l’authentification basée sur les certificats. Même lors de l’utilisation de l’API Microsoft Graph, il existe un avantage supplémentaire en ce sens que le «jeton d’actualisation» (Refresh Token) ne nécessite pas d’intervention humaine à chaque fois qu’un jeton d’actualisation expire.

Comment fonctionne l’authentification basée sur les certificats ?

Le certificat est généralement téléchargé sur le portail Azure et chaque fois que nous accédons à la ressource Azure, nous utilisons le certificat pour générer un jeton d’accès. Ainsi, le certificat remplace le « jeton d’actualisation » (Refresh Token) dans le flux OAuth. Les étapes suivantes décrivent ce qui doit être fait pour configurer l’autorisation basée sur un certificat :

  1. Créez votre certificat et préparez deux fichiers : un fichier certificat sans clé privée et le second avec une clé privée
  2. Créez une application sur le portail Azure dans votre tenant
  3. Configurez votre application créée comme suit :
  • Attribuez des autorisations d’API permettant à l’application d’accéder aux ressources cibles
  • Attribuez un certificat sans clé privée à l’application créée
  • Créez une entrée Principal de service sur Azure Active Directory et attribuez cette entrée à l’application. Cette entrée sera utilisée comme utilisateur d’accès lors de la connexion aux ressources Azure via une autorisation basée sur un certificat
  • Attribuez les autorisations nécessaires à l’entrée Principal de service créée
  • Acceptez les autorisations d’administrateur pour l’application créée

Une fois ces étapes terminées, nous pouvons utiliser l’authentification par certificat avec une clé privée pour obtenir un « Jeton d’accès » (Access Token) dans le flux OAuth.

Configuration avec itrezzo

Cette section explique comment configurer l’autorisation basée sur un certificat avec l’application itrezzo. Notez que toutes les méthodes nécessiteront un accès d’Administrateur Général dans le tenant d’Azure et les informations d’identification seront utilisées uniquement pour un processus de configuration à la fois. itrezzo ne sauvegardera jamais ces informations.

Nomination des entrées qui seront créées par Itrezzo du côté d’Azure :

Itrezzo – autorisation basée sur un certificat – ([Itrezzo service mailbox])

Itrezzo propose deux méthodes pour configurer l’autorisation basée sur les certificats :

  1. La méthode automatique – cette méthode permet aux utilisateurs de configurer toutes les étapes nécessaires avec une implication minimale de l’utilisateur. Cependant, cette méthode nécessite plus d’autorisations qui doivent être acceptées depuis l’application itrezzo.
  2. La méthode manuelle – cette méthode contrôle toutes les étapes qui seront effectuées au portail Azure et nécessite moins d’autorisations, mais plus d’autorisations de la part de l’utilisateur final via le portail azur et les scripts PowerShell.

Autorisation basée sur certificat avec itrezzo UCM : la méthode automatique

Cette méthode nécessite les autorisations suivantes :

  1. « Application.ReadWrite.All » – requis pour créer des applications dans le tenant Azure
  2. « Directory.ReadWrite.All » – requis pour créer un Service Principal Entry
  3. « Organization.ReadWrite.All » – requis pour accéder aux informations d’une organisation
  4. « RoleManagement.ReadWrite.Directory » – requis pour créer des rôles pour le Service Principal

Toutes ces autorisations nécessitent l’option « Write » qui permet à itrezzo de créer de nouvelles entrées au sein du tenant Azure.

User flow (Flux d’utilisateurs)

1. Créez un certificat manuellement ou automatiquement avec itrezzo

Créer un certificat avec itrezzo

2. Sélectionnez la méthode de configuration automatique.

Sélection de la méthode de configuration automatique

3. Entrez vos informations d’identification d’administrateur général dans le formulaire de connexion à Microsoft

Saisie de vos informations d'identification d'administrateur général

4. Acceptez les autorisations nécessaires décrites ci-dessous.

Accepter les autorisations nécessaires

5. Exécutez le processus de configuration et attendez qu’il soit terminé.

Exécution du processus de configuration

6. Acceptez les autorisations d’administrateur pour l’application créée.

Accepter les autorisations d'administrateur

Autorisation basée sur un certificat avec itrezzo UCM : la méthode manuelle

La méthode manuelle nécessite les autorisations suivantes :

  • « Application.Read.All » – requise pour trouver l’application
  • « Organization.Read.All » – requise pour lire les informations de l’organisation

Toutes ces autorisations ne nécessitent qu’une option « Lire » (Read) car itrezzo doit lire les informations sur l’application configurée manuellement et les enregistrer dans la base de données itrezzo

Flux d’utilisateurs

1. Créez un certificat manuellement ou automatiquement avec itrezzo.

Créer un certificat avec itrezzo

2. Sélectionnez une méthode de configuration manuelle

Sélection d'une méthode de configuration manuelle

3. Exécutez le script PowerShell qui sera fourni par l’application itrezzo. Vous pouvez trouver un exemple de ce script dans Appendix 1 à la fin de ce document.

Exécutez le script PowerShell

4.

Windows PowerShell ISE

5. Entrez vos identifiants d’administrateur général dans le formulaire de connexion à Microsoft.

Saisie de vos informations d'identification d'administrateur général

6. Acceptez les autorisations nécessaires décrites ci-dessous.

IMPORTANT: Ne cochez PAS la case “Consent on behalf of your organization.”

Accepter les autorisations nécessaires

IMPORTANT: Ne cochez PAS la case “Consent on behalf of your organization.”

chargement de l'administrateur itrezzo

7. Exécutez le processus de configuration d’itrezzo. Au cours de cette étape, itrezzo se connectera au portail Azure, trouvera l’application créée et enregistrera les modifications dans la base de données.

Exécution du processus de configuration d'itrezzo

8. Acceptez les autorisations d’administrateur pour l’application créée.

Autorisation basée sur certificat avec itrezzo UCM : configuration du portail Azure

  1. Créez une application dans votre tenant avec le nom Itrezzo – certificate-based authorization – ([Itrezzo service mailbox]).

Configuration d'itrezzo avec autorisation basée sur un certificat

Configuration d'itrezzo avec autorisation basée sur un certificat

2. Attribuez le certificat à cette application

Attribuer le certificat

3. Configurez les autorisations d’API pour l’application.

Configuration des autorisations d'API

4. Créez l’entité Principal de service et affectez-la à l’application.

Affectation de l'entité Principal de service

dernières étapes

Annexe 1

Vous trouverez ci-dessous un exemple de script PowerShell pour configurer l’autorisation basée sur un certificat.

Ceci n’est qu’un exemple de script. Un script personnalisé sera fourni par itrezzo, spécifiquement pour votre environnement, lors du processus de configuration.

Script PowerShell pour configurer l'autorisation basée sur un certificat

Script PowerShell pour configurer l'autorisation basée sur un certificat

Script PowerShell pour configurer l'autorisation basée sur un certificat