Architecture & gouvernance
Gestion des licences logicielles : pourquoi nous l’avons intégrée à l’architecture d’ORKA
Dans une solution professionnelle auto-hébergée, la gestion des licences ne peut pas être réduite à la simple vérification d’une clé.
Elle doit identifier chaque installation, protéger les informations sensibles, contrôler les droits d’usage et préparer l’accès au support et aux mises à jour, sans fragiliser l’exploitation du client.
Introduction
Pourquoi intégrer la gestion des licences à l’architecture ?
La gestion des licences logicielles est souvent perçue comme une simple étape commerciale : l’utilisateur saisit une clé, le logiciel la vérifie et l’accès au produit est autorisé.
Cette vision est pourtant très réductrice, notamment lorsqu’il s’agit d’une solution professionnelle auto-hébergée sur l’infrastructure du client.
Dans ce contexte, mettre en place une gestion des licences ne consiste pas uniquement à empêcher la copie ou l’utilisation non autorisée d’un logiciel.
Il faut pouvoir identifier chaque installation, contrôler les activations, protéger les clés, distinguer le droit d’usage du contrat de support et préparer l’accès aux mises à jour.
Le tout sans créer une dépendance permanente susceptible de fragiliser l’exploitation du client.
La question centrale
Comment protéger le produit et son modèle économique sans transformer le mécanisme de licence en contrainte opérationnelle pour le client ?
Cette problématique s’est naturellement présentée lors du développement d’ ORKA, notre solution de pilotage opérationnel de la cybersécurité, de la gouvernance du système d’information et de la gestion des risques.
ORKA est destiné aux DSI, RSSI, PMO, responsables GRC et équipes chargées de suivre les incidents, les risques, les audits, les alertes de sécurité et les plans d’action.
La solution peut être installée directement dans l’environnement du client. Cette liberté de déploiement impose cependant de disposer d’un mécanisme fiable pour relier un droit d’utilisation à une instance donnée.
Nous avons donc choisi de considérer la gestion des licences comme un véritable composant de l’architecture d’ORKA, et non comme une fonction ajoutée au dernier moment avant la commercialisation.
Le besoin
Une licence logicielle est bien plus qu’une clé
Une clé de licence n’a de valeur que si elle est reliée à un contexte compréhensible et contrôlable.
Dans une application hébergée par l’éditeur, ce contexte reste relativement simple à maîtriser. L’éditeur contrôle l’infrastructure, les comptes clients, l’accès au service et les mises à jour déployées.
Dans une solution auto-hébergée, la situation est différente.
Le client dispose de sa propre installation, de son propre domaine, de sa base de données et de son environnement d’exploitation. Il faut donc établir une relation durable entre plusieurs éléments.
Le produit acquis par le client.
La clé de licence qui matérialise le droit d’utilisation.
L’instance ORKA effectivement installée.
Le domaine ou l’environnement sur lequel elle est exploitée.
Les droits associés au support et aux mises à jour.
Le véritable enjeu
La licence doit permettre d’identifier une installation et ses droits sans devenir un point unique de défaillance pour l’application.
Conception
Les principes retenus dans ORKA
L’architecture mise en place repose sur quelques principes simples. Ils permettent de conserver une logique lisible, sécurisée et suffisamment souple pour évoluer avec le produit.
Ces principes ne concernent pas uniquement la protection commerciale du produit.
Ils répondent également à des enjeux de cybersécurité, de continuité d’activité, de gouvernance et de maîtrise du cycle de vie logiciel.
Identification
Donner une identité durable à chaque instance
Une licence ne doit pas être attachée uniquement à un navigateur, à une adresse IP ou à une donnée pouvant changer fréquemment.
Lors de son installation, ORKA génère donc une identité propre à l’instance.
Cette identité est enregistrée localement et accompagne l’installation pendant toute sa durée de vie.
ORKA génère un identifiant unique lors de l’installation.
L’instance conserve le domaine actuellement utilisé pour son exploitation.
La date d’installation et les informations utiles sont conservées localement.
Le droit d’utilisation est associé à cette instance et à son environnement.
Cette approche permet de distinguer clairement plusieurs installations appartenant éventuellement au même client.
Elle évite également de faire reposer toute l’identification sur une information technique instable.
Une identité contrôlée côté serveur
L’identifiant de l’instance n’est pas choisi par le navigateur. Il est créé, stocké et utilisé par le backend d’ORKA.
Sécurité
Séparer clairement les responsabilités
L’un des choix structurants consiste à ne jamais confier au navigateur les décisions métier liées à la licence.
L’interface d’administration permet à l’utilisateur de saisir une clé, de demander une activation, de lancer une validation ou de désactiver une licence.
Elle ne détermine cependant ni le produit concerné, ni le domaine utilisé, ni l’identité de l’instance, ni les données transmises au composant de gestion des licences.
Recueille la demande de l’administrateur.
Applique les règles métier et constitue la demande.
Active, valide ou désactive le droit associé.
Le backend déduit lui-même le produit correspondant au type de licence, récupère l’identité de l’instance et utilise le domaine réellement configuré.
Cette séparation réduit les possibilités de manipulation depuis le navigateur et centralise les règles dans une couche maîtrisée.
Principe appliqué
Le frontend exprime une intention. Le backend vérifie, complète et exécute la décision.
Secrets
Protéger les clés de licence
Une clé de licence est une information sensible. Elle ne doit pas apparaître dans les journaux du navigateur, dans les réponses de l’API ou dans le code de l’interface.
Dans ORKA, la clé complète est utilisée uniquement par le backend. Elle est ensuite chiffrée avant d’être enregistrée dans la base de données.
Lorsqu’un administrateur consulte l’état de la licence, seule une version masquée est transmise à l’interface.
La clé complète n’est jamais renvoyée au frontend.
La valeur stockée localement est chiffrée.
L’interface affiche uniquement une représentation masquée.
Les opérations sensibles restent exécutées côté serveur.
Masquer ne signifie pas protéger
Une clé masquée dans l’interface doit également être chiffrée dans le stockage et exclue des réponses techniques inutiles.
Confiance
Distinguer l’état local de l’autorité de validation
ORKA doit pouvoir afficher rapidement l’état de la licence sans interroger systématiquement un service distant à chaque ouverture de page.
L’application conserve donc localement les informations utiles à son fonctionnement.
Cet état local n’est toutefois pas l’autorité définitive. Il représente la dernière situation connue par l’application.
Lorsqu’une validation est demandée, le backend interroge le composant externe de gestion des licences, récupère la réponse et actualise les informations enregistrées localement.
Deux rôles complémentaires
L’état local assure la rapidité et la continuité de fonctionnement. La validation distante conserve son rôle d’autorité.
Modèle produit
Séparer le droit d’usage, le support et les mises à jour
L’achat d’un logiciel et la souscription à un service de support ne répondent pas exactement au même besoin.
Nous avons donc choisi de représenter séparément ces deux droits dans l’architecture d’ORKA.
Matérialise le droit d’installer et d’utiliser la solution.
Matérialise l’accès aux services et versions futures.
Permet de contrôler les droits selon leur propre échéance.
Cette distinction permet notamment au client d’acquérir le support ultérieurement, de le renouveler indépendamment ou de continuer à utiliser la version déjà acquise selon les conditions prévues.
Elle évite également de confondre une licence perpétuelle d’utilisation avec un service annuel de maintenance.
Une règle plus lisible
Le droit d’utiliser le produit et le droit de bénéficier des services associés sont suivis séparément.
Résilience
Ne pas fragiliser la continuité d’activité
Un mécanisme de licence ne doit pas devenir plus critique que l’application qu’il protège.
Une indisponibilité temporaire d’Internet, un problème de DNS ou l’interruption momentanée d’un service distant ne doit pas provoquer l’arrêt brutal d’un outil utilisé pour piloter la cybersécurité, les risques ou le système d’information.
Nous avons donc souhaité éviter une logique punitive fondée sur un contrôle distant permanent.
Protéger sans interrompre brutalement
La protection du modèle économique de l’éditeur doit rester compatible avec les exigences de disponibilité et de continuité d’activité du client.
L’état local de la licence permet à ORKA de continuer à fonctionner sur la base de la dernière validation connue.
Les contrôles peuvent être réalisés lors d’actions explicites, à intervalles maîtrisés ou lorsqu’un droit particulier doit être vérifié.
Cette approche laisse également la possibilité d’appliquer des périodes de tolérance, des avertissements progressifs ou des restrictions ciblées plutôt qu’un blocage immédiat de toute la plateforme.
Évolution
Préparer le cycle de vie complet du produit
La gestion des licences ne s’arrête pas à l’activation initiale.
Elle constitue la fondation d’un dispositif plus large permettant d’accompagner le produit pendant toute sa durée de vie.
Associer une licence valide à une instance ORKA.
Actualiser l’état de la licence et des services associés.
Identifier les nouvelles versions compatibles avec les droits du client.
Contrôler l’accès aux archives réservées aux licences éligibles.
Informer l’administrateur de l’état et de l’échéance des services souscrits.
Cette architecture permettra progressivement de vérifier la disponibilité d’une nouvelle version, de contrôler les droits de téléchargement et de déterminer si le support et les mises à jour sont toujours actifs.
Une fondation durable
La gestion des licences devient un élément du cycle de vie complet d’ORKA.
Elle relie l’installation, les droits d’usage, les services souscrits et l’accès aux évolutions du produit.
Conclusion
La licence comme composant de gouvernance du produit
La mise en place de la gestion des licences dans ORKA nous a confirmé qu’une licence logicielle ne peut pas être réduite à une clé enregistrée dans une table et contrôlée au démarrage de l’application.
Dans une solution auto-hébergée, elle doit établir une relation cohérente entre plusieurs éléments : le produit acquis, le client, l’instance installée, son environnement d’exécution, les droits d’usage, le support et l’accès aux futures mises à jour.
Cette relation doit être construite sans exposer inutilement les données sensibles et sans transférer les décisions métier vers le navigateur.
Dans ORKA, l’interface permet à l’administrateur d’agir, mais seul le backend détermine le produit concerné, l’identité de l’instance, le domaine d’activation et les informations transmises au composant externe de gestion des licences.
La clé reste chiffrée côté serveur et n’est jamais renvoyée en clair à l’interface.
L’état local permet à l’application de fonctionner efficacement, tandis que la validation distante conserve son rôle d’autorité. Cette séparation rend l’ensemble plus lisible, plus sécurisé et plus facile à faire évoluer.
Nous avons également souhaité éviter une logique punitive. Un incident réseau ou l’indisponibilité temporaire d’un service distant ne doit pas provoquer l’arrêt brutal d’un outil utilisé pour piloter la cybersécurité, les risques ou le système d’information.
La protection du modèle économique de l’éditeur doit rester compatible avec les exigences de continuité d’activité du client.
C’est précisément à cette intersection entre gouvernance, cybersécurité et pilotage que se positionne ORKA.
La gestion des licences ne consiste donc pas seulement à protéger un logiciel.
Bien conçue, elle organise durablement la relation entre le produit, son éditeur, son instance et son utilisateur.
Le principe retenu
Protéger le produit sans fragiliser son exploitation.
Une architecture de licence efficace doit rester sécurisée, compréhensible, résiliente et compatible avec les contraintes opérationnelles du client.