Апп холбох (Government SSO / OIDC RP)¶
Апп-аа Government SSO (sso.dgov.mn)-ий relying party болгож холбоно. Нэвтрэх товч дарахад хэрэглэгч sso.dgov.mn руу шилжиж, eID-ээр нэвтэрч, апп руугаа буцна.
1. Апп-аа RP client болгож бүртгүүлэх¶
Хоёр арга:
Admin → Applications → Шинэ апп дээр нэр, redirect URI, tag оруулж
хадгална. Хэрэгтэй eID service-үүдийг (eid-proxy г.м.) checkbox-оор олгоно.
client_id / client_secret буцна.
Сервер дээр register-rp.sh нь login redirect болон post-logout redirect
URI-г хамт зөв тавьдаг (logout алдаа гарахгүй):
2. Апп-ын тохиргоо¶
RP апп (энэ template-ийг ашиглаж байвал) backend.env-д:
SSO_ISSUER=https://sso.dgov.mn
SSO_CLIENT_ID=<client_id>
SSO_CLIENT_SECRET=<client_secret>
SSO_REDIRECT_URI=https://myapp.dgov.mn/sso/callback
SSO_SCOPE=openid profile email
3. Нэвтрэлтийн урсгал¶
- Хэрэглэгч апп дээр «Government SSO-оор нэвтрэх» дарна →
/api/auth/sso/start. - Backend
/sso/startнь state үүсгэж (Redis),sso.dgov.mn/oauth2/authруу authorize URL байгуулна; браузер тийш шилжинэ. - Хэрэглэгч sso.dgov.mn дээр eID-ээр нэвтэрнэ.
- sso.dgov.mn нь
https://myapp.dgov.mn/sso/callback?code&stateруу буцаана. - Backend
/sso/callbackнь code-ийг токен болгож солин, иргэнийгsso_sub-ээр upsert хийж, апп-ын өөрийн session (JWT) олгоно.
4. Гарах (logout)¶
RP-initiated logout нь sso.dgov.mn/oauth2/sessions/logout руу id_token_hint +
post_logout_redirect_uri-тай шилжинэ. Тухайн post-logout URI client-д
бүртгэгдсэн байх ёстой (register-rp.sh автоматаар тавьдаг).
Post-logout redirect бүртгэл
Апп-ыг зөвхөн login redirect-тэй бүртгэвэл logout нь "post_logout_redirect_uri
is not whitelisted" алдаа өгнө. register-rp.sh эсвэл Admin UI нь login ба
post-logout URI-г хамт тавьдаг тул энэ алдаа гарахгүй.
Нэмэлт service олгох¶
Апп нь нэвтэрснээс гадна SSO-ий нэмэлт service-үүдийг (eID proxy г.м.) ашиглахыг хүсвэл Admin-аас тухайн service-ийг апп-д олгоно. Дэлгэрэнгүйг eID Service Proxy болон API Gateway-аас үзнэ үү.