Результаты поиска :
×
Когда пользователь входит на сайт Joomla через OAuth SSO, поставщик идентификации отправляет обратно код авторизации через браузер. Затем приложение обменивает этот код на токен доступа. В большинстве случаев это работает хорошо, но есть проблема: если кому-то удастся перехватить этот код авторизации до того, как он достигнет приложения, он сможет использовать его для получения собственного токена доступа.
PKCE (Proof Key for Code Exchange) предотвращает это. Перед началом авторизации приложение генерирует случайный секретный ключ, отправляет его хешированную версию поставщику идентификационных данных, а затем доказывает, что владеет оригиналом, при обмене кода на токен. Перехваченный код авторизации бесполезен без этого доказательства, поскольку оно есть только у исходного приложения.
Расширение miniOrange Joomla OAuth Client поддерживает PKCE «из коробки». Его включение добавляет этот уровень безопасности к вашей существующей системе единого входа (SSO) без изменения способа входа пользователей.
Для включения защищенного PKCE протокола OAuth SSO на веб-сайте Joomla вам потребуется следующее:
Большинство сайтов Joomla, использующих OAuth SSO, применяют стандартный процесс авторизации по коду без PKCE. Это подходит для многих сценариев, но создает определенные риски, которые следует учитывать.
Коды авторизации передаются через браузер в качестве параметров URL, а это значит, что они могут попасть в историю браузера, журналы сервера и заголовки Referrer. Существует временной промежуток, пусть и короткий, в течение которого они могут быть раскрыты. Для приложений, которые не могут безопасно хранить секретный ключ клиента, таких как одностраничные приложения или потоки единого входа на основе браузера, код авторизации становится единственным барьером между учетной записью пользователя и злоумышленником, получившим к ней доступ.
Стандарт OAuth 2.1, отражающий современные передовые методы обеспечения безопасности, делает обязательным использование PKCE для всех потоков авторизационного кода. От организаций, стремящихся к соответствию таким стандартам, как SOC 2 или ISO 27001, все чаще ожидается наличие этой функции.
Без PKCE также отсутствует криптографическое доказательство того, что клиент, завершивший обмен токенов, является тем же самым клиентом, который инициировал вход в систему. Этот пробел затрудняет проведение качественных проверок безопасности.
Настройка PKCE через расширение miniOrange OAuth Client довольно проста. Вот как происходит процесс конфигурации.
1. Включение PKCE в расширении: В настройках поставщика OAuth внутри расширения miniOrange есть специальная опция для включения PKCE. После включения расширение автоматически выполняет все необходимые действия: генерирует случайный код подтверждения в начале каждого входа в систему, создает на его основе хешированное задание и отправляет это задание поставщику идентификации в составе запроса авторизации. При обмене токенами исходный код подтверждения отправляется вместе с кодом авторизации, чтобы поставщик идентификации мог подтвердить их совпадение.
2. Выбор метода проверки кода: Расширение поддерживает два метода: S256 и обычный. Метод S256 хеширует верификатор кода с помощью SHA-256 перед отправкой запроса, что означает, что исходный секретный ключ никогда не передается. Обычный метод отправляет верификатор напрямую в качестве запроса, что не обеспечивает реальной защиты. Для любого работающего сайта Joomla метод S256 является правильным выбором, и большинство современных поставщиков идентификации его поддерживают.
3. Обновление конфигурации поставщика идентификации: На стороне поставщика идентификации необходимо обновить регистрацию приложения, чтобы оно требовало PKCE. Обычно это означает пометку приложения как публичного клиента или включение принудительного применения PKCE в настройках приложения. Точные шаги различаются в зависимости от поставщика. Обязательное применение PKCE на уровне поставщика важно, поскольку это означает, что любая попытка обмена токенов без действительного верификатора кода будет отклонена, даже если код авторизации был получен.
4. Проверка процесса: Успешный вход с поддержкой PKCE выглядит для пользователя идентично обычному входу через SSO. Чтобы убедиться в его работоспособности, проверьте, что URL-адрес запроса авторизации содержит параметры code_challenge и code_challenge_method. Для проверки гарантии безопасности попробуйте воспроизвести захваченный код авторизации без верификатора кода; поставщик идентификации должен отклонить обмен токенами с ошибкой.
PKCE — одно из наиболее практичных улучшений безопасности для OAuth SSO в Joomla, поскольку оно решает реальную проблему, не создавая дополнительных неудобств для пользователей. Процесс входа в систему остается неизменным, но код авторизации становится бесполезным для любого, кто его перехватит. Поскольку PKCE становится ожидаемым стандартом для развертывания OAuth, его включение через расширение miniOrange OAuth Client позволяет вашей настройке Joomla SSO соответствовать современным передовым практикам и упрощает защиту при проверке безопасности.
Спасибо за ваш ответ. Мы свяжемся с вами в ближайшее время.
Что-то пошло не так. Пожалуйста, отправьте запрос ещё раз.
Содержание