Groupes, rôles et droits

Afficher en MarkdownOuvrir dans Claude

Groupes, rôles & droits

Principe : les droits vivent dans le groupe

Dans un tenant, les droits d’un utilisateur sont ceux de son groupe. Un utilisateur appartient à un et un seul groupe (champ groupId de l’utilisateur, obligatoire) et hérite des rôles qui y sont attachés. Un groupe peut, lui, compter autant d’utilisateurs que nécessaire — ou un seul, lorsqu’on veut des droits « individuels ».

Le tenant désigne par ailleurs un groupe par défaut (defaultGroupId ; ce groupe porte alors isDefault: true), auquel un utilisateur est rattaché automatiquement lors de certains provisionnements (Azure, Google, Keycloak, etc.).

Un groupe définit :

À la mise en place de votre tenant, l’éventail des groupes et des droits disponibles est défini par Goodflag. Vous administrez ensuite librement vos groupes dans ce cadre.

L’intérêt principal des groupes est d’isoler des groupes d’utilisateurs les uns par rapport aux autres. Ainsi par exemple il peut être intéressant pour les utilisateurs clients de l’entreprise de faire partie d’un groupe “Clients” et ainsi de disposer de la possibilité de se connecter au portail avec leur propre compte leur permettant de visualiser leurs propres parapheurs uniquement. Dans un autre cas, il peut être souhaitable pour les membres d’un groupe d’utilisateurs “RH” appartenant au département des ressources humaines de visualiser tous les parapheurs de tous les membres du groupe.

Créer & configurer un groupe

POST /api/tenants/{tenantId}/groups
Authorization: Bearer act_<id>.<secret>
Content-Type: application/json
{
"name": "Back-office signatures",
"description": "Équipe qui pilote les parapheurs",
"userRoles": [ "portalUser", "workflowCreator", "workflowManager", "developer" ],
"templateSelectionMode": "any",
"layoutSelectionMode": "listOrNull",
"allowedLayouts": [ "lay_…" ],
"hideWorkflowRecipients": false
}
ChampTypeRôle
nameStringNom du groupe.
descriptionString (facultatif)Description libre.
isDisabledBoolean (facultatif)Groupe désactivé ou non.
userRolesArray (facultatif)Les rôles accordés aux membres (section Les rôles (userRoles)).
hideWorkflowRecipientsBoolean (facultatif)Masquer aux membres les autres destinataires d’un parapheur.
templateSelectionMode / allowedTemplatesString / Array (facultatif)Cadrage des modèles (section Cadrage de l’usage).
layoutSelectionMode / allowedLayoutsString / Array (facultatif)Cadrage des dispositions de métadonnées (section Cadrage de l’usage).
…AuthorizedGroupsArray (facultatif)Autorisations inter-groupes (section Autorisations inter-groupes).
groupedInvitationsObject (facultatif)Invitations groupées (section Invitations groupées (groupedInvitations)).

La réponse renvoie le groupe créé (id préfixé grp_, isDefault, dates, ETag…).

Les rôles (userRoles)

Les rôles se répartissent en trois familles. Le champ userRoles attend la liste des identifiants ci-dessous.

Rôles basiques

IdentifiantPermet à ses membres de…
portalUseraccéder au Portail et créer leurs propres favoris ;
workflowCreatorcréer leurs propres parapheurs ;
contactCreatorcréer leurs propres contacts ;
signersigner des parapheurs ;
approvervalider des parapheurs ;
userViewervisualiser tous les utilisateurs du tenant ;
workflowViewervisualiser tous les parapheurs du tenant ;
workflowEvidenceDownloadertélécharger les dossiers de preuve de leurs propres parapheurs ;
workflowDeletersupprimer leurs propres parapheurs ;
workflowArchiverclôturer leurs propres parapheurs ;
workflowCoManagerpermet d’être désigné comme visualiseur et cogestionnaire de parapheurs ;
selfAnonymizeranonymiser leur propre compte ;
exportViewerrechercher et visualiser tous les exports du tenant ;
bulkViewerexporter en masse les documents et pièces jointes de ses propres parapheurs terminés.

Rôles d’administration

IdentifiantAdministre…
tenantManagerla configuration du tenant (et, à ce titre, pages de consentement, profils de signature, webhooks, exports, journaux, preuves) ;
groupManagertous les groupes ;
userManagertous les utilisateurs (création, gestion, anonymisation) ;
consentPageManagertoutes les pages de consentement ;
organizationManagertoutes les organisations ;
templateManagertous les modèles ;
layoutManagertoutes les dispositions de métadonnées (« Administrateur des dispositions de métadonnées ») ;
workflowManagertous les parapheurs du tenant.

Rôles de développement

IdentifiantPermet de…
developercréer ses jetons d’API et ses webhooksc’est le rôle indispensable pour intégrer l’API (voir fondation Authentification) ;
workflowInvitercréer des invitations pour tous les parapheurs du tenant.

Autorisations inter-groupes

Par défaut, un rôle porte sur les objets propres à l’utilisateur ou à son groupe. Pour déléguer à un groupe le droit d’agir sur les utilisateurs ou les parapheurs d’autres groupes, on renseigne huit listes d’identifiants de groupes :

Sur les utilisateursSur les parapheursAction
viewUserAuthorizedGroupsviewWorkflowAuthorizedGroupsVoir (consulter, rechercher, exporter)
createUserAuthorizedGroupscreateWorkflowAuthorizedGroupsCréer / transférer
updateUserAuthorizedGroupsupdateWorkflowAuthorizedGroupsGérer (modifier)
deleteUserAuthorizedGroupsdeleteWorkflowAuthorizedGroupsAnonymiser (utilisateurs) / Supprimer (parapheurs)

Chaque liste contient les identifiants des groupes dont les membres reçoivent l’autorisation. L’alias self désigne le groupe courant. Exemple : un groupe « Back-office » qui gère les utilisateurs et parapheurs des groupes métier.

Cadrage de l’usage

  • ModèlestemplateSelectionMode gouverne l’emploi des modèles par les créateurs de parapheurs du groupe :
ValeurSignification
anylibre
anyOrNulllibre ou aucun
listchoisir parmi la liste (allowedTemplates)
listOrNullchoisir parmi la liste, ou aucun
  • Dispositions de métadonnéeslayoutSelectionMode fonctionne à l’identique, avec allowedLayouts.
  • DestinataireshideWorkflowRecipients masque aux membres les autres destinataires d’un parapheur.

Invitations groupées (groupedInvitations)

Permet de regrouper les notifications envoyées aux membres du groupe plutôt que de les envoyer une par une :

  • mode — activation du regroupement ;
  • activeDays — jours de la semaine d’envoi ;
  • sendingSlots — créneaux d’envoi, chacun avec time (format HH:mm) et zone (ex. Europe/Paris).

Cycle de vie d’un groupe