Integra el frontend de tu app

En esta página se describe cómo integrar el frontend de tu app con Cloud Marketplace para brindarles a tus clientes una experiencia sin inconvenientes cuando se dirigen de Cloud Marketplace a tu producto.

A nivel general, debes proporcionar una URL de registro para administrar la creación de cuentas de usuario que luego se administran en la consola web. También debes proporcionar URL a la que deben acceder los usuarios. De forma opcional, también puedes integrar el inicio de sesión único (SSO).

Usa Producer Portal para integrar el frontend de tu app

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

El vínculo directo a 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, haz lo siguiente:

  1. En la lista de productos, haz clic en el nombre del producto.

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

Agrega tu URL de registro

Cuando los usuarios compren tu producto en Cloud Marketplace, debes crear una con tu producto por ellos. Para hacerlo, debes crear una página de registro para configurar y aprobar las apps cuentas en tu sistema. Puedes configurar la página como una página de registro en la que los usuarios se registran para obtener una cuenta en tu sistema, o como que aprueba las cuentas automáticamente.

Después de crear la página de registro, agrégala en Producer Portal:

  1. En la lista de productos, haz clic en el nombre del producto.

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

  3. Ingresa la URL de tu página de registro en el campo URL de registro.

Verifica la información de registro del usuario

Si un usuario aún no establece una cuenta en tu sistema, debe hacer clic en el Registrarse con el botón YOUR_COMPANY_NAME en Cloud Marketplace Cuando hacen clic en el botón, Google Cloud envía HTTP POST a tu página de registro, con una Token web JSON (JWT) en el x-gcp-marketplace-token. El JWT contiene el nombre de usuario ID de la cuenta de adquisición, que los identifica como un usuario de Google Cloud, y un ID ofuscado, que representa el ID de su Cuenta de Google. Debes usar tanto ID de la cuenta de adquisición y 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 un una solicitud de aprobación de cuenta a la API de Partner Procurement, como pasos para la integración del backend.

Para obtener información detallada sobre la carga útil de JWT y cómo verificarla, consulta Verifica el JWT a continuación.

Si es la primera vez que trabajas con JWT, consulta la Introducción a JWT.

Agrega tu URL de acceso

Debes especificar la URL de la página de acceso de tu app.

Para ingresar la URL de la página de acceso de tu app en Producer Portal, haz lo siguiente:

  1. En la lista de productos, haz clic en el nombre del producto.

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

  3. Ingresa la URL de la página de acceso de tu app en el campo URL de acceso.

Habilita el inicio de sesión único (SSO) para tus clientes (opcional)

Para habilitar el SSO en Producer Portal, haz lo siguiente:

  1. En la lista de productos, haz clic en el nombre del producto.

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

    2. En ¿Habilitar el acceso SSO?, selecciona .

Verifica las contraseñas de tus clientes Información de acceso a SSO

Cuando los clientes acceden a tu app con SSO, Google Cloud envía HTTP POST a la página de acceso de tu app, con una Token web JSON (JWT) con el mismo formato que el JWT que se envía cuando los usuarios se registran por primera vez en tu app.

Para obtener información detallada sobre la carga útil de JWT y cómo verificarla, consulta Verifica el JWT a continuación.

Verifica el JWT

Algunos procesos, como el registro de un cliente nuevo o el acceso de un cliente con SSO, implica enviarte una solicitud HTTP POST con un Token web JSON (JWT) que podrías necesitar para verificar.

En la siguiente tabla, se muestra lo siguiente:

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

Registrar un cliente nuevo

POST

Acceso del cliente sin SSO

GET

No

Acceso del cliente con SSO

POST

La carga útil de JWT

La carga útil de JWT está en el siguiente formato:

Encabezado

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

Aquí:

  • alg siempre es RS256.
  • kid indica el ID de claves que se usó para asegurar el JWT. Puedes usar el ID de claves con el fin de buscar la clave del objeto de JSON en el atributo iss en 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
  }
}

Aquí:

  • 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 el remitente del JWT. La URL en la reclamación de ississ vincula a una clave pública de Google.
  • exp indica cuándo vence el token y se establece en 5 minutos después de que se envía el token.
  • aud es el dominio que aloja tu producto, como example.com.
  • roles es un arreglo de strings que representan las funciones del usuario. Sí, es posible una de las siguientes opciones:

    • account_admin, que indica que el usuario es un Administrador de cuentas de facturación (Administrador de pedidos) de la cuenta de facturación que compró el producto

    • project_editor, que indica que el usuario es editor (derecho administrador), pero no un administrador de facturación, del proyecto de ese proyecto cuenta de facturación de Google Cloud.

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

Carga útil para varios pedidos del mismo producto

