Apakah ada API publik untuk menggunakan Google Authenticator ( otentikasi dua faktor) pada aplikasi web yang berjalan sendiri (mis. LAMP stack)?
Apakah ada API publik untuk menggunakan Google Authenticator ( otentikasi dua faktor) pada aplikasi web yang berjalan sendiri (mis. LAMP stack)?
The proyek open source. Saya belum menggunakannya. Tapi itu menggunakan algoritma yang didokumentasikan (dicatat dalam RFC yang tercantum pada halaman proyek sumber terbuka), dan implementasi authenticator mendukung banyak akun.
Proses yang sebenarnya mudah. Kode satu waktu, pada dasarnya, adalah generator angka acak semu. Penghasil bilangan acak adalah rumus yang pernah diberi seed, atau nomor awal, terus membuat aliran bilangan acak. Diberikan seed, sementara angka mungkin acak satu sama lain, urutannya sendiri bersifat deterministik. Jadi, setelah Anda memiliki perangkat dan server "dalam sinkronisasi" maka angka acak yang dibuat perangkat, setiap kali Anda menekan "tombol angka berikutnya", akan sama, acak, angka yang diharapkan server.
Sistem kata sandi satu kali yang aman lebih canggih daripada generator angka acak, tetapi konsepnya serupa. Ada juga detail lain untuk membantu menjaga perangkat dan server tetap sinkron.
Jadi, tidak perlu orang lain meng-host otentikasi, seperti, katakanlah OAuth. Alih-alih, Anda perlu menerapkan algoritma yang kompatibel dengan aplikasi yang disediakan Google untuk perangkat seluler. Perangkat lunak itu (harus) tersedia di proyek sumber terbuka.
Tergantung pada kecanggihan Anda, Anda harus memiliki semua yang Anda butuhkan untuk mengimplementasikan sisi server dari proses ini memberikan proyek OSS dan RFC. Saya tidak tahu apakah ada implementasi khusus untuk perangkat lunak server Anda (PHP, Java, .NET, dll.)
Tetapi, khususnya, Anda tidak perlu layanan luar kantor untuk menangani ini.
Algoritma ini didokumentasikan dalam RFC6238 . Agak seperti ini:
Saya sudah bermain menerapkan algoritma dalam javascript di sini: http://blog.tinisles.com/2011/10/google-authenticator-one-time-password-algorithm-in-javascript/
sumber
Ada berbagai perpustakaan untuk PHP (The LAMP Stack)
PHP
https://code.google.com/p/ga4php/
http://www.idontplaydarts.com/2011/07/google-totp-two-factor-authentication-for-php/
Anda harus berhati-hati ketika menerapkan dua faktor auth, Anda perlu memastikan jam Anda di server dan klien disinkronkan, bahwa ada perlindungan terhadap serangan brute force pada token dan bahwa benih awal yang digunakan cukup besar.
sumber
Anda dapat menggunakan solusi saya , diposting sebagai jawaban untuk pertanyaan saya (ada kode Python lengkap dan penjelasan ):
Agak mudah untuk mengimplementasikannya dalam PHP atau Perl, saya pikir. Jika Anda memiliki masalah dengan ini, beri tahu saya.
Saya juga memposting kode saya di GitHub sebagai modul Python.
sumber
Saya menemukan ini: https://github.com/PHPGangsta/GoogleAuthenticator . Saya mengujinya dan bekerja dengan baik untuk saya.
sumber
Theres: https://www.gauthify.com yang menawarkannya sebagai layanan
sumber
Ya, tidak memerlukan layanan jaringan, karena aplikasi Google Authenticator tidak akan berkomunikasi dengan server google, hanya disinkronkan dengan rahasia initital yang dihasilkan oleh server Anda (input ke telepon Anda dari kode QR) sementara waktu berlalu.
sumber
Bukan LAMP tetapi jika Anda menggunakan C # ini adalah kode yang saya gunakan:
Kode berasal dari:
https://github.com/kspearrin/Otp.NET
Kelas Base32Encoding dari jawaban ini:
https://stackoverflow.com/a/7135008/3850405
Contoh program:
Totp:
Base32Encoding:
sumber
Bagi mereka yang menggunakan Laravel, https://github.com/sitepoint-editors/google-laravel-2FA ini adalah cara yang bagus untuk menyelesaikan masalah ini.
sumber
Untuk pengguna C #, jalankan Aplikasi Konsol sederhana ini untuk memahami cara memverifikasi kode token satu kali. Perhatikan bahwa kita perlu menginstal pustaka Otp.Net dari paket Nuget terlebih dahulu.
sumber