Java:访问使用SAML身份验证的API

时间:2013-06-12 17:26:30

标签: java security single-sign-on saml versionone

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

有办法处理这种情况吗?我可以在请求的标题中设置一些东西来绕过单点登录过程吗?

1 个答案:

答案 0 :(得分:1)

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

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

应用获取OAuth2凭据后,无需用户干预即可运行。用户可以随时撤销VersionOne中的应用程序权限。

使用OAuth2,过程为:

  1. 使用VersionOne注册您的应用,从而创建客户端密钥

  2. 使用注册

  3. 中的客户端机密数据配置应用程序
  4. 让应用请求权限授予,将您发送到VersionOne服务器。

  5. 以您希望应用程序作为用户身份登录服务器,并接受授权。

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

  7. 该应用程序与VersionOne实例联系并交换持久令牌的代码。

  8. 该应用可以将令牌应用为“授权:承载”HTTP标头,以实现对VersionOne端点的访问

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

  10. VersionOne community site上提供了一些文档。

    VersionOne OAuth2 Examples repository

    中的一些(进行中)示例

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