Вход по паспорту Universe24
Universe ID работает как OpenID Connect-провайдер: сервис отправляет гражданина на подтверждение, получает одноразовый authorization code и создаёт свою локальную сессию по стабильному Citizen ID.
Стандартные адреса
OIDC Authorization Code + PKCEhttps://id.universe24.onlinehttps://id.universe24.online/.well-known/openid-configurationhttps://id.universe24.online/sso/authorizehttps://id.universe24.online/sso/tokenhttps://id.universe24.online/sso/userinfohttps://id.universe24.online/sso/jwks.jsonЧто получает сервис
{
"sub": "UC-...",
"citizen_id": "UC-...",
"name": "Гражданин",
"passport": "UNI-MW-26-....-....",
"passport_version": 2,
"passport_status": "active",
"passport_verified": true,
"galaxy": "MW",
"passport_verify_url": "https://id.universe24.online/verify/..."
}
Поле sub — постоянный идентификатор гражданина. Используйте его как внешний ключ пользователя. Не используйте номер паспорта как ID аккаунта: паспорт может быть перевыпущен.
Scopes
openidCitizen ID. Обязателен.profileОтображаемое имя.universe_passportДействующий паспорт, версия, галактика и ссылка проверки.universe_profileДополнительные поля паспорта. Разрешается клиенту отдельно.Universe Approval
0.6.0Confidential-клиенты с отдельной capability universe_approval могут запросить у гражданина подтверждение конкретного действия через его существующий Passkey.
POST https://id.universe24.online/api/v1/approvalsGET https://id.universe24.online/api/v1/approvals/{approval_id}https://id.universe24.online/api/v1/approval/jwks.jsonПоддерживаются SIGN, DECLINE, APPROVE, ACKNOWLEDGE и RECEIVE. Challenge связан с resource ID/version/SHA-256. Подробности: docs/UNIVERSE_APPROVAL.md.
Universe OS Launch Handoff
0.6.0Universe OS может получить короткоживущий одноразовый handoff в заранее разрешённое target-приложение. OS не получает target access token: приложение само redeem-ит code у Universe ID.
POST https://id.universe24.online/sso/launch/handoffPOST https://id.universe24.online/sso/launch/tokenuniverse_launch_sourceSource может создавать handoff только в свой allowlist target client IDs.universe_launch_targetTarget принимает handoff только на отдельный exact-match launch redirect URI.Код живёт 45 секунд и одноразовый. Полная схема: docs/OS_LAUNCH_HANDOFF.md.
Полная пошаговая инструкция и готовый пример FastAPI входят в дистрибутив: docs/SSO_INTEGRATION.md и examples/fastapi_sso_client.py.