У меня наконец получилось настроить интеграцию с Authentik OAuth2, однако возникли некоторые сложности с настройкой oauth2 user json url. Я использовал эндпоинт user_info Authentik (/application/o/userinfo/), но не знал, как сопоставить поля. Для тех, кто ищет информацию о настройке Discourse с OAuth2 от Authentik, вот краткое резюме:
- Путь к ID пользователя:
preferred_username - Путь к имени пользователя:
preferred_username - Путь к имени:
name - Путь к электронной почте:
email - Путь к подтверждению электронной почты:
email_verified - Аватар: пусто.
У меня возникли следующие проблемы:
- Сначала я забыл добавить завершающий слэш в URL JSON
https://DOMAIN/application/o/userinfo/. Из-за этого запрос информации о пользователе (ссылка на исходный код) возвращал HTTP-код 301, что приводило к сбою входа. Не знаю, обязателен ли завершающий слэш по спецификации, но, возможно, стоит правильно обрабатывать код 301. - Отладка этого процесса оказалась непростой. Настройка
oauth2 debug authоказалась спасением, но… Logster обрезает отладочный лог до того, как выводит содержательные данные ответа. Мне пришлось вручную изменить строку лога в контейнере на:
Возможно, эту строку лога стоит обновить? Думаю, это поможет другим пользователям разобраться с путями атрибутов JSON.log("user_json_response: #{user_json_response.status} #{user_json_response.headers} #{user_json_response.body}")