如果您有支持帐户...
这不是那么简单,尤其是使用 C SDK,您将与aceclnt.dll
. 许多 API 调用是异步的,这意味着您必须调用并轮询答案。大多数/所有流量都是加密的,Wireshark 帮助不大。
但是要获取文件,我必须有一个支持帐户(我有一个并用它与 RSA 确认)。
来自 RSA Authentication Agent API 8.1 SP2 for C 发行说明:
C 的 RSA Authentication Agent 应用程序编程接口 (API) 使开发人员能够将 RSA SecurID 集成到自定义或第三方应用程序中。该 API 可在 RSA SecurCare Online 上以 .tar 和 .zip 文件的形式下载,网址为https://knowledge.rsasecurity.com 。
C SDK 的确切 URL 是https://knowledge.rsasecurity.com/scolcms/set.aspx?id=8635
从 Authentication Manager 7.1 开始,有一个新的 Java、Python 和 C# API。使用起来容易得多。我已成功使用 Java 版本进行令牌管理和用户身份验证。
Authentication Manager SDK Python、Java 和 C# SDK 的 URL 是https://knowledge.rsasecurity.com/scolcms/set.aspx?id=8205。
发布这些文件会使我的支持帐户失效,但其他人已经发布了示例代码。它在 Python 中,但 Java 和 C# 对象名称相同。
其他尝试:RADIUS
您的服务器可以是 RADIUS 客户端。将RADIUS 客户端库集成到您的代码中,并将 PIN 和令牌代码发送到 SecurID 服务器。它将进行验证。作为奖励,您将准备好支持其他基于 RADIUS 的身份验证服务。
请记住,您将验证 PIN 和令牌代码。在大多数/所有配置中,PIN 将不同于 Windows 密码。
您必须使用该信息调用 SecurID 服务器,因为无法分辨哪个部分是 pin,哪个部分是令牌代码。令牌代码并不总是 6 位数字,PIN 也可以是数字。或者用户可能还没有设置 PIN,等等。
您也可以支持 RADIUS 中的通用来回机制。它将用于提示用户输入他的下一个令牌代码、更改他的 PIN 等。作为 RADIUS 客户端的服务器将在客户端和服务器之间来回移动信息,直到满意为止。然后,您可以认为身份验证已完成。您可以使用NTRadPing进行测试。