Single sign on SAML 2.0是否允许向IdP发送SP数据?

Single sign on SAML 2.0是否允许向IdP发送SP数据?,single-sign-on,saml,saml-2.0,Single Sign On,Saml,Saml 2.0,我正在阅读SAML规范,并尝试使用keydape和ShibbolethIdPs,我不知道如何在SP启动的登录中实现一个功能 我有一个服务,传统上,SP状态信息显示在其登录页面上(例如,应用程序版本、状态)。切换到使用IdP登录页面后,我希望在IdP的登录页面上继续显示每个SP的附加信息。我感兴趣的是数据交换,而不是模板化登录页面本身 SAML 2.0规范是否允许向IdP发送任意数据以进行登录?如果没有,还有哪些其他选项可用于使用SP生成的数据装饰IdP登录页面?SP可以发送给IdP的唯一内容是主

我正在阅读SAML规范,并尝试使用
keydape
Shibboleth
IdPs,我不知道如何在SP启动的登录中实现一个功能

我有一个服务,传统上,SP状态信息显示在其登录页面上(例如,应用程序版本、状态)。切换到使用IdP登录页面后,我希望在IdP的登录页面上继续显示每个SP的附加信息。我感兴趣的是数据交换,而不是模板化登录页面本身


SAML 2.0规范是否允许向IdP发送任意数据以进行登录?如果没有,还有哪些其他选项可用于使用SP生成的数据装饰IdP登录页面?

SP可以发送给IdP的唯一内容是
主题
(请参见规范的部分)。

排序。SP到IdP的身份验证请求允许具有“自定义”扩展(扩展父元素),扩展的内容由您决定。根据规范:

[可选]此扩展点包含可选的 协议之间约定的协议消息扩展元素 通信方。不需要任何扩展架构就可以 使用此扩展点,即使提供了扩展点,lax 验证设置不要求扩展到 是有效的。SAML扩展元素必须在 非SAML定义的命名空间

如果您正在编写自己的IdP,那么您当然可以使用扩展并使用它做任何您想做的事情。“标准”(商业/OSS)IDP不知道如何处理您的扩展。这将是一个有趣的测试,看看Shibboleth或keydape库是否解析Extensions元素并提供内容

另一种更标准的可能性是使用RelayState。这是一种符合规范的方式,用于传递某些特定于提供商的状态信息,包括从SP到IdP:

3.1.1使用RelayState一些绑定定义了一种“RelayState”机制,用于保存和传输状态信息。这种机制何时成立 用于传递请求消息,作为SAML的初始步骤 协议,它对协议的选择和使用提出了要求 随后使用绑定来传达响应。也就是说,如果一个SAML 请求消息伴随着RelayState数据,然后是SAML 响应程序必须使用以下绑定返回其SAML协议响应: 还支持RelayState机制,它必须放置准确的 将其随请求接收的数据重新分析到相应的 响应中的RelayState参数

同样,所有IDP或downstack库都将解析RelayState,但它们如何处理它取决于它们对规范的读取。首先,规范要求RelayState为80字节,并通过签名或“其他方式”进行完整性保护。IDP和SP经常忽略这一限制


您想在IdP登录页面上显示哪些特定于SP的信息?

谢谢,听起来很有希望!我们正在从旧的基于单一SP的用户管理/身份验证迁移到外部用户管理/身份验证,不幸的是,在过渡期间,IdP需要更多地了解用户如何访问SP并选择适当的登录流。大多数只是装饰性的,但是能够传递额外的信息将简化迁移。感谢,特别是引用了标准,这使得进一步的调查更容易。