In diesem Artikel wird gezeigt, wie Sie programmatisch auf eine Ressource zugreifen können, die durch Identity-Aware Proxy (IAP) mithilfe von externen Identitäten geschützt ist.
Dies kann in folgenden Situationen hilfreich sein:
Ihre Frontend-Anwendung nutzt Identity Platform direkt. Ihr Backend-API-Server wird mit App Engine erstellt und mit IAP unter Verwendung externer Identitäten geschützt.
Ihre Anwendung ist für die Verwendung in einer nicht herkömmlichen Browserumgebung konzipiert, z. B. unter Android, iOS oder in der Befehlszeile, wo die Verwendung einer Browserweiterleitung zur Authentifizierung von Nutzern nicht möglich ist.
Auf Ressourcen zugreifen
Informationen zum programmgesteuerten Zugriff auf eine Ressource mit einem Dienstkonto-JWT finden Sie unter Authentifizierung mit einem Dienstkonto-JWT.
So greifen Sie programmatisch mit einem ID-Token auf eine Ressource zu:
Rufen Sie das ID-Token des Nutzers ab.
Node.js
Achten Sie darauf, dass der Nutzer angemeldet ist. Der folgende Code zeigt ein einfaches Beispiel für die Anmeldung eines Nutzers mit einer E-Mail-Adresse und einem Passwort:
// 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. });Sie können dann ein ID-Token für das Objekt
userabrufen:user.getIdToken() .then((idToken) => { // idToken is now available and can be sent to API server. }) .catch((error) => { // Handler error. });REST
Beim Aufrufen von
signInWithPasswordwird ein ID-Token in der Antwort zurückgegeben: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 }'Fügen Sie dem Autorisierungs-Header das ID-Token hinzu, wenn Sie einen durch IAP geschützten Endpunkt aufrufen.
curl -H "Authorization: Bearer GCIP-ID-TOKEN" "https://example.appspot.com/api"