Este artigo mostra como acessar um recurso protegido pelo Identity-Aware Proxy (IAP) de maneira programática usando identidades externas.
Há várias situações em que convém fazer isso, como as seguintes:
Seu aplicativo de front-end usa o Identity Platform diretamente. O servidor da API de back-end foi criado usando o App Engine e protegido pelo IAP usando identidades externas.
Seu aplicativo foi projetado para ser usado em um ambiente de navegador não tradicional, como no Android, iOS ou linha de comando, em que não é possível usar o redirecionamento do navegador para autenticar usuários.
Como acessar recursos
Para acessar um recurso de maneira programática, siga estas etapas:
Recupere o token de ID do usuário.
Node.js
Verifique se o usuário está conectado. O código abaixo mostra um exemplo simples de login de usuário com e-mail e senha:
// 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. });
Depois, recupere um token de ID no objeto
user
:user.getIdToken() .then((idToken) => { // idToken is now available and can be sent to API server. }) .catch((error) => { // Handler error. });
REST
Chame
signInWithPassword
para retornar um token de ID na resposta: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 }'
Inclua o token de ID no cabeçalho de autorização ao chamar um endpoint protegido pelo IAP.
curl -H "Authorization: Bearer GCIP-ID-TOKEN" "https://example.appspot.com/api"