Aller au contenu principal

Utilisateurs de vos applications

Disponible

Fonctionnalité déployée et prise en charge. Les champs et commandes décrits ici sont stables au sein de la version v1alpha1.

Vos applications ont leurs propres utilisateurs : clients, employés, partenaires. StackNGO tient pour cela un annuaire propre à votre tenant, sans rien à installer ni à initialiser : il est là dès la création du tenant. Ces comptes se connectent à vos applications, par OIDC ; ils n'ont aucun droit sur la plateforme. Vous les administrez depuis la section Authentification de la console ou avec sng iam.

sng tenant use acme
sng iam role create support --permission tickets:read --permission tickets:reply
sng iam user invite alice@acme.example --role support
Invitation créée pour alice@acme.example (valable 168 h)
Lien d'invitation (affiché une seule fois) : https://auth.dev.stackngo.fr/t/acme/invitation/…

Deux mondes à ne pas confondre​

Membres du tenant (sng tenant policy)Utilisateurs de vos applications (sng iam)
Quivous, vos collègues, vos CI, vos machinesles utilisateurs finaux de vos applications
Où ils se connectentconsole, sng sso login, API StackNGOvos applications, via OIDC (Authentification de vos applications)
Ce que ça contrôlesng apply, secrets, policies… dans le tenantles rôles et permissions que vos applications lisent dans les jetons
Où les gérersection IAM de la console, sng tenant policysection Authentification de la console, sng iam
ObjetsIAMPolicy, IAMPolicyBindingutilisateurs, rôles, invitations, applications, fournisseurs de connexion

Un utilisateur de vos applications ne peut pas ouvrir de session StackNGO : son jeton est refusé par l'API. Inversement, donner des droits à un collègue se fait par sng tenant policy attach, pas par sng iam.

Prérequis​

  • Une session sur le tenant : sng tenant use acme.
  • Les actions auth:* : auth:ListUsers (lecture) est dans la policy readonly ; la gestion des comptes, des invitations, des rôles et de la page de connexion (auth:ManageUsers, auth:ManageRoles, auth:ManageLoginPage) est dans readwrite ; la lecture des identifiants d'une application (auth:ReadCredentials) demande admin. Voir le catalogue des actions.

Comment les utilisateurs arrivent​

Deux politiques d'inscription, réglables dans la page de connexion :

PolitiqueEffet
invite (défaut)seules les personnes que vous avez invitées peuvent créer un compte
opentoute personne qui se connecte avec un moyen de connexion que vous avez activé crée son compte

Inviter. sng iam user invite EMAIL [--role R]… [--expires-in-hours N] (ou le bouton Inviter de la console) crée une invitation à usage unique, valable 168 h par défaut (1 à 720 h), avec les rôles à donner à l'arrivée. Le lien d'invitation n'est affiché qu'une fois : transmettez-le à la personne ; il n'est plus relisible ensuite. Les invitations en attente se suivent avec sng iam invitation list --pending et se retirent avec sng iam invitation delete ID.

Connexion sans mot de passe​

Il n'y a aucun mot de passe à créer, à stocker ou à réinitialiser. Chaque utilisateur se connecte avec l'un des moyens que vous avez activés :

  • un lien de connexion envoyé par e-mail ;
  • un compte Google, GitHub, GitLab, Microsoft, LinkedIn ou un fournisseur OpenID Connect de votre choix ;
  • une passkey (clé d'accès de l'appareil), que la personne peut ajouter à son compte.

Un compte est rattaché à son adresse e-mail : une personne qui se connecte d'abord par e-mail puis par Google, avec la même adresse vérifiée, retrouve le même compte. Les moyens se déclarent dans Fournisseurs de connexion.

Consulter et bloquer des comptes​

sng iam user list --search alice
sng iam user describe 7c1f2a6e-3b0d-4c52-9f0e-0d6a4d5b8a11
sng iam user disable 7c1f2a6e-3b0d-4c52-9f0e-0d6a4d5b8a11
sng iam user enable 7c1f2a6e-3b0d-4c52-9f0e-0d6a4d5b8a11
sng iam user delete 7c1f2a6e-3b0d-4c52-9f0e-0d6a4d5b8a11 --yes

Un utilisateur est désigné par son identifiant stable (sub, celui de ses jetons), affiché par user list. La fiche (describe) indique ses rôles, sa dernière connexion et les moyens de connexion rattachés. Bloquer un compte (disable) empêche toute nouvelle connexion et tout nouveau jeton, sans rien supprimer ; enable le rétablit. delete supprime le compte définitivement.

Rôles et permissions​

Un rôle est un nom (support, admin…) accompagné d'une liste de permissions : des chaînes que votre application interprète (tickets:read, billing:*). StackNGO ne les applique pas : il les écrit dans les jetons, et votre application décide. Un rôle compte jusqu'à 50 permissions ; un tenant, 100 rôles.

sng iam role create support --description "Équipe support" \
--permission tickets:read --permission tickets:reply
sng iam role update support --permission tickets:read --permission tickets:reply --permission tickets:close
sng iam role list
sng iam role describe support
sng iam user roles 7c1f2a6e-3b0d-4c52-9f0e-0d6a4d5b8a11 --set support,reporting
sng iam role delete support --yes
  • role create refuse un rôle qui existe déjà ; role update ne modifie que ce que vous indiquez et refuse d'écraser une modification faite entre-temps.
  • user roles --set remplace la liste des rôles de l'utilisateur.
  • Les rôles et permissions de l'utilisateur apparaissent dans ses jetons (claims roles et permissions, voir Authentification de vos applications).

Vérification​

sng iam user list
sng iam role list

Les comptes et rôles apparaissent aussi dans la console, section Authentification, pages Utilisateurs et Rôles.

Limites​

  • Un tenant n'a pas d'annuaire tant qu'il n'est pas activé : les commandes répondent alors 404. Contactez le support si c'est le cas d'un tenant récent.
  • 1 000 invitations en attente au plus par tenant.
  • Les rôles décrits ici sont ceux de vos applications ; ils sont indépendants des rôles et policies qui règlent l'accès à StackNGO.

Voir aussi​