【问题标题】:Java: Access an API that uses SAML authenticationJava:访问使用 SAML 身份验证的 API
【发布时间】:2013-06-12 17:26:30
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    使用OAuth2,流程是:

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

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

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

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

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

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

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

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

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

    以及VersionOne OAuth2 Examples repository 中的一些(正在进行的)示例

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

    【讨论】:

    • 如果实例已升级,则应该升级。我们想知道它是否没有。
    • 实例正在运行VersionOne Ultimate Scrum Winter '13 (13.0.8.76)。所以 OAuth2 不起作用?
    • 不,不会。但您也可以在您的组织方便时升级您的实例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 2019-12-23
    • 2011-08-21
    相关资源
    最近更新 更多