2

我有几个身份提供者需要输入来自最终用户的一些信息集以进行身份​​验证。

当用户单击服务提供商网页中的“使用...进行身份验证”按钮时,他会使用 SAML AuthnRequest 重定向到所选的身份提供商。

然后身份提供者显示一个网页,他要求提交一个包含一些字段的表单,例如:名字、姓氏、地址,然后检查一个人是否真的住在那个地址。

如果检查成功,则返回 SAML 响应,状态为 Success,并将 Firsname、Lastname、Address 作为属性返回。

如果检查失败,则返回 SAML 响应,其状态 AuthnFailed 具有相同的属性。

我的问题是它是否正确使用 SAML?

我应该如何正确配置它以每次都要求身份验证(不应建立与身份提供者的会话)?

4

1 回答 1

3

您基本上是正确的,它是有效的用例。但是,如果身份验证在 IDP 失败,您将收到一条带有“失败”状态的 SAMLResponse 消息(可能是“urn:oasis:names:tc:SAML:2.0:status:AuthnFailed”并且不返回任何用户信息(因为身份验证失败) )。

在您的 SP 生成的 AuthnRequest 中,您可以设置可选的 ForceAuthn=true 属性。如果 IDP 支持并设置为 ""true",则身份提供者必​​须直接对演示者进行身份验证,而不是依赖先前的安全上下文。如果未提供值,则默认值为 "false"。但是,如果ForceAuthn 和 IsPassive 都是“真”,除非可以满足 IsPassive 的约束,否则身份提供者不得重新对演示者进行身份验证。” (来自 SAML 2.0 核心规范中的第 3.4.1 节元素)。

HTH-伊恩

于 2011-09-21T14:46:42.433 回答