Accede de manera programática a recursos ajenos a Google

En este artículo, se muestra cómo acceder de manera programática a un recurso protegido con Identity-Aware Proxy (IAP) mediante identidades externas.

Existen varias situaciones en las que podrías querer realizar las siguientes acciones:

  • Tu aplicación de frontend aprovecha directamente Identity Platform. El servidor de la API de backend se compila con App Engine y está protegido con IAP mediante identidades externas.

  • Tu aplicación está diseñada para usarse en un entorno de navegador no tradicional, como Android, iOS o la línea de comandos, donde no es posible usar un redireccionamiento del navegador para autenticar usuarios.

Accede a los recursos

Para acceder a un recurso de manera programática, sigue estos pasos:

  1. Recupera el token de ID del usuario.

    Node.js

    Asegúrate de que el usuario haya accedido. En el siguiente código, se muestra un ejemplo simple de acceso a un usuario con un correo electrónico y una contraseña:

    // If signing in using project-level email/password IdP.
    // auth.tenantId = null; // This is null by default.
    // For signing in to a specific tenant using email/password.
    auth.tenantId = 'myTenantId';
    auth.signInWithEmailAndPassword(email, password)
      .then((user) => {
        // User signed in. ID token can now be retrieved.
      })
      .catch((error) => {
        // Handler error.
      });
    

    Luego, puedes recuperar un token de ID en el objeto user:

    user.getIdToken()
      .then((idToken) => {
        // idToken is now available and can be sent to API server.
      })
      .catch((error) => {
        // Handler error.
      });
    

    REST

    Si se llama a signInWithPassword, se muestra un token de ID en la respuesta:

    curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=API-KEY' \
    -H 'Content-Type: application/json' \
    --data-binary '{
      "email":"EMAIL",
      "password":"PASSWORD",
      "returnSecureToken":true,
      "tenantId":"TENANT-ID" # Only used in multi-tenancy
      }'
    
  2. Incluye el token de ID en el encabezado de autorización cuando llames a un extremo protegido con IAP.

    curl -H "Authorization: Bearer GCIP-ID-TOKEN" "https://example.appspot.com/api"