Всем привет,
Я новичок в плагине oauth2-basic и, прочитав документацию и исходный код, не смог найти ответ на свой вопрос.
- Поддерживает ли плагин oauth2-basic PKCE?
- Если да, как его включить?
- Если нет, как я могу изменить код плагина oauth2-basic для использования PKCE?
На странице README репозитория omniauth на GitHub указано, что я должен иметь возможность установить опцию pkce в значение true в своей стратегии omniauth. Однако я попытался внести это изменение в код плагина oauth2-basic, но код проверки (code challenge) не отправляется на мой authorize_url. Есть какие-либо предложения?
Заранее спасибо
Поднимаю этот вопрос, так как сообщество, которому я помогаю, запрашивает поддержку PKCE.
До того, как меня об этом спросили, я не встречал информации об этом, но, ознакомившись с документацией, вижу, что основной причиной внедрения PKCE являются нативные приложения и SPA:
Нативные приложения
- Не могут безопасно хранить Client Secret. Декомпиляция приложения раскроет Client Secret, который привязан к приложению и одинаков для всех пользователей и устройств.
- Могут использовать пользовательские URL-схемы для перехвата редиректов (например, MyApp://), что потенциально позволяет вредоносным приложениям получать Authorization Code от вашего Authorization Server.
Одностраничные приложения (SPA)
- Не могут безопасно хранить Client Secret, так как их исходный код полностью доступен в браузере.
Ни один из этих случаев не применим к данной ситуации: секрет хранится на сервере Discourse.
