Partager via


Configurer l’identité managée Power Platform pour les plug-ins Dataverse ou les packages de plug-in

L’identité managée Power Platform permet aux plug-ins Dataverse ou aux packages de plug-ins de se connecter aux ressources Azure pour prendre en charge l’identité managée sans avoir besoin d’informations d’identification. Cet article vous aide à configurer l’identité gérée dans vos environnements Power Platform.

Configuration requise

  • Un abonnement Azure avec accès pour approvisionner l’identité managée affectée par l’utilisateur (UAMI) ou l’enregistrement d’application.
  • Outils pour les plug-ins ou les packages de plug-ins :
  • Certificat valide pour signer l'assemblage du plug-in.

Configurer l’identité gérée

Pour configurer l’identité managée Power Platform pour les plug-ins Dataverse ou les packages de plug-ins, procédez comme suit.

  1. Créez un enregistrement d’application ou une identité managée attribuée par l’utilisateur.
  2. Configurez les informations d’identification de l’identité fédérée.
  3. Créez et inscrivez des plug-ins Dataverse ou des packages de plug-ins.
    Assurez-vous de créer l’assembly de plug-in et d’enregistrer le plug-in ou le package du plug-in.
  4. Créez un enregistrement d’identité managée dans Dataverse.
  5. Accordez l’accès aux ressources Azure à l’application ou à l’identité managée affectée par l’utilisateur (UAMI).
  6. Validez l’intégration du plug-in.

Créer un enregistrement d’application ou une identité managée attribuée par l’utilisateur

Vous pouvez créer une identité managée affectée par l’utilisateur ou une application dans Microsoft Entra ID en fonction des scénarios suivants.

  • Si vous souhaitez qu’une identité d’application soit associée au plug-in qui se connecte aux ressources Azure, telles qu’Azure Key Vault, utilisez l’inscription d’application. Avec l’identité de l’application, vous pouvez appliquer des stratégies Azure sur le plug-in qui accède aux ressources Azure.
  • Si vous souhaitez qu’un principal de service accède aux ressources Azure, telles qu’Azure Key Vault, vous pouvez approvisionner une identité managée affectée par l’utilisateur.

Note

Veillez à capturer les ID suivants, car vous les utilisez dans les étapes ultérieures.

  • ID d’application (client)
  • ID locataire

Configurer les informations d’identification de l’identité fédérée

Pour configurer l’identité gérée, ouvrez l’identité gérée affectée par l’utilisateur ou l’application Microsoft Entra ID dans le portail Azure que vous avez créée dans la section précédente.

  1. Accédez au portail Azure.
  2. Accédez à Microsoft Entra ID.
  3. Sélectionnez Inscriptions d’applications.
  4. Ouvrez l’application que vous avez créée dans Configurer l’identité managée.
  5. Accédez à Certificats & secrets.
  6. Sélectionnez l’onglet Informations d’identification fédérées et sélectionnez Ajouter des informations d’identification.
  7. Sélectionnez l’émetteur comme Autre émetteur.
  8. Saisissez les informations suivantes :

Issuer

Utilisez l’émetteur v2.0 du locataire :

https://login.microsoftonline.com/{tenantID}/v2.0

Example

https://login.microsoftonline.com/5f8a1a9f-2e1a-415f-b10c-84c3736a21b9/v2.0

Type

Choisissez l’identificateur d’objet explicite.

Identificateur de l’objet

Choisissez le format correspondant à votre type de certificat :

  • Certificat auto-signé (développement uniquement) :

    /eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/h/{hash}
    
  • Certificat émetteur approuvé (recommandé pour la production) :

    /eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/i/{issuer}/s/{certificateSubject}
    

Référence de segment

Segment Descriptif
eid1 Version du format d’identité
c/pub Code cloud pour le cloud public, le cloud de la communauté du secteur public (GCC) et la station de première publication dans GCC.
t/{encodedTenantId} ID locataire
a/qzXoWDkuqUa3l6zM5mM0Rw/ Utilisation interne uniquement. Ne modifiez pas.
n/plugin Composant de module d'extension
e/{environmentId} ID environnement
h/{hash} SHA-256 du certificat (auto-signé uniquement)
i/{issuer}
s/{certificateSubject}
Détails de l’émetteur approuvé

Générer un certificat auto-signé

Chaque plug-in doit avoir une identité vérifiable et le certificat de signature agit comme empreinte digitale unique du plug-in. Le code suivant est un exemple d’extrait de code PowerShell que vous pouvez utiliser pour générer un certificat auto-signé pour les scénarios de développement ou de test. Pour référence, vous pouvez suivre l’exemple 3.

 $params = @{
     Type = 'Custom'
     Subject = 'E=admin@contoso.com,CN=Contoso'
     TextExtension = @(
         '2.5.29.37={text}1.3.6.1.5.5.7.3.4',
         '2.5.29.17={text}email=admin@contoso.com' )
     KeyAlgorithm = 'RSA'
     KeyLength = 2048
     SmimeCapabilities = $true
     CertStoreLocation = 'Cert:\CurrentUser\My'
 }
 New-SelfSignedCertificate @params

Note

Encodage pour {encodedTenantId}

  1. Convertissez GUID → Hex.
  2. Convertissez hex → Base64URL (pas base64 standard).

Hachage auto-signé

  • Calculez SHA-256 sur le .cer. Si vous avez un .pfx, exportez d’abord un .cer :
    CertUtil -hashfile <CertificateFilePath> SHA256
    
    $cert = Get-PfxCertificate -FilePath "path	o\your.pfx"
    $cert.RawData | Set-Content -Encoding Byte -Path "extracted.cer"
    

