Beschränken Sie die Anmelde-E-Mail mit Google OAuth2.0 auf den spezifischen Domänennamen
Ich kann nicht scheinen zu finden, eine Dokumentation zum beschränken der login in meine web-Anwendung (die verwendet OAuth2.0 und Google-APIs), um nur akzeptieren, Anforderungen für die Authentifizierung von Benutzern mit einer E-Mail an eine bestimmte domain-Namen oder die Domäne-Namen. Ich würde gerne auf die whitelist im Gegensatz zu blacklist.
Hat jemand Vorschläge, wie dies zu tun ist, die Dokumentation auf der offiziell anerkannten Methode, dies zu tun, oder eine einfache, sichere umgehen?
Für das Protokoll, ich weiß nicht, irgendwelche Informationen über den Benutzer, bis Sie versuchen, sich über Google OAuth-Authentifizierung. Alle, die ich zurück erhalten, ist der basic-user-info und E-Mail.
InformationsquelleAutor der Frage paradox870 | 2012-06-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Also ich habe eine Antwort für Sie. In der oauth-Anfrage können Sie hinzufügen "hd=domain.com" und es wird Schränken Sie die Authentifizierung für Benutzer aus dieser Domäne (ich weiß nicht, ob Sie können mehrere domains). Sie finden die hd-parameter dokumentiert hier
Ich bin mit dem google-api-Bibliotheken von hier: http://code.google.com/p/google-api-php-client/wiki/OAuth2 so musste ich manuell Bearbeiten Sie die /auth/apiOAuth2.php Datei:
Bearbeiten:
Ich arbeite immer noch auf dieser app und fand diese, welche möglicherweise die richtige Antwort auf diese Frage. https://developers.google.com/google-apps/profiles/
InformationsquelleAutor der Antwort Aaron Bruce
Beim definieren von Ihrem provider, der pass in einer hash-am Ende mit der 'hd' - parameter. Lesen Sie, hier. https://developers.google.com/accounts/docs/OpenIDConnect#hd-param
E. g., für config/Initialisierungen/entwickeln.rb
InformationsquelleAutor der Antwort Kosmonaut
Client-Seite:
Mithilfe der
auth2
init-Funktion, die Sie übergeben können, diehosted_domain
parameter zu beschränken, die Konten aufgeführt, auf die signin popup, um diesen passend zu Ihremhosted_domain
. Sie können dies in der Dokumentation hier: https://developers.google.com/identity/sign-in/web/referenceServer-Seite:
Sogar mit einem eingeschränkten client-seitige Liste, die Sie brauchen, um zu überprüfen, dass die
id_token
entspricht der gehosteten domain, die Sie angegeben. Für einige Implementierungen dies bedeutet die überprüfung derhd
Attribut, das Sie von google erhalten Sie nach der überprüfung des Tokens.Vollständige Stack Beispiel:
Web-Code:
Server-Code (mit googles Node.js Bibliothek):
Wenn Sie Sie nicht verwenden Node.js können Sie andere Beispiele hier: https://developers.google.com/identity/sign-in/web/backend-auth
InformationsquelleAutor der Antwort Jordon Biondo
Hier ist, was ich Tat mit Reisepass node.js.
profile
ist der Benutzer, der versucht, um sich anzumelden.Dann erstellen Sie einfach Logik zu suchen für mehrere domains statt nur einer. Ich glaube, diese Methode ist sicher, weil 1. das ' @ ' - symbol ist kein gültiges Zeichen in die erste oder zweite Teil eines E-Mail-Adresse. Ich konnte nicht trick die Funktion durch erstellen eines E-Mail-Adresse wie
mike@[email protected]
2. In einem herkömmlichen login-system, das ich könnte, aber diese E-Mail-Adresse konnte nie gibt es in Google. Wenn es nicht ein gültiges Google-Konto, können Sie nicht anmelden.InformationsquelleAutor der Antwort mjoyce91