Google Authenticator als öffentlicher Dienst verfügbar?
Gibt es eine öffentliche API für die Verwendung des Google Authenticator (zwei-Faktor-Authentifizierung) auf sich selbst ausführen (z.B. LAMP-stack) web-apps?
InformationsquelleAutor der Frage ohho | 2011-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Projekt ist open source. Ich habe es nicht. Aber es ist über eine dokumentierte Algorithmus (der bereits in der RFC aufgeführt, die auf der open-source-Projekt-Seite), und die authenticator-Implementierungen Unterstützung für mehrere Konten.
Den eigentlichen Prozess ist einfach. Das one-time-code ist im wesentlichen ein pseudo-random number generator. Ein random number generator ist eine Formel, die sobald Sie in einem gegebenen seed-oder Start-Nummer, weiterhin erstellen Sie einen stream von Zufallszahlen. Gegeben einen Samen, während die zahlen werden zufällig auf jeder anderen, die Sequenz selbst ist deterministisch. So, sobald Sie Ihr Gerät und dem server "sync", dann werden die Zufallszahlen, die das Gerät erzeugt, jedes mal, wenn Sie drücken Sie die "nächste Nummer-Taste", werden die gleichen sein, zufällige zahlen, die der server erwartet.
Einen sicheren one-time-Passwort-system ist komplizierter als eine random number generator, aber das Konzept ist ähnlich. Es gibt auch andere details, die helfen, halten Sie das Gerät und server zu synchronisieren.
So, es gibt keine Notwendigkeit für jemand anderen host für die Authentifizierung, wie, sagen OAuth. Stattdessen müssen Sie implementieren, der Algorithmus ist kompatibel mit den apps, die Google bietet für die mobilen Geräte. Diese software ist (sollte sein), die auf der open-source-Projekt.
Abhängig von Ihrer Raffinesse, sollten Sie alle haben, die Sie implementieren müssen, um die server-Seite dieses Prozesses geben die OSS-Projekt und der RFC. Ich weiß nicht, ob es eine spezifische Implementierung für die server-software (PHP, Java, .NET, etc.)
Aber, insbesondere, Sie don ' T brauchen einen externen Dienst, um diese zu bewältigen.
InformationsquelleAutor der Antwort Will Hartung
Des Algorithmus ist dokumentiert in RFC6238. Geht etwas wie dieses:
Habe ich eine Spiel-Umsetzung des Algorithmus in javascript hier: http://blog.tinisles.com/2011/10/google-authenticator-one-time-password-algorithm-in-javascript/
InformationsquelleAutor der Antwort russau
Gibt es eine Vielzahl von Bibliotheken für PHP (LAMP-Stack)
PHP
https://code.google.com/p/ga4php/
http://www.idontplaydarts.com/2011/07/google-totp-two-factor-authentication-for-php/
Sollten Sie vorsichtig sein, wenn die Umsetzung der zwei-Faktor-Authentifizierung, die Sie benötigen, um sicherzustellen, dass Ihre Uhren auf die server und client synchronisiert werden, dass es Schutz gegen brute-force-Angriffe auf das token und die ersten Samen verwendet, ist entsprechend groß.
InformationsquelleAutor der Antwort James
Können Sie verwenden meine Lösung, geschrieben als Antwort auf meine Frage (es ist vollständige Python-code und Erklärung):
Ist es eher leicht zu realisieren in PHP oder Perl, denke ich. Wenn Sie irgendwelche Probleme mit diesem, lassen Sie es mich bitte wissen.
Habe ich auch habe meine code auf GitHub als Python-Modul.
InformationsquelleAutor der Antwort Tadeck
Fand ich dies: https://github.com/PHPGangsta/GoogleAuthenticator. Habe es getestet und funktioniert gut für mich.
InformationsquelleAutor der Antwort user1893983
Theres: https://www.gauthify.com, die es bietet als service
InformationsquelleAutor der Antwort NoviceCoding
Ja, Sie müssen keine Netzwerk-service, weil Google Authenticator-app kommuniziert nicht mit dem google-server, es hält nur synchronisiert mit das ursprüngliche Geheimnis, dass Ihr server erstellen " (Eingabe in Ihr Telefon aus dem QR-code), während die Zeit vergeht.
InformationsquelleAutor der Antwort diyism
Nicht die LAMPE, aber wenn Sie mit C# das ist der code, den ich verwenden:
Code-Zitat von:
https://github.com/kspearrin/Otp.NET
Den Base32Encoding Klasse ist aus dieser Antwort:
https://stackoverflow.com/a/7135008/3850405
Beispiel-Programm:
Totp:
Base32Encoding:
InformationsquelleAutor der Antwort Ogglas
Für diejenigen, die sich mit Laravel, das https://github.com/sitepoint-editors/google-laravel-2FA ist ein schöner Weg, um dieses problem zu lösen.
InformationsquelleAutor der Antwort briankip