0

我正在寻找一些方法(最好是通过 Java 代码),使我能够通过 SSO 登录从服务提供商 (SP) 的 IDP(即 ForgeRock 的 OpenAM)获取 SAML 断言。

SP 已被配置为通过 Web 浏览器与 IDP 交互(例如 vCloud Director --> OpenAM,反之亦然)(即,在调用 vCloud Director 登录页面时,用户将自动重定向到 OpenAM 登录页面)。但是,此过程仅适用于浏览器(提供重定向),而不适用于浏览器之外。

我似乎找不到任何方法来执行 SSO 登录(通过使用来自 IDP 的 SAML 断言进行身份验证)。到目前为止,我遇到了十几个引用,包括来自 OpenAM SSO 的 AssertionIDRequestUtil.sendAssertionIDRequestURI 函数,但我仍然不确定在哪里可以检索 AssertionId 和 SAML EntityId 参数。

还有其他获取 SAML 断言的方法吗?或者也许其他方式来执行 SSO 登录?

4

1 回答 1

0

我认为实现这一目标的最简单方法是:

  1. 通过 REST 或 ClientSDK 执行身份验证
  2. 使用 Java HTTP 客户端启动 IdP 发起的 SAML 身份验证流程 (/openam/idpssoinit?metaAlias=/idp&spEntityID=entityID)。当您发送此请求时,您需要确保:
    • 会话 ID 作为 iPlanetDirectoryPro cookie 是请求的一部分,
    • 不会执行会话升级(您在 IdP 的 authcontext 设置将具有低于或等于第一步创建会话的级别的 authLevel)
于 2012-10-25T05:06:25.557 回答