Aller au contenu

Gerege App

Production · Couche 4 — Produit vertical · Dépôt : gerege-app-mn · geregeapp.mn

Les services quotidiens du citoyen dans une seule application. S'identifier avec sa pièce d'identité électronique, obtenir une attestation, signer un contrat, payer, administrer son organisation — sans multiplier les applications, les mots de passe et les files d'attente.

Propriété

La plateforme est détenue et exploitée par Gerege App ХХК. Son socle technique est open-gerege-core, le module Go partagé avec la variante de Gerege Systems, dont elle hérite les couches d'identité, de sécurité, d'IA et de support de service.

Le problème résolu

Le citoyen ouvre une application différente pour chaque service, retient un mot de passe différent et joint encore et encore les mêmes pièces. Gerege App règle ces trois points d'un coup :

Question Réponse
Qui se connecte ? Authentification eID — QR / App2App / push par numéro d'état civil
Se reconnecter ? Une seule fois — la plateforme est elle-même fournisseur OIDC (SSO)
Redemander les mêmes pièces ? Le registre des services détecte les manquements au principe once-only
Où en est ma demande ? Chronologie de la demande + suivi du SLA du relay

Capacités principales

  • eID + Gerege SSO


    Le seul mode de connexion est l'eID. Ni mot de passe, ni OTP par e-mail. La plateforme est en outre relying party de Gerege SSO.

  • Fournisseur OIDC à son tour


    Quand OAUTH_ISSUER est configuré, la plateforme devient son propre fournisseur d'identité — code Go maison, PKCE S256, id_token en RS256.

  • Portail de services publics


    Catalogue → demande → file d'attente de l'agent → décision → attestation, paiement, rendez-vous. Machine à états séparant l'avancement du résultat, à la manière de ZGW.

  • Registre unifié des services


    Passeport CPSV-AP, historique des versions, catalogue de preuves, détection des manquements au principe once-only (principe estonien).

  • Relay entre plateformes


    Les demandes à échéance venues d'une plateforme supérieure sont orientées vers les organismes inférieurs, et le SLA est suivi. Le webhook est signé avec le secret propre à chaque plateforme.

  • Assistant IA (Gemini)


    Chat, parole → texte, texte → parole, traduction en direct. Base de connaissances à recherche sémantique pgvector ; le chat visiteur sans connexion est isolé à part.

Également : signature électronique PAdES + sign relay, passerelle API pilotée depuis l'admin, RBAC + super admin (MFA par TOTP), organisations et affiliations, profil PKI eID, connexions Google Drive · Dropbox · Google Meet, stockage SFTP propre (Gerege Space), interface en quatre langues (mn · en · zh · ru).

Place dans l'écosystème

flowchart TD
    EID[eID Mongolia<br/>Couche 1] --> SSO[Gerege SSO<br/>Couche 2]
    SSO -->|RP OIDC| APP[Gerege App<br/>Couche 4]
    SSO -->|proxy eID · sign relay| APP
    CORE[(open-gerege-core<br/>Couche 3)] -.module socle.-> APP
  • Aucun accès direct à l'eID. Les services eID autorisés transitent par le proxy eID du SSO (/rp/eid, /rp/eid-org) et par le sign relay (/rp/sign).
  • Le client secret est dans le SSO. Le client gerege-app-mn est enregistré sur sso.gerege.mn ; son secret n'y vit que sous forme de hachage.
  • Le socle est partagé. Le backend est l'implémentation de référence de open-gerege-core (main.go, une trentaine de lignes), sans routes ajoutées en propre. Les correctifs de sécurité se diffusent depuis un point unique.

Technologie

Couche Choix
Backend Go 1.26 · chi (net/http) · pgx (sans ORM, SQL écrit à la main)
Données PostgreSQL 16 + pgvector · Redis 7
Frontend Next.js 15 (BFF) · TanStack Query
IA Gemini REST (sans SDK) — chat · STT · TTS · traduction
Observabilité OpenTelemetry · Prometheus · Zap
Déploiement Docker Compose + edge nginx, geregeapp.mn

Pour le détail, voir Stack technique.

Socle de sécurité

  • Row-Level Security de Postgres — l'API se connecte avec un rôle qui n'est pas superuser ; un garde-fou vérifie cette condition au démarrage. Les tables gov_* disposent d'une policy distincte pour les agents.
  • Modèle BFF — le jeton reste dans un cookie httpOnly et n'atteint jamais le JavaScript du navigateur ; double protection CSRF (en-tête dédié + origine).
  • Fonctions fail-closed — sans identifiants, la capacité s'éteint plutôt que de fonctionner à faux ; si le garde-fou de démarrage détecte une infraction, l'API refuse de démarrer.
  • Audit chaîné par hachage/api/v1/audit/verify contrôle l'intégrité de la chaîne.

Pour les exigences communes de l'écosystème, voir Sécurité.

Documentation détaillée

La documentation complète au niveau de l'implémentation — matrice des capacités, référence des endpoints, runbook de déploiement — se trouve sur un site distinct :

Documentation Gerege App →

Page De quoi il s'agit
Matrice des capacités Chaque module, ses droits et ses pages d'interface d'un coup d'œil
Services publics Le cycle complet d'une demande, la file d'attente de l'agent
Registre des services Passeport CPSV-AP, manquements au once-only
Raccorder une application (RP OIDC) Les étapes pour authentifier votre propre application
Référence d'API Tous les endpoints dans un seul tableau
Déploiement Compose, variables d'environnement, nginx, rollback