Configurer l’authentification basée sur certificat ou l’authentification par application uniquement

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 6 minutes de lecture
  • Une intégration initiale est requise pour l’authentification à l’aide d’objets d’application. Application et Principal de service sont utilisés de manière interchangeable, mais une application est semblable à un objet de classe tandis qu’un principal de service est semblable à une instance de la classe.

    Pour plus d’informations sur les objets principaux d’application et de service dans Azure Active Directory, consultez Objets principaux d’application et de service dans Azure Active Directory. Pour obtenir un flux visuel détaillé sur la création d’applications dans Azure AD, consultez Créer une application Azure Active Directory et un principal de service pouvant accéder aux ressources.

    Pour configurer l’authentification basée sur certificat ou l’authentification via l’application uniquement, procédez comme suit :
    1. Enregistrez l’application dans Azure AD.
    2. Affectez des autorisations d’API à l’application.

      Pour que l’objet d’application ait accès aux ressources, il doit disposer de l’autorisation d’application Exchange.ManageAsApp et Mail.ReadWrite.

    3. Générez un certificat auto-signé et accordez l’accès à la clé privée.

      Créez et configurez un certificat X.509 auto-signé, qui est utilisé pour authentifier votre application auprès d’Azure AD, tout en demandant le jeton d’accès de l’application uniquement. Les certificats de nouvelle génération (CNG) ne sont pas pris en charge pour l’authentification d’application uniquement avec Exchange. Les certificats GNC sont créés par défaut dans les versions modernes de Windows. Vous devez utiliser un certificat provenant d’un fournisseur de clé CSP. (-provider = 'Fournisseur de chiffrement fort de Microsoft').

    4. Joignez le certificat à l’application Azure AD.
    5. Affectez des rôles Azure AD à l’application.

      Le rôle Azure AD d’administrateur de conformité doit être affecté à l’application.

    6. Créez un nouveau principal de service.

    Étape 1 : enregistrer l’application dans Azure AD

    1. Ouvrez le portail Azure AD.
    2. Dans la zone de recherche en haut de la page, tapez Inscriptions d’application.
    3. Sélectionnez Inscriptions d’applications dans les résultats de la section Services.

      Vous pouvez également accéder à la page Inscriptions de l’application à l’aide de https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade.

    4. Sur la page Inscriptions de l’application , sélectionnez Nouvelle inscription.
    5. Sur la pageEnregistrer une application , configurez les paramètres suivants :
      Champ Description
      Nom Entrez quelque chose de descriptif. Par exemple, ExO PowerShell CBA.
      Types de compte pris en charge Vérifiez que seuls les comptes de ce répertoire organisationnel (<VotreNomOrganisation> uniquement : locataire unique) sont sélectionnés.

      Pour rendre l’application mutualisée pour les scénarios délégués Exchange Online, sélectionnez la valeur Comptes dans n’importe quel répertoire d’organisation (Tout répertoire Azure AD : mutualisé).

    6. Une fois l’inscription de l’application terminée, sélectionnez S’inscrire et fermez la page de l’application.

    Étape 2 : attribuer des autorisations d’API à l’application

    Les procédures décrites dans cette section remplacent les autorisations par défaut qui ont été automatiquement configurées pour la nouvelle application. L’application n’a pas besoin des autorisations par défaut qui ont été remplacées.

    1. Sur la page de l’application, sélectionnez Manifeste sous Gestion .
    2. Dans la page Manifeste, recherchez l’entrée requiredResourceAccess (à la ligne 47 ou environ).
    3. Modifiez les valeurs resourceAppId, resourceAccess ID et resourceAccess type comme indiqué dans l’extrait de code suivant :
      "requiredResourceAccess": [
      		{
      			"resourceAppId": "00000002-0000-0ff1-ce00-000000000000",
      			"resourceAccess": [
      				{
      					"id": "dc50a0fb-09a3-484d-be87-e023b12c6440",
      					"type": "Role"
      				}
      			]
      		},
      		{
      			"resourceAppId": "00000003-0000-0000-c000-000000000000",
      			"resourceAccess": [
      				{
      					"id": "e2a3a72e-5f79-4c64-b1b1-878b674786c9",
      					"type": "Role"
      				}
      			]
      		}
      	],
    4. Sélectionnez Enregistrer.
    5. Sur la page Manifest , sélectionnez Autorisations d’API sous Gestion.
    6. Sur la page des autorisations d’API , renseignez les champs.
      Champ Description
      Nom API/autorisations Vérifiez que la valeur Exchange.ManageAsApp and Mail.ReadWrite s’affiche.
      Statut La valeur incorrecte actuelle n’est pas accordée pour <Organisation> et cette valeur doit être modifiée.

      Sélectionnez Accorder le consentement administrateur pour <Organisation>, lisez la boîte de dialogue de confirmation qui s’ouvre, puis sélectionnez Oui.

      La valeur État doit maintenant être Accordée pour <Organisation>.

    7. Fermez la page des autorisations d’API actuelle (et non l’onglet du navigateur) pour revenir à la page des inscriptions d’applications.

    Étape 3 : générer un certificat autosigné et accorder l’accès à la clé privée

    Créez un certificat x.509 auto-signé en procédant comme suit :
    • Utilisez les applets de commande New-SelfSignedCertificate, Export-Certificate et Export-PfxCertificate dans une session Windows PowerShell avec élévation de privilèges (exécutée en tant qu’administrateur) pour demander un certificat auto-signé et l’exporter vers .cer et .pfx (SHA1 par défaut). Par exemple :
      # Create certificate
      $mycert = New-SelfSignedCertificate -DnsName "snowsecops.onmicrosoft.com" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(2) -KeySpec KeyExchange -Provider "Microsoft Strong Cryptographic Provider"
      
      # Generate password fro private key
      $mypwd = ConvertTo-SecureString -String '<password>' -Force -AsPlainText
      
      # Export certificate to .pfx file
      $mycert | Export-PfxCertificate -FilePath mycert.pfx -Password $mypwd
      
      # Export certificate to .cer file
      $mycert | Export-Certificate -FilePath mycert.cer
    • Fournissez un accès par clé privée à l’utilisateur du service MID en procédant comme suit :
      1. Ouvrez MMC (Microsoft Management Console).
      2. À partir de la console MMC (Microsoft Management Console), accédez à Certificats (ordinateur local) > Personnel > Certificats.

        (Si MMC n’a pas d’élément de menu, ajoutez-le en accédant à Fichier > Ajouter Supprimer le composant logiciel enfichable.

      3. Cliquez avec le bouton droit de la souris sur le certificat que vous avez généré.
      4. Développer Toutes les tâches > Gérer les clés privées
      5. Ajoutez l’utilisateur du service MID à la liste des accesseurs.

    Étape 4 : joindre le certificat à l’application Azure AD

    Après avoir enregistré le certificat avec votre application, vous pouvez utiliser l’empreinte digitale pour l’authentification.
    1. À la fin de l’étape 2, sélectionnez votre application dans l’onglet Applications détenues de la page Inscription des applications.

      Si vous devez revenir à la page d’enregistrement des applications , utilisez https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/%7E/RegisteredApps, vérifiez que l’onglet Applications possédées est sélectionné, puis sélectionnez votre application.

    2. Sélectionnez Certificats et secrets sous Gérer.
    3. Sur la page Certificats et secrets qui s’ouvre, sélectionnez Télécharger le certificat.
    4. Accédez au certificat autosigné (fichier .cer ) que vous avez créé à l’étape 3.
    5. Lorsque vous avez terminé, sélectionnez Ajouter.

      Le certificat est maintenant affiché dans la section Certificats.

    6. Notez CertificateThumbPrint et fermez la page actuelle Certificats et secrets .

    Étape 5 : affecter des rôles Azure AD à l’application

    1. Ouvrez le portail Azure AD.
    2. Dans le champ de recherche en haut de la page, recherchez Rôles et administrateurs.
    3. Sélectionnez des rôles et des administrateurs Azure AD dans les résultats de la section Services.

      Vous pouvez également accéder à la page Rôles et administrateurs Azure AD à l’aide de https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade.

    4. Sur la page Rôles et administrateurs Azure AD , recherchez et sélectionnez l’un des rôles pris en charge en cliquant sur le nom du rôle (et non sur la case à cocher) dans les résultats.

      Recherchez et sélectionnez le rôle d’administrateur de conformité .

    5. Sur la page Affectations , sélectionnez Ajouter des affectations.
    6. Dans la fenêtre contextuelle Ajouter des devoirs , recherchez et sélectionnez l’application que vous avez créée à l’étape 1.
    7. Lorsque vous avez terminé, sélectionnez Ajouter.
    8. Revenez à la page Affectations , vérifiez que le rôle a été affecté à l’application.

    Étape 6 : créer un nouveau principal de service

    Important :
    Assurez-vous d’être connecté à PowerShell Sécurité et conformité avant de terminer les étapes de création d’un nouveau principal de service. La création d’un nouveau principal de service sans connexion à PowerShell ne fonctionnera pas (votre ID d’application Azure et votre ID d’objet sont nécessaires pour créer le nouveau principal de service).
    1. Exécutez la commande suivante pour stocker les détails de l’application Azure que vous avez enregistrée à l’étape 1 (<AppName>) dans une variable :
      Install-Module -Name AzureAD 
      Import-Module -Name AzureAD 
      Connect-AzureAD 
      $AADApp = Get-AzureADServicePrincipal -SearchString"<AppName>"

      Pour obtenir des informations détaillées sur la syntaxe et les paramètres, consultez Get-AzureADServicePrincipal.

    2. Dans la même fenêtre PowerShell, connectez-vous à PowerShell Sécurité et conformité :
      Import-Module ExchangeOnlineManagement
      Connect-IPPSSession -CertificateThumbPrint "<Your_Certificate_ThumbPrint>" -AppID $AADApp.AppId -Organization "<Your_organization>
      Exécutez les commandes suivantes pour créer un objet principal de service pour l’application Azure :
      New-ServicePrincipal -AppId $AADApp.AppId -ObjectId $AADApp.ObjectId -DisplayName "<Descriptive Name>"

      Pour plus d’informations sur la syntaxe et les paramètres, consultez New-ServicePrincipal.