Integrar el frontend de tu app

En esta página, se describen los pasos para integrar el frontend de tu app con Google Cloud Marketplace. La integración de frontend ayuda a brindar a tus clientes una experiencia sin interrupciones cuando pasan de Google Cloud Marketplace a tu app.

Crea una página de activación de cuenta para nuevos usuarios

Cuando los usuarios eligen tu producto en Google Cloud Marketplace, deben activar sus cuentas en tu app. Debes crear una página de activación para configurar y aprobar las cuentas de los usuarios en tu sistema. Puedes configurar la página como una página de registro en la que los usuarios deben registrarse para obtener una cuenta en tu sistema o como una página que aprueba las cuentas automáticamente. Cuando configures la página de activación, asegúrate de que los usuarios puedan acceder a ella sin ingresar un nombre de usuario y contraseña.

En Google Cloud Marketplace, cuando los usuarios hacen clic en el vínculo para registrarse en tu aplicación, Google envía una solicitud HTTP POST a tu página de activación y envía un token web JSON (JWT) en el parámetro x-gcp-marketplace-token. El JWT contiene el ID de la cuenta de adquisición del usuario, que los identifica como usuarios de Google Cloud. Debes usar este ID para vincular la Cuenta de Google del usuario con su cuenta en tu sistema.

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

Si eres nuevo en JWT, consulta la introducción a JWT.

Agrega tu página de activación de la cuenta al portal

Puedes usar Producer Portal para agregar la URL de la página de activación de la cuenta.

Producer Portal

El vínculo directo al Portal para socios es el siguiente:

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

Para agregar tu página de activación de cuentas a 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 Integración técnica y haz clic en INTEGRACIÓN DE FRONTEND.

  3. Ingresa la URL de tu página de activación de cuentas en el campo URL de registro.

Portal para socios

El vínculo directo al Portal para socios es el siguiente:

https://console.cloud.google.com/partner/solutions?project=YOUR_PROJECT_ID

Para agregar tu página de activación de cuentas al Portal para socios:

  1. En la lista de soluciones, haz clic en el ID de la solución que creaste.

  2. En la página Planes y características, haz clic para editar la página.

  3. Ingresa la URL de tu página de activación de cuentas en el campo URL de registro.

Verifica el JWT

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

Encabezado

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

Donde:

  • alg siempre es RS256
  • kid indica el ID de la clave que se usó para proteger el JWT. Usa el ID de 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 el remitente del JWT. La URL de la reclamación iss 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-pro.com.
  • roles es un arreglo de strings que representan las funciones del usuario. En este momento, puede ser: ** account_admin, que indica que el usuario es un administrador de la cuenta de facturación que compró el producto, o ** project_editor, que indica que el usuario es un editor del proyecto, pero no administrador de facturación, en esa cuenta de facturación.
  • user_identity es el ID de GAIA ofuscado del usuario, que se puede usar para iniciar Open ID Connect.

Cuando recibas el JWT, debes verificar lo siguiente:

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

  2. Verifica que el JWT no haya vencido. Para ello, verifica la reclamación 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.

Inicia el 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 la documentación de Google OAuth2.0.

Una vez que el usuario complete el flujo de OAuth 2.0 con tu sitio, debes verificar 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 debe coincidir con el campo user_identity del JWT.

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

Cuando los clientes se registran para tu producto, deben poder registrarse a fin de obtener una cuenta en tu página de activación sin antes ingresar un nombre de usuario y contraseña.

La integración con SSO usa JWT para autenticar usuarios. Si eres nuevo en JWT, consulta la introducción a JWT.

Producer Portal

Para configurar la integración con SSO, haz lo siguiente:

  1. En laDescripción general de tu producto, dirígete aIntegración técnica y haz clic enINTEGRACIÓN DE FRONTEND.

  2. Para vincular tu panel de control, ingresa la URL del panel en el campo URL de acceso.

  3. Para usar el SSO de Google, haz clic en Habilitar acceso a SSO (opcional) y, luego, ingresa tu URL de acceso de SSO en el campo URL de SSO.

  4. En la interfaz web de tu app, agrega un código para verificar la carga útil de JWT que se envía a tu app cuando los usuarios acceden desde Google Cloud Marketplace.

    El formato del JWT para la autenticación es el mismo que el JWT que se envía cuando los usuarios se registran por primera vez en tu aplicación, como se describe en Verifica el JWT.

Portal para socios

Para configurar la integración con SSO, haz lo siguiente:

  1. Ve a la página Planes y características de tu producto y elige EDITAR los planes y las funciones de tu producto.

  2. Para vincular tu panel de control, ingresa la URL del panel en el campo URL del panel.

  3. Para usar el SLO de Google, en Acceso a SSO (opcional), haz clic en Habilitar SSO y, luego, ingresa tu URL de acceso de SSO en el campo URL de acceso de SSO. Ingresa la URL para tus claves de API de SSO en el campo URL de claves de API de SSO.

  4. En la interfaz web de tu app, agrega un código para verificar la carga útil de JWT que se envía a tu app cuando los usuarios acceden desde Google Cloud Marketplace.

    El formato del JWT para la autenticación es el mismo que el JWT que se envía cuando los usuarios se registran por primera vez en tu aplicación, como se describe en Verifica el JWT.

Aprovisiona cuentas de servicio para tus clientes

Si tu app requiere una cuenta de servicio, puedes trabajar con un ingeniero socio a fin de aprovisionar cuentas de servicio para tus clientes y configurar una página a fin de que tus clientes otorguen las funciones de administración de identidades y accesos (IAM) necesarias a las cuentas de servicio. Debes proporcionar el vínculo a la página, generalmente a través de la consola de administración de tu app.

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

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

  • ID del proyecto: El ID del proyecto en el que creas las cuentas de servicio que acceden a los recursos. Todas las cuentas de servicio que use la app deben crearse en un solo proyecto.

  • Razones y funciones de IAM: Son las funciones de IAM necesarias para las cuentas de servicio y el motivo por el cual se necesitan. Esto se comparte con tu cliente y puede influir en si el cliente otorga acceso a la cuenta de servicio.

Si deseas que tu cliente regrese a tu sitio después de otorgar acceso a la cuenta de servicio, envía el nombre de dominio de tu consola a tu Ingeniero socio. Puedes enviar varios nombres de dominio, incluidos los subdominios, como staging.example.com.

El ingeniero socio crea una página para permitir que tus clientes otorguen acceso a las cuentas de servicio. Luego, vincule la página desde la consola.

Cómo integrar la URL en su consola

Una vez que el ingeniero socio te haya notificado que la página está lista, agrega parámetros a la URL y, luego, vincúlala desde tu consola.

Debes agregar dos parámetros a la URL:

  • service-name: Este es el nombre de 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 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

Puedes agregar parámetros adicionales según las necesidades de tu cliente. 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 el producto requiere acceso a un solo proyecto de Google Cloud y que el cliente puede regresar a tu consola.

Lista de parámetros de URL

A continuación, se muestra una lista de los parámetros de URL que puedes enviar a la página de acceso de otorgamiento:

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