2017-11-19 3 views
1

Probleme beim Abrufen des API-Gateway-JWT-Tokens mit Google Log In.Probleme beim Abrufen des Cognito-JWT-Tokens bei Verwendung von Google Anmelden

Anwendungsfall: Wir haben einen Cognito-Benutzerpool eingerichtet, um Google als Identitätsanbieter zu verwenden. Wir haben auch eine Reihe von API-Endpunkten im API-Gateway, von denen einige einen Authorization Header für den Zugriff auf den Endpunkt benötigen. Wir haben eine cognito_user_pool Autorisierung an einige der Routen angeschlossen. Bei der Anmeldung mit einem Cognito-Benutzer (der Benutzer wurde direkt mit dem Pool angemeldet und hat die Konto-/E-Mail-Überprüfung durchlaufen), erhalte ich ein JWT-Token zurück. Ich bin dann in der Lage, API-Gateway-Anfragen zu machen, und alles stimmt mit der Welt.

Es war mein Verständnis (basierend auf der Annahme natürlich ...), dass, wenn ein 3rd-Party-Anbieter verwenden, ich in den Provider anmelden würde (google) erhalten einen Token zurück, dass ich dann für einen cognito JWT Token austauschen würde Ich könnte dann API-Anfragen mit machen. Nach viel graben, stellt sich heraus, dass das Verhalten NICHT unterstützt wird. Von dem, was ich von einer Vielzahl von Blog-Posts und Stack-Überlauf feststellen kann, ist, dass Sie können Anmeldeinformationen erhalten dann andere AWS-Ressourcen verwenden, sondern nur über das AWS-SDK oder ein generiertes API Gateway SDK, die keinen Sinn in dem Kontext macht von einer API ...

Ich frage mich, ob jemand diesen Use Case hat, und wie sie damit umgehen, während er weiterhin cognito als Benutzerverwaltungssystem verwendet oder ob es irgendwelche Pläne seitens AWS gibt Aktivieren Sie eine Form dieses Verhaltens? Etwas verwandtes t: https://forums.aws.amazon.com/thread.jspa?threadID=231850

Antwort

0

Also, soweit ich verstehe, Sie möchten Ihre API mit Google SignIn authentifizieren, aber es funktioniert derzeit nur, wenn Sie das Cognito-Token verwenden, doc Anmeldung mit Userpool Benutzername + Passwort. Wenn dem so ist, habe ich vor einer Weile das gleiche Problem gesehen. Es ist möglich, Google mit Cognito Userpool Authorizer zu verwenden, und ich konnte dasselbe tun. Sign-in entweder der Cognito userpool des

  • Es dauert nur ID-Token
  • Es erkennt nur Cognito Token dh iss Anspruch sollte cognito IDP & nicht Google, Facebook usw.
  • Sie müssen sein integrierte Benutzeroberfläche (der einfachste Weg oder Sie können den/authorize-Endpunkt verwenden, um die Benutzeroberfläche zu überspringen). Natürlich sollte Google als IdP für einen App-Client aktiviert sein. Wählen Sie auf der Cognito-Seite Google & Anmeldung. Sie erhalten ein Paar ID & Zugriffstoken. Verwenden Sie das ID-Token im API-Gateway. Die URL der integrierten in UI wäre:

    https://your_domain.auth.us-east-1.amazoncognito.com/login?redirect_uri=https://www.yourpage.com&response_type=token&client_id=xxxxxxxxxxxxxxxxxx

  • Der App-Client mit dieser Client-ID sollte Google als IdP in App-Client-Einstellungen aktiviert in der Konsole userpool.

  • Der Grund, warum dies funktioniert, ist, dass Google die Auth-Antwort zurück an Ihre Cognito Userpool-Domäne https://your-user-pool-domain/oauth2/idpresponse sendet. Danach verwendet Cognito diese Informationen, um COgnito ID & Zugriffstoken mit Google-Ansprüchen im Abschnitt Identität zu verkaufen. Da der Aussteller Cognito ist, können diese Token im Cognito-Benutzerpool des API-Gateways verwendet werden. Authorizer
  • Cognito unterstützt nicht den direkten Austausch von Drittanbieter-Token für Cognito-Token (ab sofort).Sie können Token von Drittanbietern verwenden, um temporäre AWS-Anmeldeinformationen mit Cognito Identity Pool abzurufen, oder Sie können die Domäne von Cognito, d. H. Die integrierte UI (/ login endpoint) oder den/authorize-Endpunkt verwenden, um Token direkt über die Drittanbieter-Anmeldung abzurufen. Aber ab sofort können Sie einen Token nicht explizit gegen einen anderen austauschen.
+0

Danke !! Interessant, ich werde dies heute versuchen! Meine einzige Sorge ist der Parameter redirect_uri, da dies eine native mobile App ist – jsuna

Verwandte Themen