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

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

最佳答案

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

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

应用获得OAuth2凭据后,即可在无需用户干预的情况下运行。用户可以随时在VersionOne内部撤消该应用程序的权限。

使用OAuth2,过程为:


向VersionOne注册您的应用程序,从而创建客户端机密
使用注册中的客户端机密数据配置应用
让应用程序请求权限授予,这会将您发送到VersionOne服务器。
以您希望应用充当的用户身份登录服务器,并接受授权。
如果使用带外流程,则将授权码复制回应用程序。
该应用程序联系VersionOne实例,并将代码交换为永久令牌。
该应用程序可以将令牌用作“ Authorization:Bearer” HTTP标头,以实现对VersionOne端点的访问
如果令牌已过期并且请求返回未授权,则客户端可以尝试刷新令牌并重试,而无需用户干预。


VersionOne community site上有一些文档。

还有VersionOne OAuth2 Examples repository中的一些(进行中)示例

我们还有一个(beta)HTTP proxy,它可以在您应用的服务器上运行,在将请求封装为OAuth2和SSL之后,将请求转发到VersionOne实例。

10-08 16:51