使用 WSO2 身份服务器的 SAML2.0 SSO?

SAML2.0 SSO with the WSO2 Identity Server?

我需要将 WSO2 身份服务器与 SAML 一起用于我的内部应用程序的 SSO。我遇到了这个美丽的 SAML2.0 SSO with the WSO2 Identity Server article

但我对这篇文章有两个问题,我不确定如何运作

1) 在第 5 步中说“现在用户再次被重定向到 IDP。现在 IDP 意识到这个用户已经通过身份验证因此它会发出 不提示任何身份验证挑战的 SAML 断言。”

IDP 如何意识到用户已经通过身份验证?

据我了解,必须基于会话来完成。这是否意味着当身份验证请求从服务提供商 1 发送到身份服务器(SP1 通过浏览器将请求重定向到 IS)时,IS 将首先验证凭据,如果成功,则将用户对象保持在会话状态下。

现在,当第二个身份验证请求通过 SP2 发送到 IS 时,将发送相同的会话 ID(假设请求是从同一浏览器的另一个发送的),IS 已经找到与此会话关联的用户对象,所以请相信他。这个理解对吗?

2)在步骤 2 中说“现在 SP1 可以验证 IDP 发出的 SAML 断言并让用户登录。” 具体是什么field/value(在IP发送的SAML响应下),SP1会验证?

3) 存储用户凭据的位置。是IS端还是Service provider端?

解释一下它是如何与 WSO2IS 5.0.0 一起工作的

  1. 当用户通过提供凭据向 IDP 进行身份验证时。 WSO2IS 为用户创建一个经过身份验证的会话,并且 cookie 与用户浏览器中设置的经过身份验证的会话相关联。 Cookie 名称将为 commonAuthId。使用 SSO 通过 WSO2IS 身份验证后,您还可以在浏览器中找到它。然后用户尝试使用相同的浏览器访问另一个 SP,cookie 将被发送到 WSO2IS 并且它标识存在与 cookie 相关的经过身份验证的会话。

  2. 通常,SP 会验证 SAML2 响应和断言。您可以执行多项验证。但最常见的是

    • SAML2 响应和 SAML2 断言的签名

    • 有效期 SAML2 响应和 SAML2 断言。

    • SAML2 断言中的受众限制验证

    • 目的地 url 和收件人值

通常用户名将从主题标识符值中提取。属性语句中也可能有属性,SP 可以检索这些属性并对它们进行一些验证。

  1. 最终用户已通过 IDP 的身份验证。因此凭据必须在 IDP 中而不是在 SP 中。这是SSO的想法之一。在一个地方维护凭据。 WSO2IS 默认附带基于 LDAP 的用户存储。因此,最终用户凭据存储在 LDAP 服务器中。但是 WSO2IS 可以与您喜欢的任何现有用户存储一起部署