Мысли программиста / TeaCoder: post #817 — TG.ME

🔑 Почему вашему проекту (и сотрудникам) нужна единая система аутентификации

Когда проект обрастает инфраструктурой вроде Grafana, Gitlab или Sentry, управлять доступами вручную становится невозможно. Создавать и удалять учётки в каждом сервисе по отдельности долго и небезопасно. Про забытые доступы уволенных коллег обычно вспоминают слишком поздно, поэтому авторизацию пора выносить в отдельный слой.

Разбирать тему будем на примере Pocket ID. Это легкий self-hosted Identity Provider для тех, кому не нужен монструозный Keycloak, но нужна надежная система одного окна для входа во все ресурсы.

🛡 Что такое Pocket ID и зачем он нам?

Это ваш собственный Identity Provider. Вы поднимаете его в докере, заводите туда сотрудников и он становится единственным местом, которое проверяет кто есть кто. Одна из главных фишек Pocket ID в том, что он полностью отказывается от классических паролей в пользу ключей доступа (Passkeys). Это намного безопаснее и удобнее: вместо ввода букв и цифр используется биометрия или аппаратные ключи.

⚡️ Почему именно OIDC, а не старый добрый SAML?

Чтобы ваши сервисы понимали 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 и человек моментально теряет доступ ко всей инфраструктуре разом.
🔓

В итоге мы получаем прозрачный контроль над доступами и избавляемся от зоопарка паролей. Приложения занимаются своей логикой, а безопасность вынесена в отдельный защищенный слой.

🔥 Хотите ещё больше полезных материалов? Жмите огонёк и следите за новыми постами!
GitHub
GitHub - pocket-id/pocket-id: The most user-friendly OpenID Connect Certified™ and OAuth 2.0 provider that lets users sign in to…
The most user-friendly OpenID Connect Certified™ and OAuth 2.0 provider that lets users sign in to your applications with passkeys. - pocket-id/pocket-id
🔥46👍8❤5🥰1
March 22, 2026 3.3K 5 15