0

我有一个 Web 项目需要从托管的versionone实例中提取一些数据。versionone 实例使用SAML身份验证进行单点登录。单点登录本身使用用户名和 pin+一次性密码进行身份验证,因此几乎不可能将这些值硬编码到应用程序中。

有没有办法处理这种情况?我可以在请求的标头中设置一些内容以绕过单点登录过程吗?

4

1 回答 1

1

从 13.1 版开始,VersionOne 支持OAuth2对 API 端点进行身份验证。支持Web服务器流(托管实例将身份验证令牌发布到等待的 HTTP 服务器)和外流(托管实例为用户提供复制/粘贴到客户端的代码)。

这可能更符合您的要求,因为如果没有 Web 浏览器和用户在场,很难完成 SAML 过程。

应用程序获取 OAuth2 凭据后,无需用户干预即可运行。在任何时候,用户都可以在 VersionOne 内撤销应用程序的权限。

使用 OAuth2,过程是:

  1. 向 VersionOne 注册您的应用程序,从而创建客户端密码

  2. 使用注册中的客户端机密数据配置应用程序

  3. 让应用程序请求权限授予,这会将您发送到 VersionOne 服务器。

  4. 以您希望应用程序充当的用户身份登录服务器,并接受授权。

  5. 如果使用带外流,请将授权代码复制回应用程序。

  6. 应用程序联系 VersionOne 实例并交换代码以获得持久令牌。

  7. 应用程序可以将令牌作为“Authorization: Bearer” HTTP 标头应用,以实现对 VersionOne 端点的访问

  8. 如果令牌已过期并且请求返回未授权,则客户端可能会尝试刷新令牌并重试,而无需用户干预。

VersionOne 社区站点上提供了一些文档。

以及VersionOne OAuth2 示例存储库中的一些(正在进行的)示例

我们还有一个(测试版)HTTP 代理,它可以在您的应用服务器上运行,在使用 OAuth2 和 SSL 包装请求后将请求转发到 VersionOne 实例。

于 2013-06-12T18:37:24.210 回答