Partager via


Créer une application partenaire sécurisée

Vous pouvez implémenter l’infrastructure de modèle d’application sécurisé en créant une application pour fournisseur de solutions Cloud les fournisseurs de solutions cloud (CSP) ou les fournisseurs Panneau de configuration (CPV).

Implémenter un modèle d’application sécurisé

Étapes pour activer le modèle d’application sécurisé

Important

Azure Active Directory (Azure AD) Graph est déconseillé depuis le 30 juin 2023. À l’avenir, nous n’effectuons aucun investissement supplémentaire dans Azure AD Graph. Les API Graph Azure AD n’ont pas de contrat SLA ou de maintenance au-delà des correctifs liés à la sécurité. Nous limiterons les investissements dans de nouvelles fonctions et fonctionnalités à Microsoft Graph.

Nous allons mettre hors service Azure AD Graph en étapes incrémentielles afin que vous ayez suffisamment de temps pour migrer vos applications vers les API Microsoft Graph. À une date ultérieure que nous annoncerons, nous bloquerons la création de toutes les nouvelles applications à l’aide d’Azure AD Graph.

Pour plus d’informations, consultez Important : Suppression du module Azure AD Graph et Dépréciation du module PowerShell.

Créer un principal de service de l’Espace partenaires

Tout d’abord, créez un principal de service de l’Espace partenaires Microsoft dans le locataire du partenaire CSP, où l’application mutualisée sera créée.

Pour les locataires partenaires CSP, ce principal de service doit déjà exister. Si ce n’est pas le cas, créez à l’aide des étapes suivantes.

Dans une fenêtre PowerShell d’administrateur, exécutez les commandes suivantes.

  1. Installez le module AzureAD. Install-Module Microsoft.Graph
  2. Exécutez Connecter-MgGraph, ce message vous invite à entrer un nom d’utilisateur et un mot de passe. Entrez les informations d’identification de l’administrateur du locataire. Connect-MgGraph
  3. Créez un principal de service De l’Espace partenaires Microsoft. New-MgServicePrincipal -DisplayName "Microsoft Partner Center" -AppId fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd

Créer une application mutualisée dans le locataire du partenaire CSP

Procédez comme suit pour vous assurer que les propriétés d’application suivantes sont définies pour l’application multilocataire nouvellement créée.

  1. Connectez-vous à portal.azure.com
  2. Sélectionnez l’ID Microsoft Entra et les inscriptions d’applications pour créer de nouvelles inscriptions avec multilocataire.

Capture d’écran montrant l’inscription d’une application modale.

  1. Sélectionnez un nom d’affichage accessible par l’utilisateur pour votre application.
  2. Sélectionnez Type de compte pris en charge : comptes dans n’importe quel répertoire organisationnel (tout répertoire Microsoft Entra - Multilocataire).
  3. Sélectionnez un type de plateforme « Web ».
  4. L’URL de redirection doit être l’URL de redirection de votre application, qui affiche le message de réussite du consentement au partenaire et collecte un jeton d’actualisation. Vérifiez que l’URL de redirection de votre application est définie sur un point de terminaison où une application web active est en cours d’exécution. Cette application doit accepter le code d’autorisation de l’appel de connexion Microsoft Entra.
  5. Accédez à Gérer les>certificats et secrets>+Nouveau secret client sous l’onglet Secrets client.

Remarque

Vous aurez besoin des informations suivantes à partir des paramètres de votre application web dans Microsoft Entra ID :

  • ID de l’application
  • Secret de l’application

Capture d’écran montrant certificats et secrets.

Appliquer les autorisations

Vérifiez que les autorisations suivantes sont définies pour l’application mutualisée.

Dans la section Autorisation de l’API :

  • Il ne doit pas y avoir d’autorisations d’application directes pour l’application multilocataire.

  • Suivez le chemin ci-dessous pour ajouter des autorisations déléguées pour Microsoft Graph :

    • Autorisations d’API Ajouter une autorisation>Aux API>Microsoft Graph>Déléguées>
      • DelegatedAdminRelationship.ReadWrite.All User.Read.All

    Capture d’écran montrant l’application partenaire demander des autorisations d’API.

    • Suivez le chemin d’accès ci-dessous pour ajouter des autorisations déléguées pour l’Espace partenaires Microsoft : accordez des autorisations d’accès à l’Espace partenaires sous Autorisations déléguées :
      • Autorisations d’API Ajouter une API d’autorisation>que mon organisation utilise>l’emprunt d’identité de l’utilisateur délégué de l’Espace>>partenaires Microsoft>

    Capture d’écran montrant les autorisations de l’application partenaire A P I.

