我有几个身份提供商需要输入最终用户的一些信息进行身份验证。
当用户点击服务提供商网页中的“使用身份验证...”按钮时,他会使用SAML AuthnRequest重定向到选定的身份提供商。
然后,身份提供商会显示一个网页,他要求提交一个包含某些字段的表单,例如:Firsname,Lastname,Address,然后检查一个人是否真的按照该地址生活。
如果检查成功,则返回SAML响应,状态为Success,Firsname,Lastname,Address作为属性返回。
如果检查失败,则返回SAML响应,其状态为AuthnFailed,具有相同的属性。
我的问题是它是否正确使用SAML?
我应该如何正确配置它以便每次都要求身份验证(不应该建立与身份提供者的会话)?
答案 0 :(得分:3)
您基本上是正确的,它是有效的用例。但是,如果Auth在IDP失败,您将收到状态为“失败”的SAMLResponse消息(可能是“urn:oasis:names:tc:SAML:2.0:status:AuthnFailed”并且未返回任何用户信息(因为Auth失败) )。
在您的SP生成的AuthnRequest中,您可以设置可选的ForceAuthn = true属性。如果它被IDP支持并设置为“”true“,身份提供者必须直接验证演示者,而不是依赖于先前的安全上下文。如果没有提供值,则默认为”false“。但是,如果ForceAuthn和IsPassive都是“真实的”,除非能够满足IsPassive的限制,否则身份提供者不得对发布者进行新的身份验证。“ (来自SAML 2.0核心规范中的第3.4.1节元素)。
HTH - Ian