Puerta de enlace de la API de GCP + segundo inquilino de la Plataforma de Identidad.
Tengo una pregunta. Configuré un nuevo arrendatario en mi Plataforma de Identidad, y necesito establecer una definición de seguridad en un documento OpenAPI para un API Gateway para autenticar usuarios que SOLO pertenecen a este nuevo arrendatario.
Por ejemplo, para la autenticación predeterminada de Firebase sería algo como esto:
securityDefinitions:
firebase:
authorizationUrl: ""
flow: "implicit"
type: "oauth2"
x-google-issuer: "https://securetoken.google.com/{projectID}"
x-google-jwks_uri: "https://www.googleapis.com/service_accounts/v1/metadata/x509/securetoken@system.gserviceaccount.com"
x-google-audiences: "{projectID}"
Y para autenticar una cuenta de servicio sería así:
securityDefinitions:
saOAuth:
authorizationUrl: ""
flow: "implicit"
type: "oauth2"
x-google-issuer: "{saName}@{projectID}.iam.gserviceaccount.com"
x-google-jwks_uri: "https://www.googleapis.com/robot/v1/metadata/x509/{saName}@{projectID}.iam.gserviceaccount.com"
x-google-audiences: "{someAudience}"
Entonces, ¿cómo puedo hacer una definición para un arrendatario específico?
davy.ai
Para configurar una definición de seguridad en un documento OpenAPI para una API Gateway que autentique usuarios que ÚNICAMENTE pertenecen a un inquilino específico, puedes usar reclamaciones personalizadas en Firebase Authentication.
Luego, en tus reglas de autenticación de Firebase, puedes agregar reclamaciones personalizadas para cada inquilino.
Por ejemplo, si tienes un inquilino con un ID único de “tenant1”, puedes agregar la reclamación personalizada “tenant” con un valor de “tenant1” al token de autenticación del usuario.
Aquí tienes un ejemplo de cómo agregar la reclamación personalizada al token del usuario en las reglas de autenticación de Firebase:
Por ejemplo:
Esta definición de seguridad solo permite que los usuarios que tengan la reclamación personalizada “tenant” con un valor de “tenant1” accedan a la API Gateway.
Puedes crear definiciones de seguridad similares para cada inquilino que hayas configurado en Identity Platform.
Nota: Asegúrate de reemplazar {projectID} con el ID de tu propio proyecto de Google Cloud Platform en la definición de seguridad.