我使用OneLogin SAML测试连接器作为带有ruby-saml gem和提供的示例程序的模拟IDP。这工作正常。
在我的真实应用中,我们是SP,并且有多个身份提供商,每个提供商都有多个用户需要SSO到我们的应用。
我观察到,在示例应用中,我的AuthnRequest没有在任何地方定义用户的nameID(电子邮件地址),而是以数字ID的形式将其附加到IDP URL。例如https://app.onelogin.com/saml/metadata/5551212
其中app.onelogin.com标识IDP,5551212标识“用户”。我意识到,当onelogin是IDP时,“用户”实际上是一个应用程序ID,但在我们的例子中,我们希望它识别一个真实的用户,而不是一个应用程序。
答案 0 :(得分:0)
AuthnRequest未定义用户的nameID(电子邮件地址) 在任何地方,但它以a的形式附加到IDP URL 数字ID。
这不是真的,数字ID在内部识别IdP,而不是用户。
您不需要将用户信息传递给IdP,您只需向SSO端点发送AuthNRequest,并向用户显示用于显示用户名/密码的表单(如果已存在活动会话)此验证不是必需的。然后SAMLResponse将被发送回SP的Assertion Consumer Service端点。
答案 1 :(得分:0)
正确。查看https://www.samltool.com/base64.php以查看响应属性。