Permissions
Identité, rôles, ensembles d'autorisations, accès aux enregistrements et sécurité des champs — l'intégralité du modèle d'accès sur une seule page.
Permissions
ObjectOS dispose d'un modèle d'accès en couches inspiré des principes qui ont fait leurs preuves dans les logiciels d'entreprise depuis deux décennies : identité → rôles → ensembles d'autorisations → accès aux enregistrements → sécurité des champs. Chaque couche répond à une question différente, et vous pouvez ignorer celles dont vous n'avez pas besoin.
Le modèle en un seul diagramme
Authentication Who is the caller?
↓
Identity Which user/org/membership is active?
↓
Roles Where do they sit in the hierarchy?
↓
Permission sets What CAN they do — apps, objects, fields, system?
↓
Record access WHICH records can they touch?
↓
Field security For those records, which FIELDS are readable / writable?Chaque couche est appliquée par le plugin de sécurité. Vous pouvez utiliser uniquement les ensembles d'autorisations (sans rôles, sans règles de partage) pour des applications simples et ajouter le reste à mesure que le besoin apparaît.
Couche 1 — Identité
Les objets d'identité résident dans la base de données de votre projet. Les plus importants :
| Objet | Ce qu'il représente |
|---|---|
sys_user | Une personne ou un compte de service pouvant s'authentifier |
sys_organization | Limite de locataire / espace de travail (applications multi-locataires) |
sys_member | L'appartenance d'un utilisateur à une organisation (rôle attribué par appartenance) |
sys_department, sys_team | Structure organisationnelle facultative pour les règles de partage |
sys_invitation | Invitation en attente d'acceptation |
sys_session | Session authentifiée active |
sys_api_key | Identifiant programmatique de longue durée lié à un utilisateur |
Dans un déploiement multi-locataire :
- Les utilisateurs sont délimités à la base de données du projet.
- Les sessions sont délimitées au nom d'hôte du projet.
- Les vérifications au niveau des lignes utilisent l'organisation et les autorisations de l'utilisateur courant.
- Les utilisateurs du plan de contrôle ne sont pas automatiquement des utilisateurs métier — ils doivent être mappés via le SSO de la plateforme ou un provisionnement explicite.
Vous créez/gérez ces éléments depuis la Console (/_console/) à
l'exécution, ou vous les initialisez dans objectstack.config.ts pour
les nouveaux environnements.
Couche 2 — Rôles
Les rôles modélisent l'organigramme (CFO → Responsable financier → Analyste). Ils existent principalement pour que les règles de partage et les rapports puissent exprimer des choses comme « le responsable du propriétaire de l'enregistrement ». Utilisez les rôles lorsque vous avez besoin d'un accès hiérarchique ; ignorez-les pour les équipes à structure plate.
Voir Rôles.
Couche 3 — Ensembles d'autorisations
Les ensembles d'autorisations constituent le principal moyen d'accorder des capacités. Ils s'attachent aux utilisateurs directement ou via les rôles.
Ce qu'ils accordent
| Type | Exemples |
|---|---|
| Accès aux applications | Ouvrir le CRM, ouvrir le portail de support |
| Permissions sur les objets | Créer / lire / mettre à jour / supprimer les enregistrements d'un objet |
| Permissions sur les champs | Lire ou mettre à jour des champs spécifiques |
| Permissions système | Accéder à la Console, exécuter des rapports, exporter des données, consulter le journal d'audit |
| Permissions d'intégration | Utiliser des clés API, configurer des webhooks, exécuter des actions d'administration |
Indicateurs de permission sur les objets
Voici les noms exacts des indicateurs vérifiés par le plugin de sécurité :
| Indicateur | Signification |
|---|---|
allowRead | Lire les enregistrements que l'utilisateur peut voir via l'accès aux enregistrements |
allowCreate | Créer de nouveaux enregistrements |
allowEdit | Mettre à jour les enregistrements que l'utilisateur peut voir |
allowDelete | Supprimer les enregistrements que l'utilisateur peut voir |
viewAllRecords | Lire chaque enregistrement de l'objet, en ignorant les règles d'accès aux enregistrements |
modifyAllRecords | Mettre à jour/supprimer chaque enregistrement ; implique viewAllRecords |
viewAllRecords et modifyAllRecords sont des privilèges de
super-utilisateur à l'échelle du locataire pour cet objet. Réservez-les à
des ensembles d'autorisations administratifs explicites et tenez-les à
l'écart de tout rôle destiné aux utilisateurs.
Voir Ensembles d'autorisations.
Couche 4 — Accès aux enregistrements
Pour les utilisateurs sans viewAllRecords, quelles lignes
peuvent-ils voir ?
Le modèle prend en charge :
- La propriété implicite (les lignes que l'utilisateur a créées ou possède)
- Les règles de partage (déclaratives — « l'équipe A voit les enregistrements de l'équipe A »)
- Les partages explicites (lignes
sys_record_share— partages ponctuels) - La délimitation par organisation (l'
organization_idde la ligne correspond à l'organisation de l'utilisateur)
Voir Accès aux enregistrements.
Couche 5 — Sécurité des champs
Même lorsqu'un utilisateur peut voir un enregistrement, des champs individuels peuvent être :
- Masqués — le champ est retiré des réponses de l'API et de l'interface.
- En lecture seule — le champ est renvoyé mais rejeté en écriture.
La sécurité des champs s'applique par objet + par ensemble d'autorisations. Usage typique :
- Masquer
salarysursys_userpour toute personne en dehors des RH. - Rendre
external_account_idlisible mais non modifiable pour les commerciaux du support.
Elle est appliquée par le même évaluateur que les permissions sur les objets, de sorte qu'elle s'applique uniformément à REST, ObjectQL et la Console.
Par où commencer
| Si vous construisez … | Utilisez |
|---|---|
| Un outil interne pour une seule équipe | Uniquement des ensembles d'autorisations |
| Une application multi-équipes où les responsables consultent des rapports | Rôles + ensembles d'autorisations |
| Une application de type SaaS multi-locataire | Délimitation par organisation + ensembles d'autorisations |
| Une application réglementée avec des données personnelles (PII) | Ajouter la sécurité des champs par-dessus |
| Une application complexe de type CRM | L'ensemble complet de la pile |
Diagnostiquer et auditer
/_console/affiche les permissions effectives de tout utilisateur telles qu'elles sont évaluées.- Le journal d'audit (
sys_audit_log) enregistre les modifications sensibles aux permissions — octrois, attributions de rôles, modifications d'ensembles d'autorisations. - Les requêtes refusées consignent la règle qui a échoué (permission sur l'objet, accès à l'enregistrement ou sécurité des champs), afin que le support puisse répondre rapidement à la question « pourquoi ne puis-je pas voir ceci ? ».