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:
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 }'
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"