Подключение приложения (Gerege SSO / OIDC RP)¶
Подключите своё приложение как доверяющую сторону Gerege SSO (gerege.mn). Когда пользователь нажимает «Войти», его перенаправляет на gerege.mn, там он проходит аутентификацию через eID и возвращается в ваше приложение.
1. Зарегистрируйте приложение как RP-клиент¶
Два способа:
В разделе Админ → Приложения → Новое приложение укажите название,
redirect URI и тег, затем сохраните. Нужные сервисы eID (например, eid-proxy)
выдайте галочками. Вы получите client_id / client_secret.
На сервере register-rp.sh корректно задаёт и redirect для входа, и
redirect после выхода (чтобы выход не падал):
2. Настройка приложения¶
Если ваше приложение построено на этом шаблоне, задайте в backend.env:
SSO_ISSUER=https://gerege.mn
SSO_CLIENT_ID=<client_id>
SSO_CLIENT_SECRET=<client_secret>
SSO_REDIRECT_URI=https://mygerege.mn/sso/callback
SSO_SCOPE=openid profile email
3. Поток входа¶
- Пользователь нажимает «Sign in with Gerege SSO» →
/api/auth/sso/start. - Бэкенд
/sso/startсоздаёт state (Redis) и формирует authorize-URL наgerege.mn/oauth2/auth; браузер перенаправляется туда. - Пользователь проходит аутентификацию через eID на gerege.mn.
- gerege.mn возвращает на
https://mygerege.mn/sso/callback?code&state. - Бэкенд
/sso/callbackобменивает код на токены, делает upsert гражданина поsso_subи выдаёт собственную сессию приложения (JWT).
4. Выход¶
Выход, инициированный RP, перенаправляет на
gerege.mn/oauth2/sessions/logout с id_token_hint и
post_logout_redirect_uri. Этот URI обязан быть зарегистрирован у клиента
(register-rp.sh задаёт его автоматически).
Зарегистрируйте redirect после выхода
Если приложение зарегистрировано только с redirect для входа, выход упадёт с
ошибкой «post_logout_redirect_uri is not whitelisted». register-rp.sh и
интерфейс администратора задают оба URI сразу, поэтому такой ошибки не будет.
Выдача дополнительных сервисов¶
Помимо входа, если вашему приложению нужны дополнительные сервисы SSO (например, прокси eID), администратор выдаёт этот сервис приложению. См. Прокси сервисов eID и API-шлюз.