1

我想使用 CoSign api 将 CoSign 签名解决方案添加到我公司的自定义 Oracle 表单系统中。为了提高安全性并遵守当地法规,我想使用 OTP(一次性密码)。

所需功能:

  1. 用户登录到我的自定义应用程序
  2. 一个包含许多 pdf (50-100) 文件列表的自定义表单打开,旁边有一个复选框
  3. 如果他愿意,用户可以打开每个 pdf。通常他不会,但这是他的决定
  4. 用户选中 pdf 文件列表旁边的所有复选框并按下签名按钮
  5. 自定义弹出窗口询问用户他的 CoSign 用户名/密码和 OTP
  6. 使用 CoSign api 对用户进行身份验证。首先,针对用户名和密码向 CoSign 进行 api 调用。之后另一个关于 OTP 的 api 调用被调用到 Radius 服务器。
  7. 如果身份验证成功,则立即签署所有 50-100 个 pdf,而无需再次要求用户输入 username-password-otp。
  8. 如果用户想要签署另一组 50-100 个 pdf,那么如果再次要求他提供他的凭据就可以了。

以上是否可能或用户必须在此批量签名自定义应用程序中向应用程序提供其凭据 50-100 次?

CoSign api是否支持上述流程?会不会有关于 otp 或会话生命周期的持续时间问题?

4

1 回答 1

2

你有两个我能想到的选择:

  1. 您的 OTP 令牌是软件令牌,并且具有不会提示用户输入的GetOTP() API 。
  2. 一次性获取 OTP 并在 OTP 有效期内 并行同时)签署尽可能多的文件。

细节

1. 使用 GetOTP() API 的顺序批处理

从(软件)令牌获得 OTP 后,您必须立即使用 SAPI 本地Sign Ex* 函数,该函数也接收 OTP 作为参数。

您也可以使用从批处理或 power-shell 脚本调用的 ARFileSign 实用程序来实现它。此外,这里必须预先获取 OTP。

2.并发批处理

执行一次(每个进程)

SAPICrypt SAPI = new SAPICryptClass();
SAPI.Init();

然后为每个文档生成一个不同的线程来执行:

SAPI.HandleAcquire(out SesHandle);
rc = SAPI.Logon(SesHandle, User, Domain, Password);
//create signature field code comes here
SAPI.SignatureFieldSignEx(SesHandle, sf, 0, OTP);

可以同时签署的文件的最大数量应通过实验确定。从 10 开始,慢慢增加金额,直到看到有些没有签名。这取决于您的客户端计算机的强度(多少核心、多少内存、与 CoSign 服务器的链接质量等)以及 OTP 有效期的持续时间。

在确定可以并发签名的数量后,为了安全起见,可以实现“签名失败收集器”:第一次失败将停止并行执行;然后序列“fail to be signed collector”将插入所有计划签署但未签署的文件到下一轮签署。

希望能帮助到你,

Aviv Simionovici 销售工程师和项目经理,DocuSign

于 2015-05-10T18:45:44.610 回答