Привет, @balazsorban44, спасибо за напоминание по этому вопросу. Я провёл первичный обзор PR. Если у автора нет времени поработать над этими моментами, то, скорее всего, мы сможем взять это на себя. Я согласен, что поддержка PKCE была бы полезна.
Однако стоит отметить: я не думаю, что Discourse уязвим для атак «перехвата кода авторизации», от которых защищает PKCE. Аутентификация в Discourse всегда происходит в браузере по протоколу https и не использует URL-схемы уровня операционной системы, которые могли бы быть перехвачены другими приложениями.
Но, конечно, добавление дополнительного уровня безопасности не повредит
Привет, Крис,
как тебе удалось интегрировать Authentik с этим плагином? Любые подсказки будут очень полезны. Мы уже несколько недель пытаемся заставить это работать правильно, но пока не получается.
Хм, я ничего особенного не припоминаю. В чём именно ваша проблема? Хотите поделиться скриншотами вашей конфигурации (возможно, через личные сообщения)?
Спасибо за ответ, Крис. Конечно. Свяжусь с вами позже на этой неделе, когда будет моя команда разработчиков, которая работала над Authentik. Основные проблемы связаны с потоком и outpost.
У меня возникла интересная проблема: перед публичным развёртыванием я хочу протестировать, что всё работает, поэтому мой OIDC-провайдер размещён локально (в частной подсети) и недоступен из интернета.
К сожалению, это не работает, так как Discourse не разрешает подключение к частным IP-адресам. oidc.example.org разрешается в частный IP-адрес.
OIDC Log: Fetching discovery document from https://oidc.example.org/application/o/discourse/.well-known/openid-configuration
OIDC Log: Fetching discovery document raised error Faraday::ConnectionFailed FinalDestination: all resolved IPs were disallowed
OIDC Log: Discovery document is
---
(oidc) Request phase initiated.
(oidc) Authentication failure! openid_connect_discovery_error: OmniAuth::OpenIDConnect::DiscoveryError, Discovery document is missing
Я полагаю, что поскольку openid_connect_discovery_document может изменяться только администратором, его можно считать доверенным и разрешать даже частные IP-адреса.
В настройках сайта есть параметр «allowed_internal_hosts». Если добавить внутреннее имя хоста в этот список, то запросы к нему будут разрешены через детектор SSRF.
В сервисах совместного хостинга (например, официальный хостинг discourse.org) администраторы не считаются доверенными для выполнения запросов внутри среды хостинга, поэтому эта защита включена по умолчанию.
Приношу извинения, но я не уверен, что могу следовать инструкции по установке плагина. Я запускаю Discourse в локальной среде Docker и не могу найти файл app.yml, чтобы добавить конфигурацию.
Возможно, это глупый вопрос, но есть ли руководство по установке в локальной среде разработки?
Существует параметр openid_connect_error_redirects, но, насколько я понимаю, он предназначен для случаев ошибок. Есть ли идеи, как изменить перенаправление на authority (то есть на discourse.company.com)?
Вы установили oauth2 версии 1.4.11, которая больше не поддерживается (EOL).
Дальнейшая поддержка серии 1.4.x не планируется.
и рекомендации обновиться до oauth2 версии 2. Мне было бы гораздо спокойнее без таких сообщений. Есть ли планы на обновление?
Также я получаю:
Вы установили oauth версии 1.1.0, поздравляем!
Бесплатная поддержка серии 1.x завершится к апрелю 2025 года. Пожалуйста, запланируйте обновление до следующей версии до этой даты.
Единственное критическое изменение — прекращение поддержки Ruby 2.7 и любых других версий, которые к тому времени также перестанут поддерживаться.
Параметр «Allow new registrations» (Разрешить новые регистрации) строго необходим для работы плагина. Он позволяет автоматически создавать учётную запись при первом входе в Discourse и отображать кнопку «Register» (Зарегистрироваться). Однако возможно ли разрешить её отключение? То есть исключить возможность для пользователя, входящего через OpenID Connect, изменять свои настройки и сразу создавать учётную запись. Это позволило бы скрыть кнопки «Register», которые в данном контексте неуместны.
Привет, удалось ли тебе это настроить? Не понимаю, почему я застрял на этом месте. Из сотен приложений, которые я управлял с помощью OpenID или аутентификации, это доставляет мне больше всего проблем.