Saya merasa seperti minum pil gila di sini. Biasanya selalu ada sejuta pustaka dan sampel yang beredar di web untuk tugas tertentu. Saya mencoba menerapkan autentikasi dengan "Akun Layanan" Google dengan menggunakan Token Web JSON (JWT) seperti yang dijelaskan di sini .
Namun hanya ada pustaka klien dalam PHP, Python, dan Java. Bahkan mencari contoh JWT di luar otentikasi Google, hanya ada jangkrik dan draf pada konsep JWT. Apakah ini benar-benar baru dan mungkin merupakan sistem milik Google?
Sampel java yang paling dekat yang bisa saya tafsirkan terlihat cukup intensif dan menakutkan. Pasti ada sesuatu di luar sana di C # yang setidaknya bisa saya mulai. Bantuan apa pun dengan ini akan sangat bagus!
Jawaban:
Terimakasih semuanya. Saya menemukan implementasi dasar dari Json Web Token dan mengembangkannya dengan rasa Google. Saya masih belum menyelesaikannya sepenuhnya tetapi 97% di sana. Proyek ini kehilangan tenaga, jadi semoga ini akan membantu orang lain mendapatkan awal yang baik:
Catatan: Perubahan yang saya buat pada implementasi dasar (Tidak ingat di mana saya menemukannya,) adalah:
Dan kemudian kelas JWT khusus Google saya:
sumber
Setelah berbulan-bulan berlalu setelah pertanyaan awal, sekarang perlu ditunjukkan bahwa Microsoft telah menemukan solusi mereka sendiri. Lihat 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 untuk detailnya.
sumber
Saya tidak pernah menggunakannya tetapi ada implementasi JWT di NuGet.
Paket: https://nuget.org/packages/JWT
Sumber: https://github.com/johnsheehan/jwt
Kompatibel dengan .NET 4.0: https://www.nuget.org/packages/jose-jwt/
Anda juga dapat membuka di sini: https://jwt.io/ dan klik "perpustakaan".
sumber
Berikut adalah contoh yang berfungsi:
http://zavitax.wordpress.com/2012/12/17/logging-in-with-google-service-account-in-c-jwt/
Butuh beberapa waktu untuk mengumpulkan potongan-potongan yang tersebar di web, dokumennya agak tidak lengkap ...
sumber
Ini adalah implementasi saya dari Validasi JWT (Google) di .NET. Ini didasarkan pada implementasi lain pada inti Stack Overflow dan GitHub.
Perhatikan bahwa, untuk menggunakannya, Anda perlu menambahkan referensi ke paket NuGet
System.Net.Http.Formatting.Extension
. Tanpa ini, kompilator tidak akan mengenaliReadAsAsync<>
metode ini.sumber
IssuerSigningKeys
jikaIssuerSigningKeyResolver
disediakan?Lihat Perpustakaan Klien Google untuk .NET .
sumber
Akan lebih baik menggunakan pustaka standar dan terkenal daripada menulis kode dari awal.
Menggunakan pustaka ini, Anda dapat membuat token JWT dan menandatanganinya menggunakan RS256 seperti di bawah ini.
ps: kunci pribadi RSA harus memiliki format berikut:
----- MULAI KUNCI PRIBADI RSA ----- {nilai format base64} ----- AKHIR KUNCI PRIBADI RSA -----
sumber
Berikut adalah contoh lain yang hanya berfungsi REST untuk Akun Layanan Google yang mengakses Pengguna dan Grup G Suite , mengautentikasi melalui JWT . Ini hanya mungkin melalui refleksi pustaka Google, karena dokumentasi Google tentang API ini sangat buruk . Siapa pun yang terbiasa membuat kode dalam teknologi MS akan kesulitan mencari tahu bagaimana semuanya berjalan bersama di layanan Google.
sumber
Berikut adalah daftar kelas dan fungsinya:
sumber