Intégrer l'interface de votre application

Cette page explique comment intégrer l'interface de votre application à Cloud Marketplace pour offrir à vos clients une expérience fluide lorsqu'ils passent de Cloud Marketplace à votre produit.

De manière générale, vous devez fournir une URL d'inscription pour gérer la création des comptes utilisateur, qui sont ensuite gérés dans votre console Web. Vous devez également fournir une URL pour que les utilisateurs puissent se connecter. Vous pouvez également intégrer l'authentification unique (SSO).

Intégrer l'interface de votre application à l'aide de Producer Portal

Pour accéder à toutes les informations dont vous avez besoin pour intégrer l'interface de votre application à Cloud Marketplace à partir d'un seul emplacement, vous pouvez utiliser la section Intégration de l'interface de Producer Portal.

Le lien direct vers Producer Portal est le suivant :

https://console.cloud.google.com/producer-portal?project=YOUR_PROJECT_ID

Pour accéder à la section Intégration de l'interface:

  1. Dans la liste des produits, cliquez sur le nom de votre produit.

  2. Sur la page Présentation de votre produit, accédez à la section Intégration technique et cliquez sur Intégration de l'interface.

Ajouter votre URL d'inscription

Lorsque des utilisateurs achètent votre produit sur Cloud Marketplace, vous devez leur créer un compte avec votre produit. Pour ce faire, vous devez créer une page d'inscription pour configurer et approuver les comptes utilisateur dans votre système. Vous pouvez configurer cette page en tant que page d'inscription dans laquelle les utilisateurs doivent créer un compte dans votre système, ou sous forme de page qui approuve automatiquement les comptes.

Une fois que vous avez créé la page d'inscription, ajoutez-la dans Producer Portal:

  1. Dans la liste des produits, cliquez sur le nom de votre produit.

  2. Sur la page Présentation de votre produit, accédez à la section Intégration technique, puis cliquez sur Intégration de l'interface.

  3. Saisissez l'URL de votre page d'inscription dans le champ URL d'inscription.

Vérifier les informations de connexion de l'utilisateur

Si un utilisateur n'a pas encore créé de compte dans votre système, il doit cliquer sur le bouton S'inscrire avec YOUR_COMPANY_NAME dans Cloud Marketplace. Lorsqu'ils cliquent sur le bouton, Google Cloud envoie une requête HTTP POST à votre page d'inscription, avec un jeton Web JSON (JWT) dans le paramètre x-gcp-marketplace-token. Ce jeton JWT contient l'identifiant de compte d'approvisionnement de l'utilisateur, qui l'identifie en tant qu'utilisateur Google Cloud, ainsi qu'un identifiant obscurci, qui représente son ID de compte Google. Vous devez utiliser à la fois l'ID du compte de gestion des achats et l'ID masqué pour associer le compte Google de l'utilisateur à son compte dans votre système.

Après avoir vérifié le jeton JWT, votre page d'inscription doit envoyer une demande d'approbation de compte à l'API Partner Procurement, décrite dans la procédure d'intégration du backend.

Pour en savoir plus sur la charge utile JWT et comment la valider, consultez la section Valider le JWT ci-dessous.

Si vous débutez avec les jetons JWT, consultez la présentation des jetons JWT.

Ajouter votre URL de connexion

Vous devez spécifier l'URL de la page de connexion de votre application.

Pour saisir l'URL de la page de connexion de votre application dans Producer Portal:

  1. Dans la liste des produits, cliquez sur le nom de votre produit.

  2. Sur la page Présentation de votre produit, accédez à la section Intégration technique, puis cliquez sur Intégration de l'interface.

  3. Saisissez l'URL de la page de connexion de votre application dans le champ URL de connexion.

(Facultatif) Activer l'authentification unique (SSO) pour vos clients

Pour activer l'authentification unique dans Producer Portal:

  1. Dans la liste des produits, cliquez sur le nom de votre produit.

    1. Sur la page Présentation de votre produit, accédez à la section Intégration technique, puis cliquez sur Intégration de l'interface.

    2. Sous Activer la connexion SSO ?, sélectionnez Oui.

Vérifier les informations de connexion SSO de vos clients

Lorsque les clients se connectent à votre application à l'aide de l'authentification unique, Google Cloud envoie une requête HTTP POST à la page de connexion de votre application, avec un jeton Web JSON (JWT) au même format que celui envoyé lorsque les utilisateurs s'inscrivent pour la première fois à votre application.

Pour en savoir plus sur la charge utile JWT et comment la valider, consultez la section Valider le JWT ci-dessous.