Si habilitaste varios pedidos del mismo producto, la carga útil incluirá 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 acceso de tu app 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]
  }
}

Aquí:

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

Si quieres obtener más información para activar varios pedidos del mismo producto, consulta Cómo activar varios pedidos del mismo producto.

Verifica la carga útil

Cuando recibas el JWT, debes verificar lo siguiente:

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

  2. Para verificar que el JWT no haya vencido, revisa la reclamación de exp.

  3. Verifica que la reclamación aud sea el dominio correcto para tu producto.

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

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

Iniciar Acceso con Google con login_hint

Si deseas que tus usuarios pasen por 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 usaban para Google Cloud antes del redireccionamiento. Para ello, debes proporcionar el user_identity proporcionado en el JWT como el login_hint. Para obtener más información, visita el Documentación de Google OAuth 2.0.

Una vez que el usuario complete el flujo de OAuth 2.0 con tu sitio, debes verificarlo. de que sea el usuario que esperabas que completara el flujo de OAuth. Para ello, usa el token de acceso de OAuth 2.0 a fin de llamar a la API de UserInfo de Google y recuperar la información básica del usuario. Esto muestra un ID que se espera que coincida con el user_identity del JWT.

Crea cuentas de servicio para tus clientes

Si tu producto requiere una cuenta de servicio, puedes trabajar con un ingeniero socio a:

  • Aprovisionar cuentas de servicio para tus clientes
  • Configura una página de administración de cuentas de servicio para que tus clientes otorguen la los roles de Identity and Access Management (IAM) requeridos para las cuentas de servicio.

Debes proporcionar el vínculo a la página de esta cuenta de servicio a tus clientes. generalmente a través de la consola de administración del producto.

Aprovisiona las cuentas de servicio

Para aprovisionar las cuentas de servicio, comunícate con tu Ingeniero socio y asegúrate de incluir la siguiente información:

  • Nombre del servicio: Es un ID del producto único que distingue tus producto de otros productos. Te recomendamos usar el nombre del servicio se creó cuando incorporaron tu producto.

  • ID del proyecto: Es el ID del proyecto en el que creas las cuentas de servicio. que acceden a las contraseñas de tus clientes de Google Cloud. Debes crear todas las cuentas de servicio que tu producto utiliza dentro de un solo proyecto.

  • Roles y razonamiento de IAM: los roles de IAM necesarios para las cuentas de servicio y el motivo por el que los roles son necesarios. Esto se comparte con tu cliente y puede afectar si este otorga acceso a la cuenta de servicio.

Si desea que su cliente vuelva a su sitio después de otorgar el consentimiento acceso a la cuenta de servicio, envía el nombre de dominio de tu consola a el ingeniero socio. Puedes enviar varios nombres de dominio, incluidos subdominios, como staging.example.com.

Integra la página de administración de cuentas de servicio en la consola de tu producto

El ingeniero socio crea una página de administración de cuentas de servicio para permitir que tu que los clientes otorguen acceso a las cuentas de servicio. Luego vinculas la página desde tu consola.

Luego de que el Ingeniero socio te notifique que el equipo de administración esté lista, agregue parámetros a la URL y, luego, vincule a la página desde su la consola de Cloud.

Debes agregar dos parámetros a la URL:

  • service-name: Este es el nombre del servicio que le proporcionaste a tu Ingeniero socio.

  • service-account-email: Esta es la dirección de correo electrónico de la cuenta de servicio a la que que creaste para tu cliente. Cada cliente tiene una cuenta de servicio única.

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

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

Puede agregar parámetros adicionales según las métricas necesidades empresariales. 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 proyecto de Google Cloud y que el cliente pueda regresar a tu consola.

Lista de parámetros de URL

La siguiente es una lista de los parámetros de URL que puedes enviar al servicio página de administración de la cuenta:

ParámetroDescripción
service-nameEste campo es obligatorio. Este es el nombre del servicio que le proporcionaste a tu Ingeniero socio.
service-account-emailEste campo es obligatorio. Esta es la dirección de correo electrónico de la cuenta de servicio que creaste para tu cliente.
singleCuando es verdadero, esto indica que tu producto requiere acceso a un solo proyecto.
hints=project-id-1Establece el proyecto al que deseas que acceda la cuenta de servicio. Usa comas para separar los proyectos.
filter=role1Limita los roles otorgados a la cuenta de servicio a un subconjunto de los roles que le proporcionaste al Ingeniero socio. Excluye roles/ cuando uses el filtro.
redirectProporciona un vínculo para que el cliente regrese a la consola de administración. El nombre de dominio debe estar registrado con el Ingeniero socio para poder usar este parámetro.