Procédure Pour: développeurs

Intégration du portail

Configurez dans la console le principal de service et le jeton d'API d'un portail de libre-service, et les webhooks qu'il reçoit.

Un portail de libre-service pilote Kyvernon comme principal de service : un compte pour un programme, avec le rôle intégré Tenant service principal et un jeton d'API. Cette page configure le compte une fois et abonne le portail aux événements dont il a besoin. Vous avez besoin des privilèges Kyvernon.Identity.ManageUsers, Authorization.ModifyPermissions et Kyvernon.Webhook.Manage sur la racine.

Dans la console

Créer le principal de service

  1. Ouvrez Menu utilisateur en haut à droite, sélectionnez Administration, puis sélectionnez Utilisateurs dans la liste de gauche.
  2. Sélectionnez Créer un utilisateur. Saisissez Nom d’utilisateur, par exemple portal, et Nom affiché, par exemple Self-service portal, ainsi qu'un mot de passe ; le compte ne se connecte pas avec. Cochez Compte de service.

    Boîte de dialogue de création d'un utilisateur avec le mot de passe et les groupes (Agrandir)
  3. Sélectionnez Créer.

Lui donner le rôle

  1. Dans la liste de gauche, sélectionnez Autorisations, puis sélectionnez l'entrée du haut, Domaine de gestion, dans l'arborescence des objets.
  2. Sélectionnez Attribuer un rôle. Choisissez Type d’entité Utilisateur, recherchez portal comme Nom de l’utilisateur ou du groupe, et choisissez le rôle Tenant service principal comme Rôle. Gardez Propager aux objets enfants cochée.

    Boîte de dialogue d'attribution d'un rôle avec le principal, le rôle et la propagation (Agrandir)
  3. Sélectionnez Enregistrer.

Créer son jeton d'API

  1. Dans la liste de gauche, sélectionnez Jetons d’API, puis choisissez portal sous Jetons de.
  2. Sélectionnez Créer un jeton, saisissez Nom, par exemple portal-prod, choisissez Durée de vie et sélectionnez Créer le jeton.

    Boîte de dialogue de création d'un jeton d'API avec le nom et la durée de vie (Agrandir)
  3. Sélectionnez Copier dans le presse-papiers, conservez le secret dans le gestionnaire de secrets du portail et sélectionnez J’ai enregistré le secret. Le secret n'est affiché qu'une fois ; voir Jetons d'API.

Abonner le portail aux événements

  1. Ouvrez la page d'accueil (Accueil), sélectionnez Webhooks sous Raccourcis, puis sélectionnez Nouveau webhook.
  2. Saisissez Nom, Adresse du portail et Secret partagé d'au moins 16 caractères.
  3. Laissez Locataire vide pour recevoir les événements de tous les locataires, ou saisissez l'identifiant d'un locataire pour recevoir uniquement ses événements.

    Boîte de dialogue Nouveau webhook avec l'adresse, le secret et les types d'événements (Agrandir)
  4. Sélectionnez Créer le webhook, puis Envoyer un test pour vérifier que le portail répond. Les détails de l'abonnement se trouvent dans Webhooks.

Résultat

Le portail appelle l'API avec son jeton et reçoit ces événements, avec le type CloudEvents kyvernon.event.<type> : server.created, server.deleted, server.resized, server.power, server.reinstalled, tenant.suspended, tenant.resumed, tenant.closed et quota.exceeded. Le champ data.attributes contient tenant, tenantName, externalRef, server, plan et, le cas échéant, action. Un abonnement avec un filtre de locataire reçoit uniquement les événements de ce locataire.

Automatisation

Avec la CLI

Shell
kyvernon users create portal --display-name "Self-service portal"
kyvernon users service-account portal
kyvernon roles list
kyvernon permissions set group-d1 portal --role <role-id>
kyvernon users api-tokens portal create portal-prod

<role-id> est l'identifiant du rôle Tenant service principal dans la sortie de roles list, et group-d1 est le dossier racine. Le portail appelle ensuite les fonctions de locataire, d'offre, de catalogue et de serveur ; voir Locataires et Serveurs.

Avec l'API

Les mêmes étapes sont POST /v1/identity/users, PUT /v1/identity/users/{username}/service-account, PUT /v1/identity/permissions et POST /v1/identity/users/{username}/api-tokens, et POST /v1/webhooks pour l'abonnement.

Version 0.1. Dernière modification : 2026-11-14