Activation de l’infrastructure de modèle d’application sécurisée

Microsoft introduit une infrastructure sécurisée et évolutive pour l’authentification des partenaires fournisseurs de solutions cloud (CSP) et des fournisseurs de panneau de configuration (CPV) via l’architecture MFA (Multifactor Authentication) Microsoft Entra.

Vous pouvez utiliser le nouveau modèle pour renforcer la sécurité des appels d’intégration d’API de l’Espace partenaires. Cela permet à toutes les parties (y compris Microsoft, les partenaires CSP et les PROCESSEURs) de protéger leur infrastructure et les données client contre les risques de sécurité.

Le programme CSP permet aux clients d’acheter des produits et services Microsoft par l’intermédiaire de partenaires. Conformément au contrat avec Microsoft, les partenaires doivent gérer l’environnement qu’ils vendent aux clients et fournir le support associé. Les clients qui achètent par le biais de ce canal doivent avoir un niveau de confiance élevé envers le partenaire auprès duquel ils achètent, car l’entreprise partenaire dispose d’un accès administrateur à haut privilège au locataire des clients.

Étendue

Cet article s’applique aux fournisseurs de solutions Cloud et aux CPV.

CPV

  • Un CPV est un éditeur de logiciels indépendant qui développe des applications que les partenaires du programme Fournisseur de solutions Cloud intègrent aux API de l’Espace partenaires.
  • Un CPV n’est pas un partenaire CSP disposant d’un accès direct à l’Espace partenaires ou aux API.

Fournisseurs de solutions Cloud

  • Partenaires indirects et directs du programme Fournisseur de solutions Cloud qui utilisent un ID d’application et une authentification utilisateur et s’intègrent directement aux API de l’Espace partenaires.

Besoins de sécurité

Pour plus d’informations sur les exigences en matière de sécurité, consultez Exigences de sécurité des partenaires.

Modèle d’application sécurisé

Les applications de la Place de marché doivent emprunter les privilèges d’un partenaire du programme Fournisseur de solutions Microsoft Cloud pour appeler des API Microsoft. Des attaques de sécurité visant ces applications sensibles peuvent entraîner la compromission des données client.

Pour obtenir une vue d’ensemble et des détails de la nouvelle infrastructure d’authentification, consultez Infrastructure de modèle d’application sécurisée, qui décrit les principes et les bonnes pratiques pour rendre les applications de la place de marché durables et robustes contre les compromissions de sécurité.

Exemples

Les documents de présentation et exemples de code suivants décrivent la manière dont les partenaires peuvent implémenter le framework du modèle d’application sécurisé :

REST

Pour effectuer des appels REST avec le framework du modèle d’application sécurisé et un exemple de code, procédez comme suit :

  1. Créer une application web

Créer une application web

  1. Connectez-vous au portail Azure.

  2. Créer une application Microsoft Entra.

  3. Accordez des autorisations d’application déléguées aux ressources suivantes, en fonction des exigences de votre application. Si nécessaire, vous pouvez ajouter d’autres autorisations déléguées pour les ressources d’application.

    1. Espace partenaires Microsoft (certains locataires montrent SampleBECApp)

    2. API de gestion Azure (si vous envisagez d’appeler des API Azure)

    3. Windows Azure Active Directory

  4. Vérifiez que l’URL d’accueil 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. Par exemple, dans l’exemple de code de la section suivante, l’application web s’exécute sur https://localhost:44395/.

  5. Notez les informations suivantes des paramètres de votre application web dans Microsoft Entra ID :

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

Remarque

Il est recommandé d’utiliser un certificat comme secret de votre application. Toutefois, vous pouvez également créer une clé d’application dans le portail Azure. L’exemple de code indiqué dans la section suivante utilise une clé d’application.

Obtenir un code d’autorisation

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

  1. Connectez-vous à Microsoft Entra ID.

    Veillez à vous connecter avec le compte d’utilisateur à partir duquel vous effectuez des appels d’API de l’Espace partenaires (par exemple, un agent administrateur ou un compte d’agent commercial).

  2. Remplacez l’ID d’application par votre ID d’application Microsoft Entra (GUID).

  3. À l’invite, connectez-vous à l’aide de votre compte d’utilisateur avec MFA configuré.

  4. Lorsque vous y êtes invité, entrez plus d’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/.

Suivi des appels de code d’autorisation

POST https://localhost:44395/ HTTP/1.1
Origin: https://login.microsoftonline.com
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referrer: https://login.microsoftonline.com/kmsi
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cookie: OpenIdConnect.nonce.hOMjjrivcxzuI4YqAw4uYC%2F%2BILFk4%2FCx3kHTHP3lBvA%3D=dHVyRXdlbk9WVUZFdlFONVdiY01nNEpUc0JRR0RiYWFLTHhQYlRGNl9VeXJqNjdLTGV3cFpIWFg1YmpnWVdQUURtN0dvMkdHS2kzTm02NGdQS09veVNEbTZJMDk1TVVNYkczYmstQmlKUzFQaTBFMEdhNVJGVHlES2d3WGlCSlVlN1c2UE9sd2kzckNrVGN2RFNULWdHY2JET3RDQUxSaXRfLXZQdG00RnlUM0E1TUo1YWNKOWxvQXRwSkhRYklQbmZUV3d3eHVfNEpMUUthMFlQUFgzS01RS2NvMXYtbnV4UVJOYkl4TTN0cw%3D%3D

