2011-09-21 100 views
2

我有几个身份提供者需要输入最终用户的一些信息才能进行身份验证。这是SAML的正确用例吗?

当用户点击服务提供商网页中的“Authenticate with ...”按钮时,他将被SAML AuthnRequest重定向到所选身份提供商。

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

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

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

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

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

+1

为什么你想每次都要求认证? –

回答

3

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

在您的SP生成的AuthnRequest中,您可以设置可选的ForceAuthn = true属性,如果IDP支持并且设置为“”true,则身份提供者必​​须直接验证演示者,而不是依赖如果未提供值,默认值为“false”,但如果ForceAuthn和IsPassive均为“true”,则身份提供者不得新鲜认证演示者,除非可以满足IsPassive的约束条件。 “(来自SAML 2.0核心规范中的Sect 3.4.1元素)

HTH - Ian