Vérifier le jeton JWT

Certains processus, tels que l'enregistrement d'un nouveau client ou la connexion d'un client avec l'authentification unique, impliquent de vous envoyer une requête HTTP POST avec un jeton Web JSON (JWT) que vous devrez peut-être valider.

Le tableau suivant répertorie:

  • Événements impliquant l'envoi d'une requête HTTP avec un JWT.
  • Type de requête HTTP impliqué.
  • Indique si vous devez ou non valider le jeton JWT.
Événement Type de requête HTTP Validation JWT requise

Inscrire un nouveau client

POST

Oui

Connexion du client, sans SSO

GET

Non

Connexion du client, avec SSO

POST

Oui

Charge utile JWT

La charge utile du jeton JWT est au format suivant :

Header

{
  "alg": "RS256",
  "kid": "KEY_ID"
}

Où :

  • alg est toujours RS256.
  • kid indique l'ID de clé utilisé pour sécuriser le jeton JWT. Utilisez cet ID pour rechercher la clé à partir de l'objet JSON dans l'attribut iss de la charge utile.

Charge utile

{
  "iss": "https://www.googleapis.com/robot/v1/metadata/x509/cloud-commerce-partner@system.gserviceaccount.com",
  "iat": CURRENT_TIME,
  "exp": CURRENT_TIME + 5 minutes,
  "aud": "PARTNER_DOMAIN_NAME",
  "sub": "PROCUREMENT_ACCOUNT_ID",
  "google": {
    "roles": [GCP_ROLE],
    "user_identity": USER_ID
  }
}

Où :

  • sub est l'ID du compte Google de l'utilisateur. Vous devez utiliser cet identifiant pour lier le compte Google de l'utilisateur à son compte dans votre système.
  • iss identifie l'expéditeur du jeton JWT. L'URL dans la demande iss renvoie à une clé publique de Google.
  • exp indique que le jeton a expiré et est définie sur cinq minutes après l'envoi du jeton.
  • aud est le domaine qui héberge votre produit, tel que example.com.
  • roles est un tableau de chaînes représentant les rôles de l'utilisateur. Il peut s'agir de:

    • account_admin, qui indique que l'utilisateur est un administrateur de compte de facturation (administrateur des commandes) du compte de facturation ayant acheté le produit, ou

    • project_editor, qui indique que l'utilisateur est un éditeur (gestionnaire d'accès), mais pas un administrateur de facturation, du projet associé à ce compte de facturation.

  • user_identity est l'ID GAIA obscurci de l'utilisateur, qui peut être utilisé pour lancer OpenID Connect.

Charge utile pour plusieurs commandes du même produit

Si vous avez activé plusieurs commandes du même produit, la charge utile inclut un objet orders supplémentaire. Cela inclut l'ID de commande unique correspondant à l'ID d'éligibilité de chaque commande. Assurez-vous que la page de connexion de votre application peut répondre à ce nouveau champ orders.

{
  "iss": "https://www.googleapis.com/robot/v1/metadata/x509/cloud-commerce-partner@system.gserviceaccount.com",
  "iat": CURRENT_TIME,
  "exp": CURRENT_TIME + 5 minutes,
  "aud": "PARTNER_DOMAIN_NAME",
  "sub": "PROCUREMENT_ACCOUNT_ID",
  "google": {
    "roles": [GCP_ROLE],
    "user_identity": USER_ID,
    "orders": [ORDER_ID1, ORDER_ID2]
  }
}

Où :

  • ORDER_ID est une liste d'ID de commande uniques pour chaque ID de droit d'accès, qui indique les différentes offres sur un même produit. Ce champ n'est disponible que si la possibilité de commander plusieurs fois le même produit est activée.

Pour en savoir plus sur l'activation de plusieurs commandes du même produit, consultez Activer les commandes multiples du même produit.

Vérifier la charge utile

Lorsque vous recevez le jeton JWT, vous devez vérifier les éléments suivants :

  1. Vérifiez que la signature du jeton JWT utilise la clé publique de Google.

  2. Vérifiez que le jeton JWT n'a pas expiré en consultant la revendication exp.

  3. Vérifiez que la demande aud correspond au domaine approprié pour votre produit.

  4. Vérifiez que la revendication iss est https://www.googleapis.com/robot/v1/metadata/x509/cloud-commerce-partner@system.gserviceaccount.com.

  5. Vérifiez que sub n'est pas vide.

Lancer Google Sign-In à l'aide de login_hint

