Architecture & sécurité

L'architecture, c'est
la sécurité

Ce qui se trouve dans la base de données détermine qui peut y accéder — et qui non. Temporalis EMS sépare les locataires physiquement, pas logiquement. C'est coûteux à exploiter et facile à défendre.

Isolation des locataires

Database-per-Tenant.
Pas Row-Level, pas Schema-Level.

Chaque locataire dispose de sa propre base de données sur notre Multi-Model-Database. Un filtre WHERE oublié dans le code ne peut pas faire fuiter de données tierces, parce que la connexion ne pointe même pas vers ces données.

Approche standard

Une seule base pour tous — colonne TenantID

  • Chaque requête doit contenir WHERE TenantID = ?.
  • Une erreur dans le code ou un export admin équivaut immédiatement à une fuite.
  • Restaurer une sauvegarde concerne tous les locataires en même temps.
Notre approche

Une base par locataire — séparation physique

  • Les requêtes n'ont pas besoin de filtre TenantID — la connexion est déjà liée.
  • Bug dans le code ≠ fuite cross-tenant. La base étrangère n'est même pas dans le pool de connexions.
  • Offboarding d'un locataire = un drop de base. Aucune ligne résiduelle dans le système.
  • Sauvegarde/restauration individuelle par locataire — aucun effet de bord.

Implémenté via EMS.Modules.Tenant.Abstraction et TenantClaimsTransformation. L'attribution du locataire se fait au bord du système (claim JWT → connexion DB), avant même que le premier query-builder ne soit touché.

Hébergement

Serveurs allemands,
aucun transfert hors UE

Tous les composants centraux tournent chez Hetzner Online à Falkenstein (Vogtland) et Nuremberg — deux datacenters certifiés ISO 27001 en Allemagne. Pas d'edges CloudFront, pas de télémétrie cachée, pas de fallback sur de l'infrastructure US.

  • Géo-redondanceFalkenstein + Nuremberg, > 300 km d'écart
  • Transfert vers pays tiersaucun — tous les sous-traitants en UE
  • Certification du fournisseurHetzner : ISO 27001, DIN 18599, TÜV
  • Transit réseauDE-CIX Francfort — pas de routage via le backbone US
Voir les sous-traitants et le DPA

Authentification

Qui entre,
vous le contrôlez

Aucun système de login propriétaire. Keycloak en backend, protocoles standards — vous gardez votre setup d'identity-provider au lieu de maintenir un univers parallèle.

OIDC + OAuth2

Login via OpenID Connect. Authorization-Code-Flow avec PKCE, rotation de refresh-token, claims de session avec attribution de locataire.

SSO via SAML 2.0

Connecteurs entreprise pour Azure AD/Entra, Okta, Keycloak, Google Workspace. Mapping d'attributs pour les rôles basés sur les groupes.

MFA + clés matérielles

TOTP (app authenticator) et WebAuthn/Passkeys (YubiKey, Windows Hello, Touch ID) prêts à l'emploi. Résistant au phishing.

Permissions granulaires

Stack de permissions projet à 17 niveaux + visibilité des champs financiers basée sur les rôles et les utilisateurs. Tout est tracé dans l'audit-log.

Stack technologique

Standards ouverts,
aucun verrouillage

Chaque couche du stack est un standard ouvert et documenté. Chemins d'export dans les deux sens. Aucun format propriétaire qui vous lierait à nous.

FrontendAngular 21

Server-Side-Rendering, modules en lazy-load, composants standalone.

Backend.NET 10

Minimal APIs, OpenAPI 3, logs structurés (Serilog).

Base de donnéesMulti-Model-Database

Graph + document + key-value dans un seul moteur — pour le projet-graphe à 49 propriétés.

IdentitéKeycloak

OIDC, SAML, fédération LDAP. Auto-hébergé en datacenter UE.

RapportsReport-Designer

Designer de rapports visuel intégré au produit. Export Excel, PDF, CSV.

ExploitationDocker + Kubernetes

Déploiements GitOps, rollbacks automatiques, infrastructure-as-code.

Observabilité & audit

Chaque modification
reste traçable

Audit-log au niveau de l'entité avec snapshot avant/après, acteur et horodatage. Logs structurés via Serilog avec IDs de corrélation — vous suivez une chaîne de requête depuis l'edge jusqu'à la query. Exportable pour votre propre pipeline SIEM.

Pour les équipes IT et sécurité

Audit technique en profondeur ?
Parlez-nous directement.

Nous vous montrons le flux de requêtes, vous donnons accès à l'audit-log, discutons de votre intégration IdP. Pas de slides marketing — juste de vraies réponses.