Partager via


Créer une application partenaire sécurisée

Vous pouvez implémenter le cadre du modèle d’application sécurisé en créant une application pour les fournisseurs de solutions cloud (CSP) ou les fournisseurs de panneau de configuration (CPV).

Mettre en œuvre un modèle d’application sécurisé

Étapes d’activation du 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é. Les investissements dans de nouvelles fonctionnalités ne seront effectués que dans 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 : Retrait d'Azure AD Graph et mise à l'obsolescence du module PowerShell.

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

Tout d’abord, créez un principal de service Microsoft Partner Center dans le locataire du partenaire CSP, où l’application multilocataire va être créée.

Pour les locataires partenaires CSP, ce principal de service doit déjà exister. Si ce n’est pas le cas, créez en procédant comme suit.

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

  1. Installez le module AzureAD. Install-Module Microsoft.Graph
  2. Exécutez Connect-MgGraph, qui 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 00001111-aaaa-2222-bbbb-3333cccc4444

Créer une application multilocataire 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 mutualisée nouvellement créée.

  1. Connectez-vous à portal.azure.com
  2. Sélectionnez Enregistrements d’ID Microsoft Entra et d’applications pour créer des enregistrements avec multilocataire.

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

  1. Sélectionnez un nom d’affichage destiné à l’utilisateur pour votre application.
  2. Sélectionnez Type de compte pris en charge : Comptes dans n’importe quel annuaire organisationnel (Tout annuaire Microsoft Entra - Multilocataire).
  3. Sélectionnez une plate-forme de type « Web ».
  4. L’URL de redirection doit être l’URL de redirection de votre application, qui affichera le message de réussite du consentement au partenaire et collectera un jeton d’actualisation. Assurez-vous que l’URL de redirection de votre application est définie sur un point de terminaison où une application web en direct 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 les secrets+Nouvelle clé secrète client dans l’onglet Clés secrètes > 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 d’application

Capture d’écran montrant les certificats et les secrets.

Appliquer les autorisations

Assurez-vous que les autorisations suivantes sont définies pour l’application multilocataire.

Dans la section Autorisation de l’API :

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

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

    • Autorisations de l’API>Ajouter une autorisation>API> MicrosoftGraphique> MicrosoftAutorisations déléguées
      • DelegatedAdminRelationship.ReadWrite.All User.Read.All

    Capture d’écran montrant les autorisations de l’API de demande d’application partenaire.

    • Suivez le chemin d’accès ci-dessous pour ajouter des autorisations déléguées pour l’Espace partenaires Microsoft - Accorder l’accès aux autorisations de l’Espace partenaires sous Autorisations déléguées :
      • Autorisations de l’API>Ajouter une autorisation>API utilisées par> mon organisationCentre >des partenaires MicrosoftAutorisations déléguées>Usurpation d’identité de l’utilisateur

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

Présentez le lien de consentement au partenaire et demandez-lui de se connecter avec son compte de service pour approuver la demande d’action au nom du compte de service sur le locataire partenaire.

L’utilisateur partenaire CSP doit être un administrateur général et un agent d’administration pour consentir à l’application mutualisée.

Application multilocataire

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

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

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

Obtenir le 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 à Microsoft Entra ID.
  2. Remplacez Application-Id par votre ID d’application Microsoft Entra (GUID).
  3. Lorsque vous y êtes invité, connectez-vous avec votre compte d’utilisateur sur lequel l’authentification multifacteur est 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 le point de terminaison de votre application web à l’aide de 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>

ou

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>

ou

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

Trace d’appel du code d’autorisation : https://localhost:44395/?code=<authorization_code>&<rest of properties for state>

Obtenir le jeton d’actualisation

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

  1. Effectuez un appel POST au point https://login.microsoftonline.com/CSPTenantID/oauth2/token de terminaison de connexion Microsoft Entra avec le code d’autorisation. Pour obtenir un exemple, consultez l’exemple d’appel suivant.
  2. Notez le jeton d’actualisation qui est renvoyé.
  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 fichier approprié <key-vault-name> et il en résulte 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 autorisé.
    • Le jeton d’actualisation de l’utilisateur consenti 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 pour effectuer des actions commerciales et utilisateur pour le compte du partenaire.

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

Configuration web CSP

Pour l’application partenaire CSP, les sections suivantes sont appelées dans le web.config fichier. Mettez à jour ces valeurs avec les ID d’application et les secrets 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, les sections suivantes sont appelées dans le app.config fichier. Mettez à jour les valeurs avec les ID d’application et les secrets 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 qui utilisent 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 client. Pour plus d’informations, consultez Authentification de l’Espace partenaires.

Configuration Web du CPV

Pour l’application partenaire CSP, les sections suivantes sont appelées dans le web.config fichier. Mettez à jour ces valeurs avec les ID d’application et les secrets 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 du partenaire CPV, les sections suivantes sont appelées dans le app.config fichier. Mettez à jour les valeurs avec les ID d’application et les secrets 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/" />