J'ai l'impression de prendre des pilules folles ici. Habituellement, il y a toujours un million de bibliothèques et d'échantillons flottant sur le Web pour une tâche donnée. J'essaie de mettre en œuvre l'authentification avec un "compte de service" Google en utilisant des jetons Web JSON (JWT) comme décrit ici .
Cependant, il n'y a que des bibliothèques clientes en PHP, Python et Java. Même en recherchant des exemples JWT en dehors de l'authentification de Google, il n'y a que des grillons et des brouillons sur le concept JWT. Est-ce vraiment si nouveau et peut-être un système propriétaire de Google?
L'exemple java qui est le plus proche que je pourrais réussir à interpréter semble assez intense et intimidant. Il doit y avoir quelque chose en C # avec lequel je pourrais au moins commencer. N'importe quelle aide serait formidable!
Réponses:
Merci tout le monde. J'ai trouvé une implémentation de base d'un jeton Web Json et je l'ai développée avec la saveur Google. Je ne l'ai toujours pas complètement réglé, mais c'est 97% là-bas. Ce projet a perdu sa vapeur, alors j'espère que cela aidera quelqu'un d'autre à prendre une bonne longueur d'avance:
Remarque: les modifications que j'ai apportées à l'implémentation de base (je ne me souviens plus où je l'ai trouvée) sont:
Et puis ma classe JWT spécifique à Google:
la source
Après que tous ces mois se soient écoulés après la question initiale, il convient maintenant de souligner que Microsoft a conçu sa propre solution. Voir http://blogs.msdn.com/b/vbertocci/archive/2012/11/20/introducing-the-developer-preview-of-the-json-web-token-handler-for-the-microsoft-net -framework-4-5.aspx pour plus de détails.
la source
Je ne l'ai jamais utilisé mais il existe une implémentation JWT sur NuGet.
Paquet: https://nuget.org/packages/JWT
Source: https://github.com/johnsheehan/jwt
Compatible .NET 4.0: https://www.nuget.org/packages/jose-jwt/
Vous pouvez également aller ici: https://jwt.io/ et cliquer sur "bibliothèques".
la source
Voici un exemple de travail:
http://zavitax.wordpress.com/2012/12/17/logging-in-with-google-service-account-in-c-jwt/
Il a fallu un certain temps pour collecter les pièces éparpillées sur le web, les docs sont plutôt incomplets ...
la source
Ceci est mon implémentation de (Google) JWT Validation dans .NET. Il est basé sur d'autres implémentations sur Stack Overflow et GitHub gists.
Notez que, pour l'utiliser, vous devez ajouter une référence au package NuGet
System.Net.Http.Formatting.Extension
. Sans cela, le compilateur ne reconnaîtra pas laReadAsAsync<>
méthode.la source
IssuerSigningKeys
si leIssuerSigningKeyResolver
est fourni?Jetez un œil à la bibliothèque cliente Google pour .NET .
la source
Il serait préférable d'utiliser des bibliothèques standard et célèbres au lieu d'écrire le code à partir de zéro.
En utilisant ces bibliothèques, vous pouvez générer un jeton JWT et le signer en utilisant RS256 comme ci-dessous.
ps: la clé privée RSA doit avoir le format suivant:
----- BEGIN RSA PRIVATE KEY ----- {valeur formatée en base64} ----- END RSA PRIVATE KEY -----
la source
Voici un autre exemple de travail REST uniquement pour les comptes de service Google accédant aux utilisateurs et aux groupes G Suite , en s'authentifiant via JWT . Cela n'a été possible que grâce au reflet des bibliothèques Google, car la documentation Google de ces API est au-delà de la terrible . Quiconque a l'habitude de coder dans les technologies MS aura du mal à comprendre comment tout se passe dans les services Google.
la source
Voici la liste des classes et des fonctions:
la source