code=AuthorizationCodeValue&id_token=IdTokenValue&<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.

Important

Le jeton d’actualisation doit être stocké en tant que secret dans Key Vault.

Exemple d’appel d’actualisation

Demande d’espace réservé :

POST https://login.microsoftonline.com/CSPTenantID/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Content-Length: 966
Expect: 100-continue

Corps de la requête :

resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id&client_secret=Application-Secret&grant_type=authorization_code&code=AuthorizationCodeValue

Réponse de l’espace réservé :

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8

Corps de la réponse :

{"token_type":"Bearer","scope":"user_impersonation","expires_in":"3599","ext_expires_in":"3599","expires_on":"1547579127","not_before":"1547575227","resource":"https://api.partnercenter.microsoft.com","access_token":"Access

Obtenir un jeton d’accès

Vous devez obtenir un jeton d’accès avant d’effectuer des appels d’API de l’Espace partenaires. Vous devez utiliser un jeton d’actualisation pour obtenir un jeton d’accès, car les jetons d’accès ont généralement une durée de vie limitée (par exemple, moins d’une heure).

Demande d’espace réservé :

POST https://login.microsoftonline.com/CSPTenantID/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Content-Length: 1212
Expect: 100-continue

Corps de la requête :

resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id &client_secret= Application-Secret&grant_type=refresh_token&refresh_token=RefreshTokenVlaue&scope=openid

Réponse de l’espace réservé :

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8

Corps de la réponse :

{"token_type":"Bearer","scope":"user_impersonation","expires_in":"3600","ext_expires_in":"3600","expires_on":"1547581389","not_before":"1547577489","resource":"https://api.partnercenter.microsoft.com","access_token":"AccessTokenValue","id_token":"IDTokenValue"}

Effectuer des appels d’API de l’Espace partenaires

Vous devez utiliser votre jeton d’accès pour appeler des API de l’Espace partenaires. Consultez l’exemple d’appel suivant.

Exemple d’appel d’API de l’Espace partenaires

GET https://api.partnercenter.microsoft.com/v1/customers/CustomerTenantId/users HTTP/1.1
Authorization: Bearer AccessTokenValue
Accept: application/json
X-Locale: en-US
Host: api.partnercenter.microsoft.com

PowerShell

Le module PowerShell de l’Espace partenaires peut être utilisé pour gérer les ressources de l’Espace partenaires. Il s’agit d’un projet open source géré par la communauté partenaire et non officiellement pris en charge par Microsoft. Si vous rencontrez un problème, vous pouvez obtenir de l’aide auprès de la communauté ou le signaler dans GitHub.

Vous pouvez utiliser le module PowerShell de l’Espace partenaires pour réduire l’infrastructure nécessaire à l’échange du code d’autorisation contre un jeton d’accès. Cette méthode est facultative pour effectuer des appels REST de l’Espace partenaires.

Pour plus d’informations sur ce processus, consultez la documentation PowerShell du modèle d’application sécurisé.

  1. Installez les modules PowerShell de l’ID Microsoft Entra et de l’Espace partenaires.

    Install-Module AzureAD
    
    Install-Module PartnerCenter
    
  2. Utilisez la commande New-PartnerAccessToken pour exécuter le processus de consentement et capturer le jeton d’actualisation nécessaire.

    $credential = Get-Credential
    
    $token = New-PartnerAccessToken -ApplicationId 'xxxx-xxxx-xxxx-xxxx' -Scopes 'https://api.partnercenter.microsoft.com/user_impersonation' -ServicePrincipal -Credential $credential -Tenant 'yyyy-yyyy-yyyy-yyyy' -UseAuthorizationCode
    

    Remarque

    Le paramètre ServicePrincipal est utilisé avec la commande New-PartnerAccessToken , car une application Microsoft Entra avec un type de web/API est utilisée. Ce type d’application nécessite l’inclusion d’un identificateur client et d’un secret dans la demande de jeton d’accès. Quand la commande Get-Credential est appelée, vous êtes invité à entrer un nom d’utilisateur et un mot de passe. Entrez l’identificateur de l’application comme nom d’utilisateur. Entrez le secret de l’application comme mot de passe. Quand la commande New-PartnerAccessToken est appelée, vous êtes invité à entrer les informations d’identification une nouvelle fois. Entrez les informations d’identification du compte de service que vous utilisez. Ce compte de service doit être un compte partenaire disposant des autorisations appropriées.

  3. Copiez la valeur du jeton d’actualisation.

    $token.RefreshToken | clip
    

Vous devez stocker la valeur du jeton d’actualisation dans un référentiel sécurisé, comme Azure Key Vault. Pour plus d’informations sur l’utilisation du module d’application sécurisée avec PowerShell, consultez l’article sur l’authentification multifacteur.