Redirect 我应该如何为SAML WebSO概要文件实现HTTP POST协议绑定?
我已经使用HTTP POST协议绑定,按照Web SSO的SAML配置文件实现了我的服务提供者和标识提供者。但是,如果来自服务提供商的HTTP POST没有绑定到身份提供商上的会话,那么身份提供商将如何提供Redirect 我应该如何为SAML WebSO概要文件实现HTTP POST协议绑定?,redirect,http-post,saml,post-redirect-get,Redirect,Http Post,Saml,Post Redirect Get,我已经使用HTTP POST协议绑定,按照Web SSO的SAML配置文件实现了我的服务提供者和标识提供者。但是,如果来自服务提供商的HTTP POST没有绑定到身份提供商上的会话,那么身份提供商将如何提供,我有点困惑 有人能告诉我怎样才能做到这一点吗 我可以使用的另一种方法是HTTP重定向绑定,但这需要用户代理干预(即浏览器),通常仅将用户代理用作传递中介,以方便请求-响应消息交换。出于这个原因,我宁愿使用HTTPPOST,因为消息交换发生在服务器端,所以用户在屏幕上看不到任何事情 然而,在如
,我有点困惑
有人能告诉我怎样才能做到这一点吗
我可以使用的另一种方法是HTTP重定向绑定,但这需要用户代理干预(即浏览器),通常仅将用户代理用作传递中介,以方便请求-响应消息交换。出于这个原因,我宁愿使用HTTPPOST,因为消息交换发生在服务器端,所以用户在屏幕上看不到任何事情
然而,在如何将会话与请求绑定方面,使用HTTP重定向对我来说更有意义。由于HTTP重定向是通过用户代理实现的,因此对IdP的请求将有一个会话(如果之前经过身份验证)。我不明白的是如何通过HTTP重定向发送
由JST回答
所以我有点困惑,我很想听听其他人在做什么。以下是我的问题:
IsPassive
选项
,如何将服务提供商发出的请求绑定到身份提供商上的会话?换句话说,如果帖子来自技术上属于匿名会话的服务提供商,身份提供商如何知道谁在发出请求
由JST回答更新 抱歉,如果我在上面的解释中不清楚,会造成混乱。我正在实现IdP和SP(通过插件)。IdP是我希望SP(第三方系统)用于身份验证(即Web SSO)的现有应用程序。我现在正在开发一个简单的PoC。SP实际上是一个第三方Spring应用程序,我正在为它开发一个插件来执行SAML操作
我应该提到,我正在尝试使用
IsPassive
选项执行此操作,这意味着用户代理在消息交换过程中不起作用。它只是启动SAML派对的催化剂。对吗?考虑到这一点,考虑到用户在步骤1中是匿名的,SP会向IdP发送什么,以允许IdP确定用户是否已经通过身份验证?由于IsPassive,HTTP POST不会通过用户代理发送
更新 问题1修订:当
IsPassive
选项打开时发送authnrequiset
时,IdP如何解决委托人的问题
直接摘自SAML 2.0概要文件,第15页,第417至419行:
在步骤4中,识别主体
通过某种方式提供的身份
超出此配置文件的范围
我真正想要的是解释如何实现一些方法 约翰
在决定编写自己的SAML IDP/SP实现之前,我可能建议您后退一步,做更多的研究。您似乎将绑定与配置文件、主动请求与请求的Web SSO以及SAML要求用户代理(也称为浏览器)是IDP和SP之间几乎所有消息的承载者这一事实混为一谈。规范中还有大量信息需要实现,以确保您的解决方案实际上是安全的
我建议先从我们的网站开始,然后转到网站,以获取有关这些流量的信息
或者,如果您决定选择最佳产品,您可以查看我们的PingFederate产品,它可以在<一天内为您启用所有SAML IDP/SP用例
希望这有帮助-
Ian与Ian不同,我与生产SAML相关产品的公司没有关联。然而,我会给出一些类似的建议:后退一步,找出您为什么要实现SP或IdP。你真的同时扮演SP和IdP,还是你真的只是其中一个?如果您只是作为IdP实现/执行,那么很可能像PingFederate或类似的产品通过配置提供您所需的一切,而不是要求您编写自定义代码。如果您正在实施SP,那么这样的产品可能会帮助您,但这在很大程度上取决于您将其集成到的系统的特性。我是作为一名开发人员发言的,他已经完成了IdP和SP实现,并且在确定由于我们的特定系统、客户机和需求,定制实现是我们的最佳选择之前评估了一些工具。它已经存在一年多了,有几个客户使用它(包括一些使用各种商业IdP工具的客户)
如果您可以根据SAML配置文件/绑定来识别您的用例,那么您就可以更好地做出购买还是构建的决定。需要记住的是,IdP上的会话和SP上的会话之间没有任何连接。它们彼此不了解,只能通过SAML消息进行通信。SP启动SAML SSO的一般步骤如下: