Ich habe das gerade mit Authentik OAuth2 zum Laufen gebracht, allerdings gab es einige Schwierigkeiten mit der Einstellung oauth2 user json url. Ich habe den user_info-Endpunkt von Authentik dafür verwendet (/application/o/userinfo/), wusste aber nicht, wie ich die Felder zuordnen sollte. Für alle, die Discourse mit Authentik’s OAuth2 einrichten möchten, hier ist die Zusammenfassung:
- User id path:
preferred_username - Username path:
preferred_username - Name path:
name - Email path:
email - Email verified path:
email_verified - Avatar: leer.
Ich hatte folgende Probleme:
- Am Anfang habe ich den abschließenden Schrägstrich in der JSON-URL
https://DOMAIN/application/o/userinfo/vergessen. Dies führte dazu, dass die Benutzerinformationsanfrage (Permalink zum Quellcode) einen HTTP-Code 301 zurückgab, was zum Fehlschlag der Anmeldung führte. Ich weiß nicht, ob der abschließende Schrägstrich laut Spezifikation vorhanden sein sollte, aber vielleicht wäre es gut, 301 korrekt zu behandeln. - Das Debugging erwies sich als schwierig. Die Einstellung
oauth2 debug authwar eine Rettung, aber… Logster kürzt das Debug-Protokoll, bevor die aussagekräftigen Antwortdaten tatsächlich ausgegeben werden. Ich musste die Protokollzeile im Container manuell ändern zu
Vielleicht könnte diese Protokollzeile aktualisiert werden? Ich denke, das könnte anderen Leuten helfen, die JSON-Attributpfade zu ermitteln.log("user_json_response: #{user_json_response.status} #{user_json_response.headers} #{user_json_response.body}")