Realms
Un realm est un espace de gestion isolé dans TOSIAM. Chaque realm possède ses propres utilisateurs, groupes, rôles, politiques, modules d’authentification et configuration de services — sans interférence avec les autres realms.
Pourquoi des realms ?
Les realms permettent le multi-tenancy : une seule instance TOSIAM peut servir plusieurs organisations, départements ou applications tout en maintenant une séparation stricte des données et des politiques.
Cas d’usage typiques :
- Séparer les utilisateurs internes (employés) des utilisateurs externes (clients)
- Héberger plusieurs clients sur la même infrastructure
- Créer des environnements de test isolés du realm de production
Hiérarchie
Les realms forment une arborescence. Le realm racine (/) existe toujours. Les sub-realms s’y greffent :
/ (root realm)
├── /clients
│ ├── /clients/acme
│ └── /clients/contoso
└── /employees
Un sub-realm hérite de la configuration du realm parent, mais peut la surcharger localement.
Ce qu’un realm contient
| Ressource | Description |
|---|---|
| Utilisateurs & groupes | Identités stockées dans le datastore du realm |
| Rôles | Rôles statiques et filtrés |
| Modules d’authentification | Instances de modules configurées dans ce realm |
| Chaînes / graphes d’auth | Flux d’authentification disponibles |
| Services | OAuth2, SAML2, self-service, audit… |
| Politiques | Règles d’autorisation (entitlements) |
| Agents | Agents J2EE, Web et OAuth2 |
| Datastores | Sources d’identité (LDAP, AD, JDBC…) |
Gestion via l’API REST
GET /realms → lister tous les realms
POST /realms → créer un realm
GET /realms/{realm} → lire un realm
PUT /realms/{realm} → mettre à jour
DELETE /realms/{realm} → supprimer
Gestion via ssoadm
# Créer un realm
ssoadm create-realm --realm /clients/acme
# Lister les realms
ssoadm list-realms --realm /
# Ajouter un service à un realm
ssoadm add-svc-realm --realm /clients/acme --servicename iPlanetAMAuthService
# Lire les attributs d'un realm
ssoadm get-realm --realm /clients/acme
Realms et URL
L’URL de chaque realm suit le pattern :
https://hostname/tosiam/json/realms/root/realms/{realm-name}/...
Pour les endpoints d’authentification :
https://hostname/tosiam/realms/{realm}/authenticate
Le realm root correspond au realm racine /.