es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , , ,

Answer

  1. Avatar for 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.

    1. En primer lugar, debes asegurarte de haber configurado correctamente Identity Platform para multitenencia. Puedes seguir la guía en el sitio web de Google Cloud Platform para configurar la multitenencia.
    2. 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:

    function setTenantClaim() {
      return request.auth.uid != null && request.auth.token.tenant == "tenant1";
    }
    
    1. A continuación, en tu documento OpenAPI, puedes configurar una definición de seguridad que use la reclamación personalizada para autenticar usuarios del inquilino específico.

    Por ejemplo:

    securityDefinitions:
      myTenantAuth:
        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}"
        x-google-claims:
          tenant:
            anyOf:
              - "tenant1"
    

    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.

Comments are closed.