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.
- Installez le module AzureAD.
Install-Module Microsoft.Graph
- 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
- 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.
- Connectez-vous à portal.azure.com
- Sélectionnez l’ID Microsoft Entra et les inscriptions d’applications pour créer de nouvelles inscriptions avec multilocataire.
- Sélectionnez un nom d’affichage accessible par l’utilisateur pour votre application.
- Sélectionnez Type de compte pris en charge : comptes dans n’importe quel répertoire organisationnel (tout répertoire Microsoft Entra - Multilocataire).
- Sélectionnez un type de plateforme « Web ».
- 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.
- 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
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
- 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>
- Autorisations d’API Ajouter une autorisation>Aux API>Microsoft Graph>Déléguées>
Fournir le lien de consentement
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.
Obtenir un code d’autorisation
Vous devez obtenir un code d’autorisation pour votre application web à partir de l’appel de connexion Microsoft Entra :
- Connectez-vous à l’ID Microsoft Entra.
- Remplacez l’ID d’application par votre ID d’application Microsoft Entra (GUID).
- Lorsque vous y êtes invité, connectez-vous avec votre compte d’utilisateur avec l’authentification multifacteur configurée.
- 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.
- 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 :
- 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. - Prenez note du jeton d’actualisation retourné.
- 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 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 :
- 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
- 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.
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.
Application de consentement partenaire (CSP)
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/" />
Application de consentement partenaire (CPV)
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/" />