Utilisateurs de vos applications
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) | |
|---|---|---|
| Qui | vous, vos collègues, vos CI, vos machines | les utilisateurs finaux de vos applications |
| Où ils se connectent | console, sng sso login, API StackNGO | vos applications, via OIDC (Authentification de vos applications) |
| Ce que ça contrôle | sng apply, secrets, policies… dans le tenant | les rôles et permissions que vos applications lisent dans les jetons |
| Où les gérer | section IAM de la console, sng tenant policy | section Authentification de la console, sng iam |
| Objets | IAMPolicy, IAMPolicyBinding | utilisateurs, 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 policyreadonly; la gestion des comptes, des invitations, des rôles et de la page de connexion (auth:ManageUsers,auth:ManageRoles,auth:ManageLoginPage) est dansreadwrite; la lecture des identifiants d'une application (auth:ReadCredentials) demandeadmin. Voir le catalogue des actions.
Comment les utilisateurs arrivent
Deux politiques d'inscription, réglables dans la page de connexion :
| Politique | Effet |
|---|---|
invite (défaut) | seules les personnes que vous avez invitées peuvent créer un compte |
open | toute 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 createrefuse un rôle qui existe déjà ;role updatene modifie que ce que vous indiquez et refuse d'écraser une modification faite entre-temps.user roles --setremplace la liste des rôles de l'utilisateur.- Les rôles et permissions de l'utilisateur apparaissent dans ses jetons (claims
rolesetpermissions, 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.