有没有一个很好的SimpleSAMLphp SLO示例?
我们的客户之一是要求我们通过SAML实现单一注销(SLO).他们的SAML服务是身份提供者,而我们的服务提供商.单点登录(SSO)通过使用客户端的IdP验证用户的凭据,然后将用户重定向到另一个平台上的登录页面,并使用令牌直接登录.该平台完全不了解SAML,并且在特别是不共享SimpleSAMLphp会话状态.
注销需要发生两种方式,但是: >如果用户点击我们平台上的注销按钮,需要将其登出我们的网站,并点击IdP的SLO服务. 我可以说服我们的平台将用户重定向到任意页面上,所以我认为第一部分可以通过使用SimpleSAML_Auth_Simple :: getLogoutURL()的页面实现. 这样一个页面也可能在从IdP方面打来的时候起作用,但是SAML规范很复杂,直到我们尝试之前我才确定.但是,config / authsources.php中的SP配置不接受SingleLogoutService参数;由/www/module.php/saml/sp/metadata.php/entityid生成的元数据仍将/www/module.php/saml/sp/saml2-logout.php/entityid列为SingleLogoutService位置.如果该页面是清理SimpleSAMLphp会话所必需的,那就没关系,但是我需要知道如何将用户登录到我们的平台之外所需的额外重定向. 我已经尝试搜索示例,但我所得到的只是API引用.知道如何在没有设置自己的IdP的情况下测试注销也是很好的;有没有像openidp.feide.no那样处理SLO以及SSO的服务?
SLO问题
想象这个方案: Plattform – SP1 —– IdP —– SP2 —–应用程序 Plattform和Apps都与simpleSAMLphp SP连接,它也与IdP组成联合. 您必须找到Platffom,app1和app2的正常注销功能并重写: normal_app_logout() { // code of the normal logout .... .... // new code require_once('<path-to-ssp>/simplesamlphp/lib/_autoload.php'); //load the _autoload.php $auth = new SimpleSAML_Auth_Simple('default-sp'); // or the auth source you using at your SP $auth->logout(); <--- call to the SLO } 这将结束本地会话,SP会话连接到此应用程序,IdP会话和连接到IdP的SP的SP会话,但…其他应用程序会话会发生什么?他们仍然会活跃.你想到了一个积极的电话来结束它,但我认为如果你也覆盖了许多应用程序实现的“is_logged_in()”功能,这是更好的. 您必须覆盖此函数,并且只有在存在的情况下才返回true,并且使用该函数激活有效的SP会话 $auth->isAuthenticated() 最近我在Wordpess SAML plugin上实现了这个功能,查看了code IdP问题 使用Onelogin free trial,您可以在其中注册您的SP并使用其IdP.按照guide to configure your SAML connectors 但是我认为你最好可以尝试自己建立一个IdP. 此外,您可以将实际的simplesamlphp实例设置为SP& IdP,但我认为,如果你正在学习simplesamlphp更好不要混合. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |