Aller au contenu

Module de gestion de compte clients

Modules de gestion de comptes clients

Un module de gestion de comptes clients fournit les fonctionnalités nécessaires pour identifier un utilisateur. Il est possible de développer son propre module de gestion de comptes clients compatabile avec StockTicket, et le déclarer dans l'environnement StockTicket.
Pour cela, le module doit implémenter le protocole OpenId Connect et exposer les points d'accès et les interfaces nécessaires pour l'authentification par flux de code d'autorisation.

Pour plus de détails sur le protocole OpenId Connect, vous pouvez consulter la documentation officielle et les spécifications détaillées OpenID Connect specifications.

Le module doit également implémenter 2 méthodes nécessaires à la communication avec StockTicket :

- GetOpenIdServerInfos(OpenIdServerInfosRequestModel request) retournant une valeur de type OpenIdServerInfosResponseModel
- FillUserProperties(FillPropertiesRequestModel request) retournant une valeur de type FillPropertiesResponseModel 

StockTicket utilise ces méthodes pour solliciter le module lorsque celui-ci est impliqué dans la configuration d'un flux de vente.

Par exemple, lors l'appel à l'API /AccountManagement/GetOpenIdServerInfos par une application cliente.

sequenceDiagram

Application cliente-->> API StockTicket: Appel à /AccountManagement/GetOpenIdServerInfos
API StockTicket -->> Module d'identification des clients: Sollicitation du module (GetOpenIdServerInfos)
Module d'identification des clients -->> API StockTicket: réponse du module (OpenIdServerInfosResponseModel)
API StockTicket -->> Application cliente: Transmission des infos de configuration (OpenIdServerInfosResponseModel)


Requête "OpenIdServerInfosRequestModel"

Le modèle OpenIdServerInfosRequestModel représente le modèle de requête utilisé pour obtenir les informations de configuration d’un serveur OpenId Connect auprès d’un module de gestion de comptes clients.

  • ModuleDefinitionId (string)
    Identifiant de la définition du module cible.

  • ModuleInstanceId (string)
    Identifiant de l’instance du module cible.

Réponse "OpenIdServerInfosResponseModel"

Le modèle OpenIdServerInfosResponseModel représente la réponse renvoyée par la méthode GetOpenIdServerInfos, contenant les informations de configuration nécessaires pour l’authentification via OpenId Connect.

  • IsAvailable (bool)
    Indique si la connexion via le serveur OpenId Connect sous-jacent est disponible dans le contexte de l’appelant.
    Si false, tous les autres champs sont ignorés.

  • ClientId (string)
    Identifiant du client à utiliser pour l’authentification.

  • ServerBaseUrl (string)
    URL de base de l’API d’authentification OpenId (doit être en https).

  • AuthorizationEndpoint (string)
    URL relative du endpoint d’autorisation.

  • TokenEndpoint (string)
    URL relative du endpoint de gestion des jetons.

  • EndSessionEndpoint (string?)
    URL relative du endpoint de déconnexion (optionnel).

  • UserInfoEndpoint (string?)
    URL relative du endpoint d’obtention des informations sur l’utilisateur (optionnel).

Ce modèle permet à un client d'obtenir dynamiquement la configuration du serveur OpenId Connect et de lancer un flux d’authentification standard.

FillPropertiesRequestModel

La classe FillPropertiesRequestModel représente le modèle de requête utilisé pour demander le remplissage ou la validation de propriétés utilisateur lors de la finalisation d’un panier ou d’une opération nécessitant des informations complémentaires.

  • ModuleDefinitionId (string)
    Identifiant de la définition du module cible (hérité).

  • ModuleInstanceId (string)
    Identifiant de l’instance du module cible (hérité).

  • UserId (string)
    Identifiant de l’utilisateur dans le système de gestion de comptes.

  • JsonSchema (Json)
    Schéma JSON décrivant les propriétés attendues (structure des données à fournir ou compléter).

  • Properties (Json)
    Objet JSON contenant les propriétés actuellement renseignées (valeurs déjà saisies ou à valider).

Ce modèle permet de transmettre à un module les informations nécessaires pour compléter les propriétés d’un utilisateur, selon un schéma dynamique.

FillPropertiesResponseModel

La classe FillPropertiesResponseModel représente le modèle de réponse utilisé lors du remplissage ou de la validation des propriétés d’un utilisateur.

  • JsonPatchDocument (JsonPatchDocument?)
    Document JSON Patch contenant les modifications à appliquer aux propriétés utilisateur.
    Ce document permet de décrire, sous forme d’opérations (add, replace, remove…), les changements à effectuer sur les propriétés transmises dans la requête.

Ce modèle permet de retourner dynamiquement les modifications à appliquer aux propriétés utilisateur, facilitant ainsi la synchronisation ou la validation côté client.