OpenAM,OpenId,REST API,内部应用程序:我如何连接它们?

我无法将所有这一切捆绑在一起。 部分原因是缺乏理解,部分原因是我之前没有使用OpenAM。

我试图实现单一login。 这里是球员。

  1. OpenAm。 https://www.forgerock.com/en-us/products/access-management/
  2. 可以使用自己的用户名/密码数据库的第三方专有应用程序,或者对SAML或OpenId提供程序进行身份validation。
  3. 用angularjs或.net webforms编写的几个内部应用程序。
  4. 用nodejs编写的内部REST API。

我需要能够在openam上有一个用户login/注册,然后他们不login任何其他应用程序。 我们在网上看到这个,所以用例是非常正常的,但是我以前从来没有真正实现它。

看看我正在尝试使用下面的图片作为初学者。

在这里输入图像说明

这就是我所st what的:

为了SSO的目的,OpenAM似乎将经过身份validation的用户信息存储在cookie中。 如果我的专有应用程序只能通过openid或saml进行身份validation,那么我的应用程序如何获取此cookie并使用它? 它不能通过/ json / *端点来使用openam API。

有了内部应用程序,我假设我可以传递cookie,适当的方可以validationcookie的会话信息或令牌,就是这样。 这是正确的,还是我看着这个错误?

我可以让用户login到OpenAmlogin页面,然后使用/ oauth2 / *端点validation用户的请求吗? 我可以看到这个工作更好,但我不确定这是否应该发生。

基本上,我觉得上个星期我试图把这个弄清楚。 我需要一些帮助才能在这里find一些方向。 正如我上面所说,这是一个很好的部分是新的。 我已经使用令牌完成了前端 – >restapi->数据库,但是这个SSO场景给了我一个真正的头痛。

任何帮助,将不胜感激。

在我看来,你错过了SAML SSO的“redirect”方面。 我将尽力解释它是如何工作的:

步骤1:

当一个用户发送一个请求到你的一个内部应用程序(从这里称为服务提供者,SP)时, SP检测到这是一个未经身份validation的请求,并将浏览器redirect到OpenAM服务器(称之为I牙医,IdP,从这里)。

第2步:

IdP分析redirect请求,并期望find“SAML authnResponse”,这是由SPredirect请求中添加的编码的XML元数据。 它发现你的SP想要authentication一个用户。 IdP将通过显示login页面来响应请求。 在这里用户可以对IdP进行身份validation。 用户成功通过IdP身份validation后,会将其redirect回SP ,并向请求添加“SAML authnResponse”。

第3步:

SP将分析这个“SAML authnResponse”,这也是XML元数据的一种forms。 如果签名的确认是好的,找出哪个用户成功通过身份validation,为他创build一个会话并将他redirect到他最初尝试访问的资源。

备注1:

步骤2中 ,如果用户之前已经对IdP进行了身份validation,他将拥有一个到IdP的活动会话。 IdP不会要求他再次login,而是立即通过有效的“SAML authnResponse”将他redirect回SP 。 通过这种方式,用户几乎不会注意到所有这些redirect,而且看起来他可以“无缝地”访问SP

备注2:

所以,不要过多担心cookie,IdP会使用这些cookie来识别已经过身份validation的用户会话等,但是您只应该打扰redirect并分析SAML响应和请求。 这有道理吗?

备注3:

用户的浏览器(GET 302或JS POST)将被redirect的方式取决于您select的“SAML Profile”。