我有一个需要从托管的versionone实例中提取一些数据的Web项目。 versionone实例使用SAML
身份验证进行单点登录。
单点登录本身使用用户名和密码+一次性密码进行身份验证,因此几乎不可能将这些值硬编码到应用程序中。
有办法处理这种情况吗?我可以在请求的标题中设置一些东西来绕过单点登录过程吗?
答案 0 :(得分:1)
从版本13.1开始,VersionOne支持OAuth2对API端点进行身份验证。 Webserver 流程(托管实例将授权令牌发送到等待的HTTP服务器)和带外流程(托管实例向用户提供代码的位置)支持复制/粘贴到客户端。
这可能更符合您的要求,因为如果没有网络浏览器和用户,SAML过程很难完成。
应用获取OAuth2凭据后,无需用户干预即可运行。用户可以随时撤销VersionOne中的应用程序权限。
使用OAuth2,过程为:
使用VersionOne注册您的应用,从而创建客户端密钥
使用注册
让应用请求权限授予,将您发送到VersionOne服务器。
以您希望应用程序作为用户身份登录服务器,并接受授权。
如果使用带外流程,请将授权码复制回应用。
该应用程序与VersionOne实例联系并交换持久令牌的代码。
该应用可以将令牌应用为“授权:承载”HTTP标头,以实现对VersionOne端点的访问
如果令牌已过期并且请求返回Unauthorized,则客户端可能会尝试刷新令牌并重试,无需用户干预。
VersionOne community site上提供了一些文档。
VersionOne OAuth2 Examples repository
中的一些(进行中)示例我们还有一个(beta)HTTP proxy可以在您的应用服务器上运行,在使用OAuth2和SSL包装后将请求转发到VersionOne实例。