2017-06-19 5 views
1

Ich bin auf der Suche nach Dokumentation auf Google oAuth2 JWT Token Verifizierungsprozess. In meinem Anwendungsfall sende ich das JWT-Token von meinem Client und der Server-Code ist verantwortlich für die Validierung des JWT-Tokens. Mein Backend wird dafür verantwortlich sein, das oAuth2 JWT Token laut Spezifikation zu validieren, also brauche ich einen formalen Prozess, was zu tun ist, um das JWT Token zu validieren, anstatt nur die Bibliotheken zu verwenden.oAuth2 JWT Token Validierungsprozess

Ich benutze Spring-Bibliothek, um das zu tun, aber ich bin auf der Suche nach Informationen wie die Zertifikate zu erhalten und sie zu verwenden, wenn wir Google-API zur Validierung aufrufen.

Wenn ich Client bin, dann brauche ich nur eine client_id und ApiKey. Aber hier sehe ich auch, dass wir Zertifikate bereitstellen müssen. Bitte lass es mich wissen, wenn ich falsch liege.

+0

Ich bin vor allem interessiert zu wissen, wie Sie das private Zertifikat in der Keystore-Datei lokal importieren. – Irfan

Antwort

0

Um eine signierte JWT zu validieren, sollten Sie ihren Header-Teil und die Eigenschaften alg (Algorithmus zum Erstellen einer Signatur) und kid (Signatur-Verschlüsselungsschlüssel-ID) betrachten. Laden Sie das JSON-Dokument für Google OAuth 2-Erkennung https://accounts.google.com/.well-known/openid-configuration, und lesen Sie die Eigenschaft jwks_uri (URL mit Verschlüsselungsschlüsseln). Lesen Sie die Schlüssel von dieser URL (es ist ein JSON-Dokument) und suchen Sie einen Schlüssel mit use="sig" (zum Signieren verwendet) und übereinstimmenden Werten alg und kid. Dann können Sie die JWT-Signatur entschlüsseln, um den JWT-Hash-Wert zu erhalten und ihn mit Ihrem berechneten Hash-Wert zu vergleichen.

Sie müssen also keinen Schlüssel in Ihren Schlüsselspeicher importieren. Sie können die Schlüssel zwischenspeichern, aber wenn Sie einen kid Wert erhalten, der nicht im Cache enthalten ist, müssen Sie das JWKS-Dokument erneut lesen. Es besteht auch die Möglichkeit, dass Google im Laufe der Zeit einige Schlüssel entfernt.

+0

Vielen Dank Jan. Das war hilfreich. Ich fand diesen Blog auch sehr informativ https://ncona.com/2015/02/consuming-a-google-id-token-from-a-server/ – Irfan