如何从OpenAM获取SAML断言(使用Java)?

时间:2012-10-24 08:06:34

标签: single-sign-on saml assertion openam vcloud-director-rest-api

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

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

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

是否有其他方法可以获得SAML断言?或者可能有其他方式来执行SSO登录?

1 个答案:

答案 0 :(得分:0)

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

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