En esta página, se describe cómo integrar el frontend de tu app en Cloud Marketplace para brindar a tus clientes una experiencia fluida cuando pasan de Cloud Marketplace a tu producto.
En un nivel alto, debes proporcionar una URL de registro para controlar la creación de cuentas de usuarios, que luego se administran en tu consola web. También debes proporcionar una URL para que los usuarios accedan. De manera opcional, 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 la sección Integración de frontend del 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, sigue estos pasos:
En la lista de productos, haz clic en el nombre del producto.
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.
Agrega tu URL de registro
Cuando los usuarios compren tu producto en Cloud Marketplace, debes crear una cuenta con tu producto para ellos. Para ello, debes crear una página de registro 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 se registran para obtener una cuenta en tu sistema o como una página que aprueba las cuentas automáticamente.
Después de crear la página de registro, agrégala a Producer Portal:
En la lista de productos, haz clic en el nombre del producto.
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.
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 creó 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
token web JSON (JWT)en el
parámetrox-gcp-marketplace-token
. El JWT contiene el ID de la cuenta de adquisición del usuario, que lo identifica como usuario de Google Cloud , y un ID ofuscado, que representa su ID de la cuenta de Google. Debes usar el ID de la cuenta de adquisición y el ID ofuscado para vincular la Cuenta de Google del usuario con 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 de Partner Procurement, que se describe en los pasos de integración de backend.
Para obtener información detallada sobre la carga útil de JWT y cómo verificarla, consulta la sección 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:
En la lista de productos, haz clic en el nombre del producto.
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.
Ingresa la URL de la página de acceso de tu app en el campo URL de acceso.
(Opcional) Habilita el inicio de sesión único (SSO) para tus clientes
Para habilitar el SSO en Producer Portal, haz lo siguiente:
En la lista de productos, haz clic en el nombre del producto.
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.
En ¿Quieres habilitar el acceso a SSO?, selecciona Sí.
Verifica la información de acceso de SSO de tus clientes
Cuando los clientes acceden a tu app con SSO, Google Cloud envía una solicitudHTTP POST
a la página de acceso de tu app, con untoken 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 la sección Verifica el JWT a continuación.
Verifica el JWT
Algunos procesos, como registrar a un cliente nuevo o acceder a la cuenta de un cliente con SSO, implican enviarte una solicitud HTTP POST
con un token web JSON (JWT) que tal vez debas verificar.
En la siguiente tabla, se indican los siguientes elementos:
- Eventos que implican el envío de una solicitud HTTP con un JWT.
- Es el tipo de solicitud HTTP involucrada.
- Indica si debes verificar el JWT.
Evento | Tipo de solicitud HTTP | Se requiere verificación de JWT |
---|---|---|
Registra a un cliente nuevo |
POST |
Sí |
Acceso del cliente, sin SSO |
GET |
No |
Acceso del cliente con SSO |
POST |
Sí |
La carga útil del JWT
La carga útil de JWT está en el siguiente formato:
Encabezado
{ "alg": "RS256", "kid": "KEY_ID" }
Aquí:
alg
siempre esRS256
.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 atributoiss
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 deiss
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, comoexample.com
.roles
es un arreglo de strings que representan las funciones del usuario. Puede ser cualquiera 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 productoproject_editor
, que indica que el usuario es editor (administrador de derechos), pero no administrador de facturación, del proyecto en esa cuenta de facturación.
user_identity
es el ID de GAIA ofuscado del usuario, que se puede usar para 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 que corresponde 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 pedidos únicos para cada ID de derecho que indica las diferentes ofertas del mismo producto. Este campo solo está disponible si se habilitaron varios pedidos del mismo producto.
Para obtener más información sobre cómo 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:
Verifica que la firma de JWT use la clave pública de Google.
Verifica que el JWT no haya vencido. Para ello, verifica la reclamación
exp
.Verifica que la reclamación
aud
sea el dominio correcto para tu producto.Verifica que la reclamación
iss
seahttps://www.googleapis.com/robot/v1/metadata/x509/cloud-commerce-partner@system.gserviceaccount.com
.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 OAuth 2.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 se espera que coincida con el campo 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 para hacer lo siguiente:
- Aprovisiona cuentas de servicio para tus clientes.
- Configura una página de administración de cuentas de servicio para que tus clientes otorguen los roles de Identity and Access Management (IAM) necesarios a las cuentas de servicio.
Debes proporcionar el vínculo a esta página de la cuenta de servicio a tus clientes, por lo general, a través de la consola de administración de tu producto.
Aprovisiona las cuentas de servicio
Para aprovisionar las cuentas de servicio, comunícate con tu ingeniero socio y proporciona la siguiente información:
Nombre del servicio: Es un ID de producto único que diferencia tu producto de otros. Te recomendamos que uses el nombre del servicio que creaste cuando incorporaste tu producto.
ID del proyecto: Es 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 usa tu producto en un solo proyecto.
Roles y motivos de IAM: Los roles de IAM 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 este otorga acceso a la cuenta de servicio.
Si quieres que tu cliente vuelva 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
.
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 tus clientes otorguen acceso a las cuentas de servicio. Luego, vincula la página desde tu consola.
Después de que el ingeniero socio te notifique que la página de administración de cuentas de servicio está lista, agrega parámetros a la URL y, luego, vincula la página desde tu consola.
Debes agregar dos parámetros a la URL:
service-name
: Es el nombre del servicio que le proporcionaste a tu ingeniero asociado.service-account-email
: 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 tus 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 proyecto deGoogle Cloud y que el cliente puede volver a tu consola.
Lista de parámetros de URL
A continuación, se incluye una lista de los parámetros de URL que puedes enviar a la página de administración de cuentas de servicio:
Parámetro | Descripción |
---|---|
service-name | Este campo es obligatorio. Este es el nombre del servicio que le proporcionaste a tu ingeniero socio. |
service-account-email | Este campo es obligatorio. Esta es la dirección de correo electrónico de la cuenta de servicio que creaste para tu cliente. |
single | Cuando es verdadero, indica que tu producto requiere acceso a un solo proyecto. |
hints=project-id-1 | Establece el proyecto al que deseas que acceda la cuenta de servicio. Usa comas para separar los proyectos. |
filter=role1 | Limita los roles otorgados a la cuenta de servicio a un subconjunto de los roles que proporcionaste a tu ingeniero de socios. Excluye el roles/ cuando uses el filtro. |
redirect | Proporciona un vínculo para que el cliente vuelva a tu consola de administración. El nombre de dominio debe registrarse con tu ingeniero socio para usar este parámetro. |