Integrar el frontend de tu aplicación

En esta página se describe cómo integrar el frontend de tu aplicación con Cloud Marketplace para ofrecer a tus clientes una experiencia más fluida a la hora de pasar de Cloud Marketplace a tu producto.

A grandes rasgos, debes proporcionar una URL de registro para gestionar la creación de cuentas de usuario, que luego se gestionan en tu consola web. También debes proporcionar una URL para que los usuarios puedan iniciar sesión. También puedes integrar el inicio de sesión único (SSO).

Usar Producer Portal para integrar el frontend de tu aplicación

Para acceder a toda la información que necesitas para integrar el frontend de tu aplicación con Cloud Marketplace desde una sola ubicación, puedes usar la sección Integración del frontend de Producer Portal.

El enlace directo de Producer Portal es el siguiente:

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

Para acceder a la sección Integración de frontend, sigue estos pasos:

  1. Selecciona el nombre de tu producto en la lista de productos.

  2. En la página Visión general del producto, ve a la sección Integración técnica y haz clic en Integración de frontend.

Añade tu URL de registro

Cuando los usuarios compren tu producto en Cloud Marketplace, debes crear una cuenta para ellos en tu producto. Para ello, debe crear una página de registro para configurar y aprobar las cuentas de los usuarios en su sistema. Puedes configurar la página como una página de registro en la que los usuarios se registren para obtener una cuenta en tu sistema o como una página que apruebe las cuentas automáticamente.

Una vez que hayas creado la página de registro, añádela en Producer Portal:

  1. Selecciona el nombre de tu producto en la lista de productos.

  2. En la página Visión general del producto, ve a la sección Integración técnica y haz clic en Integración de frontend.

  3. Introduzca la URL de su página de registro en el campo URL de registro.

Verificar la información de registro del usuario

Si un usuario aún no ha creado una cuenta en tu sistema, debe hacer clic en el botón Registrarse con YOUR_COMPANY_NAME en Cloud Marketplace. Cuando hacen clic en el botón, Google Cloud envía una solicitud HTTP POST a tu página de registro con un JSON Web Token (JWT) en el parámetro x-gcp-marketplace-token. El JWT contiene el ID de la cuenta de aprovisionamiento del usuario, que lo identifica como Google Cloud usuario, y un ID ofuscado, que representa su ID de cuenta de Google. Debes usar tanto el ID de la cuenta de aprovisionamiento como el ID ofuscado para vincular la cuenta de Google del usuario a su cuenta en tu sistema.

Después de verificar el JWT, tu página de registro debe enviar una solicitud de aprobación de cuenta a la API Partner Procurement, que se describe en los pasos de integración del backend.

Para obtener información detallada sobre la carga útil del JWT y cómo verificarla, consulta la sección Verificar el JWT que aparece más abajo.

Si no tienes experiencia con los JWTs, consulta la introducción a los JWTs.

Añade la URL de inicio de sesión

Debe especificar la URL de la página de inicio de sesión de su aplicación.

Para introducir la URL de la página de inicio de sesión de tu aplicación en el Portal para productores, sigue estos pasos:

  1. Selecciona el nombre de tu producto en la lista de productos.

  2. En la página Visión general del producto, ve a la sección Integración técnica y haz clic en Integración de frontend.

  3. Introduce la URL de la página de inicio de sesión de tu aplicación en el campo URL de inicio de sesión.

(Opcional) Habilitar el inicio de sesión único (SSO) para tus clientes

Para habilitar el SSO en Producer Portal, sigue estos pasos:

  1. Selecciona el nombre de tu producto en la lista de productos.

    1. En la página Visión general del producto, ve a la sección Integración técnica y haz clic en Integración de frontend.

    2. En ¿Quieres habilitar el inicio de sesión único (SSO)?, selecciona .

Verificar la información de inicio de sesión con SSO de tus clientes

Cuando los clientes inician sesión en tu aplicación mediante SSO, Google Cloud envía una solicitud HTTP POST a la página de inicio de sesión de tu aplicación con un JSON Web Token (JWT) con el mismo formato que el JWT enviado cuando los usuarios se registran por primera vez en tu aplicación.

Para obtener información detallada sobre la carga útil del JWT y cómo verificarla, consulta la sección Verificar el JWT que aparece más abajo.

Verificar el JWT

Algunos procesos, como registrar un nuevo cliente o iniciar sesión con SSO, implican enviarte una solicitud HTTP POST con un JSON Web Token (JWT) que puede que tengas que verificar.

En la siguiente tabla se indica lo siguiente:

  • Eventos que implican el envío de una solicitud HTTP con un JWT.
  • El tipo de solicitud HTTP implicada.
  • Indica si debes verificar el JWT o no.
Evento Tipo de solicitud HTTP Se requiere verificación de JWT

Registrar a un nuevo cliente

POST

Inicio de sesión del cliente sin SSO

GET

No

Inicio de sesión de clientes con SSO

POST

Carga útil del JWT

La carga útil del JWT tiene el siguiente formato:

Encabezado

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

Donde:

  • alg siempre es RS256.
  • kid indica el ID de clave que se ha usado para proteger el JWT. Usa el ID de la clave para buscar la clave del objeto JSON en el atributo iss de la carga útil.

Carga útil

{
  "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
  }
}

Donde:

  • sub es el ID de la cuenta de Google del usuario. Debes usar este ID para vincular la cuenta de Google del usuario con su cuenta en tu sistema.
  • iss identifica al remitente del JWT. La URL de los enlaces de reclamación de iss lleva a una clave pública de Google.
  • exp indica cuándo caduca el token y se establece en 5 minutos después de que se envíe el token.
  • aud es el dominio que aloja su producto, como example.com.
  • roles es una matriz de cadenas que representa los roles del usuario. Puede ser una de las siguientes opciones:

  • user_identity es el ID de GAIA ofuscado del usuario, que se puede usar para iniciar OpenID Connect.

