Хотите крутой open source проект себе в портфолио? ru en
Запрос ко вселенной на человечный auth proxy (с) ChatGPT & Hieronymus Bosch.
Как промежуточный итог моих мытарств с OAuth2/OIDC могу сказать, что столько текущих абстракций и частичных реализаций, как в современных open source аутентификационных прокси, я не встречал, как-минимум, давно. Может быть даже никогда не встречал.
И вот, конечно, хорошо, что они хотя бы есть и есть из чего выбрать. И ясно, что их делали энтерпрайзные разработчики для закрытия своих очень специфических энтерпрайзных болей, скорее всего, как параллельные проекты к основным продуктам. Но, всё-таки, её-моё…
Если вы вдруг хотите получить крутой open source проект в портфолио, то берите Rust или Go, пилите с нуля небольшой auth proxy с поддержкой OIDC и OAuth2, который тупо работает. Чтобы он был ориентирован не на корпорации с кубернетисами, а на небольшие компании и инди-разработчиков, которым нужно быстро закрыть пробел в фунцкиональности не изменяя код своих приложений. Ситуация когда вы правите код бэкенда, чтобы прокси заработал, — это дичь какая-то.
Вам в ноги кланяться будут :-) тем более, что сейчас OAuth2 резко всем стал нужен ещё больше, так как требуется в Model Context Protocol.
Вот чего надо от такого чуда:
- Поддержка OIDC со всеми его редиректами.
- Поддержка OAuth2 для апих.
- Создание сессии, хранение её в Redis или БД, передача id в cookie.
- Настройка свойств сессии и cookie.
- Поддержка трёх видов url путей: требуют auth, не требуют auth, принимают auth опционально.
- Проброс параметров пользователя (полученных от Identity Provider) в заголовки запроса к бэкенду.
И вот я посмотрел четыре прокси:
- Первый не умеет хранить сессии в базе, поэтому всю инфу шифрует и кладёт в куки.
- Второй не умеет во все редиректы OIDC: нельзя распределять пользователей между формами логина и регистрации в Keycloak.
- Третий не умеет опциональную аутентификацию.
- Четвёртый требует отдел devops для развёртывания и поддержки.
Причём все обвешаны кучей дополнительных фич, которые, на мой взгляд, очень опциональны для всех, у кого нет под рукой отдела devops.
Читать далее
- Миграции backend на практике
- Open source сервисы аутентификации
- Модная типизация в Python
- Генерация подземелий — от простого к сложному
- Опыт использования Julia
- Как я делал и делал бы поддержку GDPR
- Автоматический генератор нелинейных квестов
- Открываем лор Сказки под лицензией CC BY 4.0
- World Builders 2023: Предпочтения игроков в стратегии
- Блог переехал на новый движок