云市场接入keygen自定义license

更新时间:2025-02-28 02:19:12

背景介绍

在云计算的迅猛发展下,越来越多的企业和个人开始将应用程序和数据迁移到云平台上,然而,随之而来的是对软件许可管理的需求。BYOL(Bring Your Own License),即“自带许可证”,作为一种灵活的授权模式,允许用户在使用云服务时,利用自己已购买的软件许可证,而不是被迫依赖于云服务提供商提供的许可证。这种方式不仅降低了成本,还提供了更高的灵活性和资源利用率。例如,一家企业已经在本地环境中购买了数据库软件的许可证。当他们决定将数据库迁移到云平台时,他们可以选择使用原本的许可证。这不仅节省了开支,还避免了对新许可证的依赖。

计算巢作为软件上云一站式平台,提供全面的解决方案帮助ISV将软件部署至云端。本文基于开源许可证管理平台Keygen,介绍如何在BYOL场景下实现计算巢的对接,涵盖许可证创建、验证及管理等关键流程,帮助用户顺利完成BYOL场景的云上部署。

问题描述

BYOL(自带许可证)场景中,服务商需为终端用户提供许可证管理能力,但多数中小ISV缺乏自研License系统的技术能力,难以实现许可证签发、验证及生命周期管理,导致BYOL模式落地困难。

阿里云计算巢针对ISVBYOL模式下的许可证管理困境,提出基于KeyGenLicense解决方案:

  • 免开发License平台:基于开源软件KeyGen,提供开箱即用的License管理服务,支持License创建、验证、更新等内容;

  • 快速部署服务端:计算巢提供KeyGen服务,用户可一键部署,自动完成云资源创建与KeyGen软件的安装;

  • 示例代码快速上手:文末提供示例代码,方便服务商快速集成KeyGen到自己的软件中。

操作步骤

本示例通过计算巢一方服务 KeyGen社区版,一键部署KeyGen服务端,并通过示例代码,介绍如何配置、运行代码以实现许可证的创建、过期、删除等流程。整体流程如下:

  1. 创建KeyGen社区版服务(服务端)

    1. 进入 部署链接部署文档),按照参数填写,确认参数无误后点击立即创建。请牢记创建过程中 软件配置-密码设置 中设置的密码。

      image

    2. 待服务实例状态变为已部署,服务端即部署完成。

      image.png

  2. 配置本地环境

    进入服务实例详情,获取hosts参数,完成hosts配置:

    1. 当应用部署完成,服务实例详情处会展示hosts地址:

      image

    2. 将此地址配置到hosts(注WindowsmacOS不同),如下图为macOS,在终端中输入:image.png

      sudo vim /etc/hosts
    3. hosts地址粘贴到此处,输入:wq 保存退出,本地即配置完成。image

  3. 示例代码配置与使用(客户端)

    前期配置:

    1. 进入GitHub仓库下载示例代码,本地需安装Python。

    2. 在终端中进入示例代码-app文件,输入命令获取KeygenPolicyIdKeygenToken,命令格式为

      python app.py [--username USERNAME] [--password PASSWORD] [--product_name PRODUCT_NAME] [--policy_name POLICY_NAME]

      其中账号密码为计算巢服务创建过程中输入的账号密码(如下图账号为admin@example.com,密码为Abc123456),产品名称和策略名称可自行命名。命令截图:

      image.png

      命令最后将会返回KeygenPolicyIdKeygenToken:

      image.png

      将此参数填入conf - env.properties文件中,保存退出。

    如何使用:

    1. 执行许可证管理操作,在终端中运行命令启动流程:

      python keygen.py

      系统将自动执行预置的6个关键动作:

      • 创建许可证:生成唯一License ID;

      • 获取许可证详情:返回授权策略、有效期等元数据;

      • 合法性校验(有效状态):返回 Code VALID及当前剩余有效期;

      • 设置许可证过期:模拟许可证到期状态变更(可用于测试自动停服逻辑);

      • 合法性校验(过期状态):返回Code EXPIRED ;

      • 删除许可证

    2. 查看执行结果,返回结果如下:

      image.png

      终端输出中,示例代码中每个步骤的输入、输出均有日志展示。

    3. 对接开发/生产环境:

      在实际开发/生产环境中,ISV可修改示例代码并将其集成至自身软件,实现完整的许可证管理功能:

      • 颁发许可证:针对每个用户,服务商将为其颁发唯一许可证,获取唯一许可证ID,服务商需记录此ID,用于后续校验、延期、过期等操作;

      • 扩展校验逻辑:在校验许可证函数中添加自定义规则,如许可证过期停止软件服务。

总结

计算巢提供了基于开源软件KeyGenLicense服务端,通过计算巢可一键部署License服务端,快速帮助中小ISV搭建License管理平台。服务商通过简单配置即可连接上KeyGen服务端。同时,本文也提供Licenses生命周期管理的基本调用方法,服务商可将其集成至自身软件,实现完整的许可证管理功能。由于KeyGen是一个第三方许可证管理平台,计算巢集成该方案的流程适用于任何第三方许可证管理平台,若服务商已有自己的第三方License管理平台,同样可用本文方法接入。

  • 本页导读 (1)
  • 背景介绍
  • 问题描述
  • 操作步骤
  • 总结
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等