Google-ID-Token in C # validieren

8

Ich muss ein Google ID-Token validieren, das von einem Mobilgerät auf meiner ASP.NET-Web-API übergeben wurde.

Google hat hier einen Beispielcode hier , aber er beruht auf einem JWT NuGet-Paket, das nur .Net 4.5 enthält ( Ich benutze C # /. Net 4.0). Kennt jemand Samples, die dies ohne diese Pakete tun oder dies selbst erreicht haben? Die Verwendung des Pakets macht es sehr schwierig herauszufinden, was ich ohne das Paket machen muss.

    
SeeNoWeevil 14.06.2013, 17:35
quelle

2 Antworten

1

Die Herausforderung besteht darin, das JWT-Zertifikat im ID-Token zu validieren. Es gibt derzeit keine Bibliothek, von der ich weiß, dass sie dies tun kann, die .Net 4.5 nicht benötigt und bis es eine Lösung für die JWT-Validierung in .NET 4.0 gibt, wird es keine einfache Lösung geben.

Wenn Sie jedoch über ein Zugriffstoken verfügen, können Sie die Überprüfung mithilfe von oauth2.tokeninfo . Um eine grundlegende Validierung mithilfe von Token-Informationen durchzuführen, können Sie Folgendes tun:

%Vor%

Die von der Google OAuth2-API zurückgegebenen Informationen liefern Ihnen weitere Informationen zu einem bestimmten Token, z. B. die Client-ID, für die es ausgestellt wurde, sowie dessen Ablaufzeit.

Hinweis Sie sollten das Zugriffstoken nicht weitergeben, sondern sollten dies nach dem Austauschen eines einmaligen Codes zum Abrufen eines Zugriffstokens tun.

    
class 15.06.2013 03:34
quelle
1

Nach diesem Problem mit github können Sie jetzt GoogleJsonWebSignature.ValidateAsync Methode zur Validierung eines von Google signierten JWT. Übergeben Sie einfach die Zeichenfolge idToken an die Methode.

%Vor%

Wenn es nicht gültig ist, wird null zurückgegeben.

Beachten Sie, dass Sie zur Verwendung dieser Methode Google.Apis.Auth nugget aus erster Hand installieren müssen .

    
edmundpie 27.03.2018 07:27
quelle