我需要将WSO2 Identity Server与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声明,并让用户登录。”
SP1将验证特定的字段/值(在IP发送的SAML响应下)是什么?
3)存储用户凭据的位置。是在IS方面还是在服务提供商方面?
最佳答案
只需说明一下它如何与WSO2IS 5.0.0一起使用
通过提供凭据将用户认证为IDP时。 WSO2IS为用户创建一个经过身份验证的会话,并且cookie与设置在用户浏览器中的经过身份验证的会话相关联。 Cookie名称为commonAuthId
。使用SSO对WSO2IS进行身份验证后,您也可以在浏览器中找到它。然后,用户尝试使用相同的浏览器访问另一个SP,cookie将发送到WSO2IS,并且它标识存在与该cookie相关的已认证会话。
通常,SP会验证SAML2响应和断言。您可以执行几种验证。但最常见的是
SAML2响应和SAML2断言的签名
有效期SAML2响应和SAML2声明。
SAML2断言中的受众限制验证
目标网址和收件人值
通常,用户名将从主题标识符值中提取。此外,attribute语句中可能还有一些属性,SP可以检索这些属性并对其进行一些验证。
最终用户已通过IDP身份验证。因此,凭据必须在IDP中,而不能在SP中。这是SSO的思想之一。将凭证保存在一个地方。默认情况下,WSO2IS随基于LDAP的用户存储一起提供。因此,最终用户凭据存储在LDAP服务器中。但是,WSO2IS可以与您喜欢的任何现有用户存储一起部署