License二次验证机制:管理公共集群上的Sentieon授权资源

简介: License二次验证机制:管理公共集群上的Sentieon授权资源

Sentieon软件License采用联网授权的方式,以下为Sentieon License具体的工作方式如下:

  • 提供绑定本地License服务器的内网IP和Port(用户指定)的Sentieon License授权文件;
  • 在License服务器上启动Sentieon License server的服务;
  • 承载计算任务的服务器通过内部网络连接第一步给出的内网IP和Port拉取授权进行数据计算。

微信图片_20230724164048.png

如果Sentieon的License是部署在公共集群下,有时系统管理者为了加强软件license的管理,需要监控License的使用者信息,以确保软件License没有被未经许可的用户调用。这时,可在启动license服务时,添加一个用户验证规则的脚本,启动License时,服务器会自动执行该脚本来验证用户信息,只有满足脚本规则的用户才能获取到Sentieon软件的License。

Sentieon License二次验证机制

Sentieon软件的license是部署在公共集群下,有时系统管理员为了加强软件license的管理,需要监控license的使用者信息,以确保Sentieon软件license不被其他用户滥用。这时,可在启动license服务时,添加一个用户验证规则的脚本,启动license时,服务器会自动执行该脚本来验证用户信息,只有满足脚本规则的用户才能获取到软件license。方法如下:

1、编写验证脚本,脚本可由python或bash语言编写,同时需确保license服务器有该脚本的可执行权限,这里以python脚本auth_unix.py为例:

#!/usr/bin/env python
import json
import sys
import urllib
secret_key = “My_scret_key”  #设置验证口令

def main(argv):
    inputs = json.load(sys.stdin)
    print >>sys.stderr, inputs
    if inputs.get('mech') != 'unix':
        print >>sys.stderr, "mech not unix"   #验证机器信息,如机器信息返回为unix,则可通过验证
        return -1 
    if inputs.get('data') != secret_key:
        print >>sys.stderr, "Incorrect key"  #验证口令信息,如口令信息返回值与secret_key变量一致,则可通过验证
        return -1
    if not isinstance(inputs.get('groups'), list):
        return -1
    if 'Developers' not in inputs.get('groups'):
        print >>sys.stderr, "Developers not in groups" #验证用户群组信息,如groups返回值中包含Developers,则可通过验证
        return -1
    if 'baduser' == inputs.get('user'):
        print >>sys.stderr, "baduser is running the test" #如当前user信息返回值提示为baduser,则打印提示信息

    return 0
if __name__ == '__main__':
sys.exit(main(sys.argv))

#上面脚本中的口令,机器信息,用户组以及user值请根据实际需求进行设置;如有其它规则需要设置,用户也可将相应规则填写到脚本中

这样用户在提交作业时,计算节点会将当前用户环境设置变量通过以下 JSON 字符串传递给license服务器以进行用户验证,以如下信息为例,如license服务器接收到如下的字符串信息:

{
   
   u'mech': u'METHOD', u'data': u'ASK_ME', u'addr': u'10.1.2.3',\
 u'groups': [u'Domain Users', u'Developers'], u'user': u'goodguy'}

由于其中“METHOD”不等于 auth_unix.py 脚本中“unix”,所以 auth_unix.py 脚本以非零值退出。 license服务器也将打印出以下输出,请求作业将退出并显示“No license”错误消息。
mech not unix

2、完成验证脚本的编写后,可在license服务器上,执行如下命令启动license服务:

sentieon licsrvr --start --auth /path/to/auth_unix.py lic_file.lic

注意:
使用上述方式启动license服务的话,在提交作业到计算节点时,除了需要设置sentieon license服务的环境变量(export SENTIEON_LICENSE=mylicsrvr:8992),还需要添加如下环境变量设置,以定义机器信息,以及口令信息:

export SENTIEON_AUTH_MECH=METHOD
export SENTIEON_AUTH_DATA=ASK_ME

参考:
Sentieon软件中文介介绍:https://www.insvast.com/sentieon
Sentieon软件License服务机制:https://support.sentieon.com/appnotes/license_server/

软件试用:https://www.insvast.com/sentieon

目录
相关文章
|
6月前
|
小程序 JavaScript 程序员
小程序最新标准授权登录流程+逻辑
小程序最新标准授权登录流程+逻辑
104 0
|
4月前
|
安全 算法 数据安全/隐私保护
【工程构建】权限认证机制
【1月更文挑战第13天】【工程构建】权限认证机制
|
12月前
|
安全 数据安全/隐私保护 物联网
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(1)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(1)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(1)
|
12月前
|
存储 安全 物联网
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(2)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(2)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(2)
|
12月前
|
区块链 数据安全/隐私保护 安全
带你读《自主管理身份:分布式数字身份和可验证凭证》——第4章 SSI 记分卡:SSI 的主要功能和优点(2)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第4章 SSI 记分卡:SSI 的主要功能和优点(2)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第4章 SSI 记分卡:SSI 的主要功能和优点(2)
|
12月前
|
安全 数据安全/隐私保护 网络安全
带你读《自主管理身份:分布式数字身份和可验证凭证》——第4章 SSI 记分卡:SSI 的主要功能和优点(3)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第4章 SSI 记分卡:SSI 的主要功能和优点(3)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第4章 SSI 记分卡:SSI 的主要功能和优点(3)
|
12月前
|
数据安全/隐私保护 安全 供应链
带你读《自主管理身份:分布式数字身份和可验证凭证》——第4章 SSI 记分卡:SSI 的主要功能和优点(1)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第4章 SSI 记分卡:SSI 的主要功能和优点(1)
|
12月前
|
网络协议 安全 数据安全/隐私保护
带你读《自主管理身份:分布式数字身份和可验证凭证》——第1章 为何互联网缺少身份层—为何 SSI可以为其提供身份层
带你读《自主管理身份:分布式数字身份和可验证凭证》——第1章 为何互联网缺少身份层—为何 SSI可以为其提供身份层
带你读《自主管理身份:分布式数字身份和可验证凭证》——第1章 为何互联网缺少身份层—为何 SSI可以为其提供身份层
|
调度 计算机视觉 异构计算
可用的SRIO RapidIO (SRIO)验证平台
目前具备SRIO接口的硬件不多,推荐广州星嵌电子科技有限公司开发的DSP+FPGA+RAM开发板: http://web.xines.cn/pingguban/28.html ,也可用于评估EMIF等接口。
可用的SRIO RapidIO (SRIO)验证平台