目前常见的软件产品license授权认证方式一般是:提取服务器物理特征(通常为网卡mac地址、硬盘序列号等信息),再加入授权信息(如许可的cpu数量、内存数量、软件使用期限等),形成授权信息。使用非对称加密方式,通过公钥对授权信息进行加密生成license电子证书文件。将license电子证书文件分发到用户方,由用户将license文件保存到服务器上,供软件产品读取
但是,上述license授权方式,不适用于容器云场景,原因如下:
1.云计算场景一般是服务器集群环境,存在几十台服务器、几十种应用docker容器。使用传统的方式进行license证书文件的拷贝、验证很不方便。
2.在容器云场景,程序运行在docker容器内部。对于docker容器,无法提取到主机的mac地址(实际上可以通过为docker容器增加privilege权限获得物理信息,但这会导致docker容器有权限直接操作宿主机的设备,会存在一定的破坏安全隐患
所以基于的产品该如何做软件授权认证呢?