Carga útil de varios pedidos del mismo producto

Si has habilitado varios pedidos del mismo producto, la carga útil incluye un objeto orders adicional. Esto incluye el ID de pedido único correspondiente al ID de derecho de cada pedido. Asegúrate de que la página de inicio de sesión de tu aplicación pueda responder a este nuevo campo 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]
  }
}

Donde:

  • ORDER_ID es una lista de IDs de pedido únicos de cada ID de derecho que indica las diferentes ofertas del mismo producto. Este campo solo está disponible si se han habilitado varios pedidos del mismo producto.

Para obtener más información sobre cómo activar varios pedidos del mismo producto, consulta el artículo Activar varios pedidos del mismo producto.

Verificar la carga útil

Cuando recibas el JWT, debes verificar lo siguiente:

  1. Verifica que la firma JWT utilice la clave pública de Google.

  2. Verifica que el JWT no haya caducado comprobando la reclamación exp.

  3. Verifica que el aud sea el dominio correcto de tu producto.

  4. Verifica que la reclamación de iss sea https://www.googleapis.com/robot/v1/metadata/x509/cloud-commerce-partner@system.gserviceaccount.com.

  5. Comprueba que sub no esté vacío.

Iniciar el inicio de sesión de Google con login_hint

Si quieres que tus usuarios completen un flujo de consentimiento de OAuth 2.0 con tu sitio, puedes usar la información de identidad de la carga útil para inicializar ese flujo en la cuenta de Google que estaban usando para Google Cloud antes de la redirección. Para ello, debes proporcionar el user_identity incluido en el JWT como login_hint. Para obtener más información, consulta la documentación de OAuth 2.0 de Google.

Una vez que el usuario haya completado el flujo de OAuth 2.0 con tu sitio, debes verificar que se trata del usuario que esperabas que completara el flujo de OAuth. Para ello, debes usar el token de acceso de OAuth 2.0 para llamar a la API UserInfo de Google y obtener la información básica del usuario. Devuelve un ID que debe coincidir con el campo user_identity del JWT.

Crear cuentas de servicio para tus clientes

Si tu producto requiere una cuenta de servicio, puedes colaborar con un ingeniero de partners para hacer lo siguiente:

  • Proporcionar cuentas de servicio a tus clientes.
  • Configura una página de gestión de cuentas de servicio para que tus clientes puedan conceder los roles de Gestión de Identidades y Accesos (IAM) necesarios a las cuentas de servicio.

Debes proporcionar el enlace a esta página de cuenta de servicio a tus clientes, normalmente a través de la consola de gestión de tu producto.

Aprovisionar las cuentas de servicio

Para aprovisionar las cuentas de servicio, ponte en contacto con tu ingeniero de partners e incluye la siguiente información:

  • Nombre del servicio: es un ID de producto único que diferencia su producto de otros. Te recomendamos que uses el nombre del servicio que creaste cuando incorporaste tu producto.

  • ID del proyecto: el ID del proyecto en el que creas las cuentas de servicio que acceden a los recursos de tus clientes. Debes crear todas las cuentas de servicio que utilice tu producto en un solo proyecto.

  • Roles y motivos de gestión de identidades y accesos: los roles de gestión de identidades y accesos necesarios para las cuentas de servicio y el motivo por el que son necesarios. Esta información se comparte con tu cliente y puede influir en si te concede acceso a la cuenta de servicio.

Si quieres que tu cliente vuelva a tu sitio después de conceder acceso a la cuenta de servicio, envía el nombre de dominio de tu consola al ingeniero de tu partner. Puede enviar varios nombres de dominio, incluidos subdominios, como staging.example.com.

Integrar la página de gestión de cuentas de servicio en la consola de tu producto

El ingeniero del partner crea una página de gestión de cuentas de servicio para que tus clientes puedan conceder acceso a las cuentas de servicio. A continuación, vincula la página desde tu consola.

Cuando el ingeniero de partners te avise de que la página de gestión de cuentas de servicio está lista, añade parámetros a la URL y, a continuación, enlaza la página desde tu consola.

Debe añadir dos parámetros a la URL:

  • service-name: es el nombre del servicio que has proporcionado a tu ingeniero de partner.

  • service-account-email: esta es la dirección de correo de la cuenta de servicio que has creado para tu cliente. Cada cliente tiene una cuenta de servicio única.

En el ejemplo siguiente se muestra una URL con los parámetros necesarios:

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

Puede añadir parámetros adicionales en función de las necesidades de sus clientes. Por ejemplo:

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

Los parámetros de la URL indican que tu producto requiere acceso a un solo proyectoGoogle Cloud y que el cliente puede volver a tu consola.

Lista de parámetros de URL

A continuación, se muestra una lista de los parámetros de URL que puede enviar a la página de gestión de cuentas de servicio:

ParámetroDescripción
service-nameEste campo es obligatorio. Este es el nombre del servicio que has proporcionado a tu ingeniero de partners.
service-account-emailEste campo es obligatorio. Esta es la dirección de correo de la cuenta de servicio que has creado para tu cliente.
singleSi es true, indica que su producto requiere acceso a un solo proyecto.
hints=project-id-1Define el proyecto al que quieres que acceda la cuenta de servicio. Usa comas para separar los proyectos.
filter=role1Limita los roles concedidos a la cuenta de servicio a un subconjunto de los roles que has proporcionado a tu ingeniero de partners. Excluya el roles/ al usar el filtro.
redirectProporciona un enlace para que el cliente vuelva a tu consola de gestión. El nombre de dominio debe registrarse con tu ingeniero de partners para usar este parámetro.