从 simpleSAMLPHP 获取 SAML 会话而不尝试进行身份验证

Get SAML session from simpleSAMLPHP without trying to authenticate

我正在尝试设置以下工作流程:

用户登录应用 A。

应用程序 A 从中央 simpleSAML 实例反弹以创建会话。

用户访问应用程序 B。

应用程序 B 跳转到中央 simpleSAML 实例以检查会话。

如果会话存在,用户将返回到应用程序 B 及其属性,并在应用程序 B 上进行身份验证。此位有效。

如果会话不存在,用户应该返回到应用程序 B 而无需在中央实例上尝试登录。这个位不行。

是否有可以执行此操作的简单 SAML 端点?我正在寻找 getSession 或类似的东西。

所需的设置是 isPassive。示例:

$auth_source = new \SimpleSAML_Auth_Simple('source_name');
$auth_source->requireAuth(array('isPassive' => true));

使用标准的 SimpleSAML IDP,如果用户在 IDP 上登录,此请求将正常进行身份验证。如果用户不是,将返回 SimpleSAML_Error_NoPassive 错误。这由 SP 来处理。