Environnements cloud Azure spécialisés

Définissez explicitement audience, URL de l’émetteur et préfixe objet lors du déploiement en dehors du cloud public, du GCC et de la première station de publication dans GCC :

Cloud Public visé URL de l’émetteur Préfixe de l’objet
GCC High et DoD api://AzureADTokenExchangeUSGov https://login.microsoftonline.us /eid1/c/usg
Mooncake (Chine) api://AzureADTokenExchangeChina https://login.partner.microsoftonline.cn /eid1/c/chn
US National (USNAT) api://AzureADTokenExchangeUSNat https://login.microsoftonline.eaglex.ic.gov /eid1/c/uss
US Secure (USSec) api://AzureADTokenExchangeUSSec https://login.microsoftonline.scloud /eid1/c/usn

Note

La valeur Audience est sensible à la casse et doit correspondre exactement.
Pour le cloud public, GCC et la première station de publication dans GCC (et d’autres clouds non répertoriés), les valeurs par défaut sont les suivantes :
Audience api://AzureADTokenExchange, Émetteur https://login.microsoftonline.com, Objet /eid1/c/pub.

Créer et inscrire des plug-ins Dataverse ou des packages de plug-in

Créer un assembly de plug-in

Empaquetage et signature

Signature d’un package de plug-in

Si vous créez un package de plug-in, utilisez l’interface CLI de signature NuGet pour générer un package à partir d’un fichier .nuspec ou d’un fichier .csproj. Après avoir généré le package, signez-le avec votre certificat.

 nuget sign YourPlugin.nupkg `
   -CertificatePath MyCert.pfx `
   -CertificatePassword "MyPassword" `
   -Timestamper http://timestamp.digicert.com

Signature d’un assembly de plug-in

Si vous inscrivez un plug-in (assembly), signez la DLL avec un certificat à l’aide de SignTool.exe (outil de signature).

signtool sign /f MyCert.pfx /p MyPassword /t http://timestamp.digicert.com /fd SHA256 MyAssembly.dll

Vous pouvez éventuellement ajouter un horodatage en fournissant l’URL d’un serveur d’horodatage conforme À RFC 3161.

Note

Utilisez un certificat auto-signé uniquement à des fins de développement ou de test. N’utilisez pas de certificats auto-signés dans des environnements de production.

Enregistrer le plug-in

Créer un enregistrement d’identité gérée dans Dataverse

Pour approvisionner un enregistrement d’identité managée dans Dataverse, procédez comme suit.

  1. Créez une identité managée en envoyant une requête HTTP POST avec un client REST (par exemple, Insomnie). Utilisez une URL et un corps de requête au format suivant.

    POST https://<<orgURL>>/api/data/v9.0/managedidentities
    

    Veillez à remplacer orgURL par l’URL de l’organisation.

  2. Vérifiez que la source d’informations d’identification est définie sur 2 dans la charge utile, subjectscope est défini sur 1 pour les scénarios spécifiques à l’environnement, et la version est définie sur 1 dans la charge utile.

    Exemple de charge utile

    {
      "applicationid": "<<appId>>", //Application Id, or ClientId, or User Managed Identity
      "managedidentityid": "<<anyGuid>>",
      "credentialsource": 2, // Managed client
      "subjectscope": 1, //Environment Scope
      "tenantid": "<<tenantId>>", //Entra Tenant Id
      "version": 1
    }
    
  3. Mettez à jour votre package de plug-in ou votre enregistrement d’assembly plug-in en émettant une requête HTTP PATCH pour l’associer à l’identité managée créée à l’étape 1.

    Assemblage de module

    PATCH https://<<orgURL>>/api/data/v9.0/pluginassemblies(<<PluginAssemblyId>>)
    

    Package de plug-in

    PATCH https://<<orgURL>>/api/data/v9.0/pluginpackages(<<PluginPackageId>>)
    

    Exemple de charge utile

    {
      "managedidentityid@odata.bind": "/managedidentities(<<ManagedIdentityGuid>>)"
    }
    

    Veillez à remplacer orgURL, PluginAssemblyId (ou PluginPackageId) et ManagedIdentityGuid par vos valeurs.

Accorder l’accès aux ressources Azure à l’application ou à l’identité managée affectée par l’utilisateur

Si vous devez accorder l’accès à un ID d’application pour accéder aux ressources Azure, telles qu’Azure Key Vault, accordez l’accès à l’application ou à l’identité managée affectée par l’utilisateur à cette ressource.

Valider l’intégration du plug-in

Vérifiez que votre plug-in peut demander en toute sécurité l’accès aux ressources Azure qui prennent en charge l’identité managée, éliminant ainsi le besoin d’informations d’identification distinctes.

Questions Fréquemment Posées (FAQ)

Comment résoudre cette erreur ?

Si vous recevez l’erreur suivante :
Obtention d’une erreur : un problème de configuration empêche l’authentification.
AADSTS700213 : aucun enregistrement d’identité fédérée correspondant trouvé

Effectuez les étapes suivantes pour résoudre le problème :

  1. Vérifiez que le FIC est correctement configuré et enregistré.

  2. Vérifiez que l’émetteur/objet correspond au format spécifié précédemment.

    Vous pouvez également trouver le format attendu dans la pile d’erreurs.

Comment résoudre l’erreur « Impossible d’atteindre ou de se connecter à Power Platform » ?

Reportez-vous aux URL Power Platform et aux plages d’adresses IP pour vous assurer que les points de terminaison Power Platform sont accessibles et autorisés.