Présentez au partenaire le lien de consentement et connectez-vous avec son compte de service pour approuver l’application pour agir au nom du compte de service sur le locataire partenaire.

L’utilisateur partenaire CSP doit être un Administration global et un agent Administration pour donner son consentement à l’application mutualisée.

Application mutualisée

Le multilocataire ApplicationID doit être remplacé par votre ID d’application.

Accédez aux inscriptions d’applications et sélectionnez l’ID d’application (client) et remplacez-le ci-dessous.

Capture d’écran montrant le client Microsoft Entra partenaire.

Obtenir un code d’autorisation

Vous devez obtenir un code d’autorisation pour votre application web à partir de l’appel de connexion Microsoft Entra :

  1. Connectez-vous à l’ID Microsoft Entra.
  2. Remplacez l’ID d’application par votre ID d’application Microsoft Entra (GUID).
  3. Lorsque vous y êtes invité, connectez-vous avec votre compte d’utilisateur avec l’authentification multifacteur configurée.
  4. Lorsque vous y êtes invité, entrez d’autres informations MFA (numéro de téléphone ou adresse e-mail) pour vérifier votre connexion.
  5. Une fois connecté, le navigateur redirige l’appel vers votre point de terminaison d’application web avec votre code d’autorisation. Par exemple, l’exemple de code suivant redirige vers https://localhost:44395/.
GET https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<CSPApplicationId>&response_type=code&redirect_url=https://<CSPApplicationUrl_which_collects_refreshtoken>

or

GET https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<CSPApplicationId>&response_type=code

Pour la Chine, utilisez le lien suivant :

GET https://login.chinacloudapi.cn/common/oauth2/authorize ?&client_id= <CSPApplicationId>&response_type=code&redirect_url= https://<CSPApplicationUrl_which_collects_refreshtoken>

or

GET https://login.chinacloudapi.cn/common/oauth2/authorize?&client_id= <CSPApplicationId>&response_type=code

Suivi des appels de code d’autorisation : https://localhost:44395/?code=<authorization_code>&<rest of properties for state>

Obtenir un jeton d’actualisation

Vous devez ensuite utiliser votre code d’autorisation pour obtenir un jeton d’actualisation :

  1. Effectuez un appel POST au point de terminaison https://login.microsoftonline.com/CSPTenantID/oauth2/token de connexion Microsoft Entra avec le code d’autorisation. Pour obtenir un exemple, consultez l’exemple d’appel suivant.
  2. Prenez note du jeton d’actualisation retourné.
  3. Stockez le jeton d’actualisation dans Azure Key Vault. Pour plus d’informations, consultez la documentation de l’API Key Vault.

Remarque

Les ressources mentionnées dans l’exemple d’appel POST ci-dessous sont destinées aux API GDAP-Graph.

Les ressources pour les autres API PC sont les suivantes :

