Когда проект обрастает инфраструктурой вроде Grafana, Gitlab или Sentry, управлять доступами вручную становится невозможно. Создавать и удалять учётки в каждом сервисе по отдельности долго и небезопасно. Про забытые доступы уволенных коллег обычно вспоминают слишком поздно, поэтому авторизацию пора выносить в отдельный слой.
Разбирать тему будем на примере Pocket ID. Это легкий self-hosted Identity Provider для тех, кому не нужен монструозный Keycloak, но нужна надежная система одного окна для входа во все ресурсы.
Это ваш собственный Identity Provider. Вы поднимаете его в докере, заводите туда сотрудников и он становится единственным местом, которое проверяет кто есть кто. Одна из главных фишек Pocket ID в том, что он полностью отказывается от классических паролей в пользу ключей доступа (Passkeys). Это намного безопаснее и удобнее: вместо ввода букв и цифр используется биометрия или аппаратные ключи.
Чтобы ваши сервисы понимали Pocket ID, они должны общаться по определенному протоколу. Pocket ID работает на базе OIDC. Но в мире аутентификации есть два основных игрока:
- SAML (Security Assertion Markup Language) - это история про большой энтерпрайз и банки. Он надежный, но его больно внедрять в современные веб-приложения.
- OIDC (Open ID Connect) - это современный стандарт на базе JSON и JWT. Если вы настраивали вход через Google или Github, вы уже с ним работали. Он легкий, его поддерживают все современные библиотеки, и он из коробки умеет передавать конкретные данные сотрудника (роли, отдел, права) через Claims.
1. Сотрудник заходит в любой внутренний сервис и нажимает "Войти".
2. Сервис перенаправляет его в Pocket ID.
3. Юзер подтверждает личность через Passkey, а далее Pocket ID выдает сервису подписанный JWT-токен.
4. Сервис проверяет подпись токена и на основе данных внутри выдает соответствующие права доступа.
Самое важное здесь - безопасность при увольнении или ротации кадров. Вам не нужно заходить в админку каждого сервиса. Вы просто деактивируете одну учетку в Pocket ID и человек моментально теряет доступ ко всей инфраструктуре разом.
В итоге мы получаем прозрачный контроль над доступами и избавляемся от зоопарка паролей. Приложения занимаются своей логикой, а безопасность вынесена в отдельный защищенный слой.




