Wie kann ich ein Google-Authentifizierungszugriffstoken überprüfen?
Ich muss Google irgendwie abfragen und fragen: Ist [Zugriffstoken gegeben] für das Google-Konto [example@example.com] gültig?
Kurzversion :
Es ist klar, wie ein über die Google Authentication Api :: OAuth-Authentifizierung für Webanwendungen bereitgestelltes Zugriffstoken verwendet werden kann, um dann Daten von einer Reihe von Google-Diensten anzufordern. Es ist nicht klar, wie überprüft werden soll, ob ein bestimmtes Zugriffstoken für ein bestimmtes Google-Konto gültig ist. Ich würde gerne wissen wie.
Lange Version :
Ich entwickle eine API, die eine tokenbasierte Authentifizierung verwendet. Ein Token wird nach Angabe eines gültigen Benutzernamens + Passworts oder nach Bereitstellung eines Tokens eines Drittanbieters von einem der N überprüfbaren Dienste zurückgegeben.
Einer der Dienste von Drittanbietern ist Google, mit dem sich ein Nutzer mit seinem Google-Konto bei meinem Dienst authentifizieren kann. Dies wird später um Yahoo-Konten, vertrauenswürdige OpenID-Anbieter usw. erweitert.
Schematisches Beispiel für einen Google-basierten Zugriff:
Alternativtext http://webignition.net/images/figures/auth_figure002.png
Die 'API'-Entität steht unter meiner vollen Kontrolle. Die Entität "öffentliche Schnittstelle" ist eine web- oder desktopbasierte App. Einige öffentliche Schnittstellen sind unter meiner Kontrolle, andere nicht und andere, von denen ich vielleicht noch nie etwas weiß.
Daher kann ich dem in Schritt 3 an die API übermittelten Token nicht vertrauen. Dieses wird zusammen mit der entsprechenden E-Mail-Adresse des Google-Kontos bereitgestellt.
Ich muss Google irgendwie abfragen und fragen: Ist dieses Zugriffstoken für example@example.com gültig ?
In diesem Fall ist example@example.com die eindeutige Kennung des Google-Kontos - die E-Mail-Adresse, mit der sich jemand bei seinem Google-Konto anmeldet. Es kann nicht davon ausgegangen werden, dass es sich um eine Google Mail-Adresse handelt. Jemand kann ein Google-Konto ohne ein Google Mail-Konto haben.
In der Google-Dokumentation wird klar angegeben, wie mit einem Zugriffstoken Daten von einer Reihe von Google-Diensten abgerufen werden können. Nichts scheint zu sagen, wie Sie überprüfen können, ob ein bestimmtes Zugriffstoken überhaupt gültig ist.
Update Das Token ist für N Google-Dienste gültig. Ich kann kein Token für einen Google-Dienst versuchen, um es zu überprüfen, da ich nicht weiß, welche Teilmenge aller Google-Dienste ein bestimmter Nutzer tatsächlich verwendet.
Darüber hinaus werde ich das Google-Authentifizierungszugriffstoken niemals für den Zugriff auf Google-Dienste verwenden, sondern lediglich, um zu überprüfen, ob ein vermeintlicher Google-Nutzer tatsächlich der ist, für den er sich ausgibt. Wenn es einen anderen Weg gibt, versuche ich es gerne.