API de l’Espace partenaires (https://api.partnercenter.microsoft.com)

API GDAP

API partenaire (https://api.partner.microsoft.com)

Exemple d’appel

POST  'https://login.microsoftonline.com/<partnerTenantId>/oauth2/token' \
--header 'content-type: application/x-www-form-urlencoded' \
--form 'grant_type="authorization_code"' \
--form 'client_id=<application_id or client_id>' \
--form 'resource="https://graph.microsoft.com"' \
--form 'code="<authorization_code>"'   
Response Body:

{
    "token_type": "Bearer",
    "scope": "DelegatedAdminRelationship.ReadWrite.All User.Read.All",
    "expires_in": "4549",
    "ext_expires_in": "4549",
    "expires_on": "1652886571",
    "not_before": "1652881721",
    "resource": "https://graph.microsoft.com",
    "access_token": "Access_token",
    "refresh_token": "Refresh_token",    
    "id_token": "Id_token"
}

Configurer le coffre de clés

Tout d’abord, créez une application web dans le locataire du partenaire CSP. Si l’application CPV est utilisée pour appeler les API de l’Espace partenaires, CPV doit créer une application web dans le locataire du partenaire CPV.

Si vous utilisez Azure Key Vault :

  1. Créez Azure Key Vault avec le nom approprié <key-vault-name> et un nom DNS tel que : https://<key-vault-name>.vault.azure.net
  2. Ajoutez un jeton d’actualisation au coffre de clés.

Fournir l’accès au coffre de clés

Dans les stratégies d’accès du coffre de clés, ajoutez KeyVaultAccessApp avec des autorisations pour gérer uniquement les aspects Obtenir et Définir d’un secret.

Capture d’écran montrant les autorisations requises pour l’application partenaire CSP.

Configurer le prototype

Le prototype a deux applications :

  • Consentement du partenaire : représente une application web conçue pour accepter le consentement d’un partenaire CSP et afficher un message de réussite.
    • Cette application configure le consentement et capture le jeton d’actualisation de l’utilisateur consenté.
    • Le jeton d’actualisation de l’utilisateur consent est utilisé pour générer le jeton d’accès pour le locataire partenaire CSP.
  • Application CSP ou application CPV : représente une application principale, qui appelle les API et le graphique de l’Espace partenaires.
    • API permettant d’effectuer des actions commerciales et utilisateur pour le compte du partenaire.

Cette application récupère le jeton d’accès pour un public spécifique (API de l’Espace partenaires ou Graph) avant d’appeler les API respectives. Il utilise le jeton d’actualisation stocké en toute sécurité dans le coffre de clés.

Configuration web CSP

Pour l’application partenaire CSP, le web.config fichier comporte les sections suivantes appelées. Mettez à jour ces valeurs avec les ID et secrets d’application correspondants. Pour votre application principale, utilisez « certificat » comme secret d’application web au lieu de secrets simples, car il fournit une couche de sécurité supplémentaire.

<!-- AppID that represents CSP application -->
<add key="ida:CSPApplicationId" value="CSPApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment.
The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CSPApplicationSecret" value="CSPApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens --> <add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment.
The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de, China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />

Configuration de l’application CSP

Pour l’application partenaire CSP, le app.config fichier comporte les sections suivantes appelées. Mettez à jour les valeurs avec les ID et secrets d’application correspondants. Pour votre application principale, utilisez « certificat » comme secret d’application web au lieu de secrets simples, car il fournit une couche de sécurité supplémentaire.

<!-- AppID that represents CSP application -->
<add key="ida:CPVApplicationId" value="CPVApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CPVApplicationSecret" value="CPVApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens -->
<add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de,
China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />

Les fournisseurs de services cloud utilisant l’application CPV peuvent appeler l’API ApplicationConsent pour créer le principal de service sur le locataire client afin d’accéder à Microsoft Graph pour gérer les locataires clients. Pour plus d’informations, consultez l’authentification de l’Espace partenaires.

Configuration web CPV

Pour l’application partenaire CSP, le web.config fichier comporte les sections suivantes appelées. Mettez à jour ces valeurs avec les ID et secrets d’application correspondants. Pour votre application principale, utilisez « certificat » comme secret d’application web au lieu de secrets simples, car il fournit une couche de sécurité supplémentaire.

<!-- AppID that represents Control panel vendor application -->
<add key="ida:CPVApplicationId" value="CPVApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CPVApplicationSecret" value="CPVApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens -->
<add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de, China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />

Configuration de l’application CPV

Pour l’application partenaire CPV, le app.config fichier contient les sections suivantes indiquées. Mettez à jour les valeurs avec les ID et secrets d’application correspondants. Pour votre application principale, utilisez « certificat » comme secret d’application web au lieu de secrets simples, car il fournit une couche de sécurité supplémentaire.

<!-- AppID that represents Control panel vendor application -->
<add key="ida:CPVApplicationId" value="CPVApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CPVApplicationSecret" value="CPVApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens -->
<add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de, China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />