2016-11-15 5 views
1

Ich entwickle die REST-API, die mit Google OAuth2 gesichert wurde (mit Java, wenn das wichtig ist). Der Ansatz ist wie folgt:Google OAuth2 - Korrekte Verwendung?

JSON:

{ 
    "iss": "accounts.google.com", 
    "iat": "14791197651", 
    "exp": "14795233651", 
    "at_hash": "xDLxhM85hTYU0KwU-rhPgg", 
    "aud": "541950199239-s1fag9iaes0s99g4feipe0ih0l75km1l.apps.googleusercontent.com", 
    "sub": "197763402127980067798", 
    "azp": "541950819239-s5fag9iaes9s99g4feipe0ih0l75km1l.apps.googleusercontent.com", 
    "alg": "RS256", 
    "kid": "db9e3d7cdd1b4178010f89af11cfd37400061afc" 
} 

und vergleicht sub Wert google id von dem Anforderungsheader,

  • , wenn die Überprüfung bestanden wird und Benutzer durch google id in unserer Datenbank, so wird Benutzer verwenden autorisiert könnte den REST API (zusätzliche Logik angewandt werden).

Ist dieser korrekte Workflow oder zusätzliche Überprüfungen erforderlich?

Vielen Dank im Voraus für Ihre Hilfe.

Antwort

0

Blick in den Google documentation, wenn Sie den tokeninfo Endpunkt verwenden werden (was Sie sind), müssen Sie nur die id_token, und dann müssen Sie auch

prüfen, ob der Anspruch Aud enthält ein der Client-IDs Ihrer App

, damit Sie nicht nur das Token validieren können, sondern sicherstellen, dass es tatsächlich für Ihren Client bestimmt ist.

Ergo, Sie können einfach die eindeutige Google-ID des Benutzers aus dem sub Anspruch abrufen, keine Notwendigkeit, sie mit dem vom Client empfangenen übereinstimmen.

+0

Schön, danke! – user2770362