Si vous souhaitez que vos utilisateurs passent par un flux d'autorisation OAuth 2.0 avec votre site, vous pouvez utiliser les informations d'identité de la charge utile pour initialiser ce flux sur le compte Google qu'ils utilisaient pour Google Cloud avant la redirection. Pour ce faire, vous devez fournir l'élément user_identity renseigné dans le jeton JWT en tant que login_hint. Pour en savoir plus, consultez la documentation Google OAuth 2.0.

Une fois que l'utilisateur a terminé le flux OAuth 2.0 avec votre site, vous devez vérifier qu'il s'agit bien de l'utilisateur attendu. Pour ce faire, vous devez utiliser le jeton d'accès OAuth 2.0 pour appeler l'API Google UserInfo afin de récupérer les informations de base de l'utilisateur. Cela renvoie un identifiant qui doit correspondre au champ user_identity du jeton JWT.

Créer des comptes de service pour vos clients

Si votre produit nécessite un compte de service, vous pouvez collaborer avec un ingénieur partenaire pour:

  • Provisionner des comptes de service pour vos clients ;
  • Configurez une page de gestion des comptes de service pour que vos clients puissent attribuer les rôles IAM (Identity and Access Management) requis aux comptes de service.

Vous devez fournir le lien vers cette page de compte de service à vos clients, généralement via la console de gestion de votre produit.

Provisionner les comptes de service

Pour provisionner les comptes de service, contactez votre ingénieur partenaire en indiquant les informations suivantes :

  • Nom du service: identifiant de produit unique qui permet de différencier votre produit des autres produits. Nous vous recommandons d'utiliser le nom de service que vous avez créé lors de l'intégration de votre produit.

  • ID du projet : ID du projet dans lequel vous créez les comptes de service qui accèdent aux ressources de vos clients. Vous devez créer tous les comptes de service utilisés par votre produit dans un seul projet.

  • Rôles IAM et raisonnement: rôles IAM requis pour les comptes de service et raisons pour lesquelles ces rôles sont nécessaires. Ceci est partagé avec votre client et peut avoir une incidence sur le choix de celui-ci d'accorder l'accès au compte de service.

Si vous souhaitez que votre client revienne sur votre site après avoir accordé l'accès au compte de service, envoyez le nom de domaine de votre console à votre ingénieur partenaire. Vous pouvez envoyer plusieurs noms de domaine, y compris des sous-domaines, tels que staging.example.com.

Intégrer la page de gestion des comptes de service dans la console de votre produit

L'ingénieur partenaire crée une page de gestion des comptes de service pour permettre à vos clients d'accorder l'accès aux comptes de service. Vous créez ensuite un lien vers la page depuis votre console.

Une fois que l'ingénieur partenaire vous a averti que la page de gestion du compte de service est prête, ajoutez des paramètres à l'URL, puis créez un lien vers cette page depuis votre console.

Vous devez ajouter deux paramètres à l'URL :

  • service-name : nom de service que vous avez fourni à votre ingénieur partenaire.

  • service-account-email : adresse e-mail du compte de service que vous avez créé pour votre client Chaque client possède un compte de service unique.

L'exemple suivant présente une URL avec les paramètres requis :

https://console.cloud.google.com/marketplace-saas/service-account/service-name/service-account-email

Vous pouvez ajouter des paramètres supplémentaires en fonction des besoins de vos clients. Exemple :

https://console.google.com/marketplace-saas/service-account/service-name/service-account-email;single=true;redirect=https%3A%2F%2Fexample.com

Les paramètres de l'URL indiquent que votre produit doit accéder à un seul projet Google Cloud et que le client peut revenir à votre console.

Liste des paramètres d'URL

Voici une liste des paramètres d'URL que vous pouvez envoyer à la page de gestion du compte de service:

ParamètreDescription
service-nameCe champ est obligatoire. Il s'agit du nom de service que vous avez fourni à votre ingénieur partenaire.
service-account-emailCe champ est obligatoire. Il s'agit de l'adresse e-mail du compte de service que vous avez créé pour votre client.
singleLorsque la valeur est "true", cela signifie que votre produit nécessite un accès à un seul projet.
hints=project-id-1Définit le projet auquel vous souhaitez que le compte de service accède. Utilisez des virgules pour séparer les projets.
filter=role1Les rôles attribués au compte de service sont limités à un sous-ensemble des rôles que vous avez fournis à votre ingénieur partenaire. Excluez roles/ lorsque vous utilisez le filtre.
redirectFournit au client un lien permettant de revenir à votre console de gestion. Pour utiliser ce paramètre, le nom de domaine doit être enregistré auprès de votre ingénieur partenaire.