当前位置: 首页 > 知识库问答 >
问题:

单点登录:SimpleSAMLPhp服务提供商实现

岳凯康
2023-03-14

我正在使用SimpleSAMLPhp服务提供商实现SSO。

我提供了我的元数据远程Shibboleth身份提供者,并提供了一个测试帐户。

当用户访问我的SP上的特定页面时,他们会被重定向到IdP、登录,并使用IdP提供的一组属性重定向回我的网站。这部分工作正常。

这部分我正在努力。

如果用户通过不同的服务提供商使用相同的IdP进行身份验证,然后访问我的页面,我怎么知道他们已经通过身份验证?目前我被要求再次登录。

是否存在允许我执行此操作的配置值?还是我使用了错误的方法?这就是我正在做的。

$as = new SimpleSAML_Auth_Simple({REMOTE_AUTHSOURCE});
$as->requireAuth(); // this redirects to remote IdP login
$attributes = $as->getAttributes();

谢谢

共有1个答案

艾泰
2023-03-14

需要考虑两个单独的身份验证会话。一个会话在你的应用程序中,另一个在IdP中。requireAuth方法可以判断用户是否已经在应用程序中拥有经过身份验证的会话,并且在这种情况下会立即返回。您无法判断浏览器是否在IdP上有会话。您只需调用requireAuth,它将用户发送到那里,如果IdP确定用户的会话仍然有效,它将响应而不提示登录。

你是说用户在IdP上有一个有效的会话,当你将用户发送到那里时,会再次提示他们进行身份验证吗?这可能是由于IdP策略,或者如果您的应用程序在其AuthnRequest中发送了类似“forceAuth”的内容。

 类似资料:
  • 我是SAML协议的新手,我需要使用与本地用户数据库连接的SimpleSamlPHP创建一个IdP。然后我必须在asp.netWeb表单/mvc(最好asp.netmvc)中创建一个SP。我设法将SimpleSamlPHP设置为IdP,并使用默认的saml-sql身份验证源/登录页面连接到本地用户数据库。如图所示: 我注意到登录url包含具有重定向URL的AuthnState。因此:http://l

  • 我为一家SaaS提供商工作,该提供商希望以我们的应用程序作为服务提供商,向企业客户提供SSO应用程序。 我理解需要发生的事情背后的概念,并且SAML是我们希望做的事情的适当解决方案。看看更大的SaaS提供商(slack、dropbox、new relic等)我可以看到,它们通常似乎与许多身份提供商集成,如OneLogin、Bitium、Okta、Ping Identity等。。。以及通用SAML支

  • 我必须在具有OpenSAML2.5.1(旧版本的cas)的代码库上实现SAML2.0,不幸的是,我无法使用spring saml安全扩展(它使用了新版本的opensaml)。我已经研究了spring扩展如何处理授权请求/响应,并在一定程度上对其进行了反向工程。我能够从sp呼叫idp(sso圈)并尝试登录,但在提交时出现500个错误:原因:无法进行单点登录或联合。 是否有任何示例java opens

  • 我很难从各种渠道获得关于如何修改我现有的ASP.NET应用程序(非MVC,如果这很重要的话——基于基于表单的认证的旧web表单)的明确指导,以接受通过SAML的单点登录用户。具体来说,我们希望连接到俄克拉荷马州。我已经让OpenID Connect与Okta一起工作,但是我们的客户特别希望通过Okta使用SAML。我们也希望在未来通过SAML支持其他身份提供者。 我已经在Okta中设置了应用程序,

  • 我对 SSO 和 SAML 很陌生。我们有一个 ASP.NET MVC服务器。我们需要让它充当SSO身份提供商,它接受来自我们其他服务提供商网站的SAML请求,允许用户使用电子邮件,密码和2FA登录,然后重定向回服务提供商网站,并带有SAML响应/断言。 其中两个服务提供商网站是使用DNN CMS创建的,因此我们的SSO身份提供商的工作方式必须符合行业标准,以便DNN CMS可以使用它。 问题:

  • 这是我的配置: 显然,我有一个路由/后台/登录的控制器,它使用正确的输入名(_username,_password)呈现登录表单。 当我编译表单时,如果我输入了错误的用户名和密码数据,我就会正确地出现错误的凭据,但是如果我输入了正确的数据,我就会以匿名用户的身份被重定向回登录页面。 一些应用程序/日志。。。 如何在第2行看到登录成功,但当控制器重定向到安全的我获得访问拒绝(第8行) 我错在哪里?非