Google-Login für Discourse konfigurieren

:bookmark: Diese Anleitung erklärt, wie Sie die Google-Anmeldeintegration für Ihre Discourse-Website einrichten, indem Sie OAuth2-Anmeldeinformationen in der Google Cloud Console konfigurieren.

:person_raising_hand: Erforderliches Benutzerniveau: Administrator

Übersicht

Die Google-Anmeldung ermöglicht es Benutzern, sich mit ihren Google-Konten auf Ihrer Discourse-Website anzumelden. Diese Anleitung führt Sie durch:

  1. Erstellen eines Google Cloud-Projekts
  2. Einrichten der OAuth-Zustimmung
  3. Konfigurieren der Anmeldeinformationen
  4. Aktivieren der Google-Anmeldung in Discourse

Google Cloud-Projekt erstellen

  1. Navigieren Sie zu https://console.developers.google.com
  2. Klicken Sie oben links auf die Projektauswahlschaltfläche
  3. Klicken Sie auf „Neues Projekt“

  1. Geben Sie einen Projektnamen und optional einen Speicherort ein.
  2. Klicken Sie auf „Erstellen“

:information_source: Wenn Sie nach der Erstellung des Projekts Fehler sehen, aktualisieren Sie die Seite mit Strg+F5.

OAuth-Zustimmungsbildschirm konfigurieren

  1. Navigieren Sie zurück zu https://console.developers.google.com und wählen Sie Ihr neues Projekt aus, falls es noch nicht ausgewählt ist.
  2. Navigieren Sie im linken Bereich zu „OAuth-Zustimmungsbildschirm“. Sie können auch das Google Cloud-Menü oben links verwenden, um „APIs & Dienste“ → „OAuth-Zustimmungsbildschirm“ auszuwählen.

  1. Klicken Sie auf „Erste Schritte“
  2. Geben Sie unter „App-Informationen“ einen App-Namen ein und wählen Sie eine E-Mail-Adresse für den Benutzersupport.

  1. Wählen Sie „Extern“ als Zielgruppe

  1. Geben Sie abschließend eine E-Mail-Adresse für Benachrichtigungen ein
  2. Akzeptieren Sie schließlich die API-Dienste: Nutzerdatenrichtlinie und klicken Sie auf „Erstellen“

Anmeldeinformationen einrichten

  1. Navigieren Sie zum Bildschirm „APIs & Dienste“ → „Anmeldeinformationen“
  2. Klicken Sie auf „Anmeldeinformationen erstellen“ und wählen Sie „OAuth-Client-ID“

  1. Konfigurieren Sie den OAuth-Client:
  • Wählen Sie „Webanwendung“ als Anwendungstyp und geben Sie einen Namen ein
  • Fügen Sie unter „Zulässige JavaScript-Ursprünge“ die Basis-URL Ihrer Website hinzu (einschließlich https://)
  • Fügen Sie Ihre Rückruf-URL unter „Zulässige Weiterleitungs-URIs“ hinzu: https://your-discourse-site.com/auth/google_oauth2/callback
  • Klicken Sie auf „Erstellen“

Klicken Sie auf die OAuth 2.0 Client-ID:

Kopieren Sie die ClientID und das Client Secret, um sie in Ihrem Discourse-Admin hinzuzufügen:

Discourse-Einstellungen konfigurieren

  1. Gehen Sie in Ihren Discourse-Admin-Einstellungen unter „Anmeldung & Authentifizierung“
  • Aktivieren Sie die Einstellung enable google oauth2 logins
  • Geben Sie Ihre google oauth2 client id ein
  • Geben Sie Ihr google oauth2 client secret ein

Überprüfen und veröffentlichen

Testen Sie die Integration, indem Sie einen Benutzer mit einer Google-E-Mail-Adresse hinzufügen und bestätigen, dass Sie sich mit der Option „Mit Google anmelden“ bei Discourse anmelden können. Wenn Sie sich anmelden können, ist die Konfiguration abgeschlossen! :tada:

:warning: HINWEIS:

Früher war ein letzter Schritt erforderlich – die Umstellung des Google Developer-Projekts auf den Status „Produktion“. Es scheint nicht mehr erforderlich zu sein. Wir hinterlassen diese älteren Notizen nur für den Fall.

Um die Integration öffentlich verfügbar zu machen:

  • Ändern Sie den Status auf „In Produktion“ -
  • Schließen Sie den Verifizierungsprozess von Google ab
  • Überprüfen Sie den Website-Besitz über die Google Search Console

Zusätzliche Konfiguration

Google OAuth2-Eingabeaufforderung (Prompt)

Die Einstellung google oauth2 prompt steuert das Verhalten des Google-Zustimmungsbildschirms während der Anmeldung. Verfügbare Optionen:

  • (leer) — Standardverhalten von Google
  • none — Kein Zustimmungs- oder Kontoauswahldisplay wird angezeigt
  • consent — Zustimmungsbildschirm wird immer angezeigt
  • select_account — Benutzer wird immer aufgefordert, ein Konto auszuwählen

Google Workspace (ehemals G. Suite, Google Apps) Anmeldung

Um die Anmeldung auf bestimmte Google Workspace-Domains zu beschränken:

  1. Suchen Sie in Discourse Admin -> Anmeldung & Authentifizierung die Website-Einstellung google oauth2 hd
  2. Geben Sie Ihre Google Workspace-Domain ein

Google Workspace-Gruppensynchronisierung

Sie können Google Workspace-Gruppen automatisch mit Discourse synchronisieren. Dies erfordert:

  1. Aktivieren der Einstellung google oauth2 hd groups
  2. Setzen von google oauth2 hd auf Ihre Workspace-Domain
  3. Eingabe einer Workspace-Admin-E-Mail-Adresse in google oauth2 hd groups service account admin email
  4. Einfügen Ihrer Google-Dienstkonto-JSON-Anmeldeinformationen in google oauth2 hd groups service account json

Das Dienstkonto muss eine domänenweite Delegierung aktiviert haben und die Berechtigung https://www.googleapis.com/auth/admin.directory.group.readonly erhalten haben. Siehe Googles Dokumentation zur domänenweiten Delegierung für Anweisungen zur Einrichtung.

Fehlerbehebung

Wenn Probleme bei der Anmeldung auftreten:

  • Stellen Sie sicher, dass HTTPS ordnungsgemäß konfiguriert ist
  • Überprüfen Sie alle Weiterleitungs-URIs
  • Stellen Sie sicher, dass das SSL-Zertifikat Ihrer Website gültig ist
  • Bestätigen Sie, dass alle erforderlichen Google Cloud APIs aktiviert sind
  • Aktivieren Sie google oauth2 verbose logging, um detaillierte OAuth2-Anforderungs-/Antwortprotokolle zu erhalten

Zugehörige Ressourcen

165 „Gefällt mir“

Leider funktioniert die Anmeldung nicht, wenn ich die Anweisungen befolge.

Damit die Anmeldung funktioniert, musste ich beide URL-Formate für die Weiterleitung hinzufügen.

https://forum.example.com//auth/google_oauth2/callback http:///forum.example.comauth/google_oauth2/callback

Ich kann die App jedoch jetzt nicht zur Veröffentlichung einreichen, da Google nur Adressen im HTTPS-Format verlangt.

Irgendwelche Ratschläge, wie ich das lösen kann?

1 „Gefällt mir“

Ich schätze, Sie haben keine Standardinstallation und müssen force_https aktivieren.

Ich habe die offizielle Installation befolgt. Erzwinge HTTPS ist aktiviert.

EDIT: Es ist seltsam, aber jetzt funktioniert es! Ich habe es vorher mindestens zehnmal versucht, aber es hat nicht funktioniert.

Ich kann es nicht erklären, da das Vorgehen exakt dasselbe war. Vielleicht etwas auf Googles Seite?

:person_shrugging: Es ergibt keinen Sinn, dass es mit http auf Google zugreift.

Ein Beitrag wurde in ein neues Thema aufgeteilt: Google-Login-Regression, möglicherweise nach kürzlichen Änderungen

Hallo, danke, ich habe das Verfahren heute eingerichtet und es funktioniert gut. Ich habe es mit einem anderen Google-Konto getestet, das mir gehört. Ich habe jedoch eine kleine Frage: Ich habe versucht, mich von meinem PC aus mit diesem anderen Google-Konto zu registrieren, und ich habe nur die Option für den Zugriffsschlüssel erhalten. Ich musste Bluetooth aktivieren, um mit meinem Telefon zu kommunizieren. Nun, das alles hat überhaupt nicht funktioniert. Was ich wirklich tun wollte, war, auf die Schaltfläche „Mit Google verbinden“ zu klicken und dann das Verfahren abzuschließen, indem ich einfach das Formular ausfülle, ohne einen Zugriffsschlüssel zu verwenden. Ich bin auf meinem PC, ich habe nicht unbedingt einen Zugriffsschlüssel, keinen Fingerabdruck. Was mache ich, wenn ich dieses Verfahren nutzen möchte, mich bei Google registrieren, wenn ich nicht auf meinem Handy bin? Danke.