You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SimpleSAMLPHP IdP如何为单个SP配置独立LDAP认证源

SimpleSAMLphp IdP 为指定SP配置独立认证源实现方案

不需要部署独立IdP,依托原生功能即可实现,按以下优先级选方案操作即可:


方案1:SP元数据直接指定认证源(推荐,零代码,适用1.17及以上版本)

这是SimpleSAMLphp原生支持的特性,SP远程元数据中配置的认证源优先级高于IdP全局默认配置,完全不影响现有8个SP的正常运行:

  • 先验证你新增的带LDAP组限制的认证源本身可用:访问IdP部署路径下的/module.php/core/authenticate.php,在认证源列表选中你在authsources.php里新增的认证条目,分别用目标组用户、非目标组用户测试,确认组拦截规则生效、登录流程正常。
  • 打开IdP元数据目录下的saml20-sp-remote.php文件,定位新SP对应的配置数组(匹配该SP的entityID)。
  • 在该SP的配置数组内新增一行配置:
    'auth' => '你在authsources.php中新增的受限认证源的ID',
    
  • 清空IdP根目录下cache/文件夹内的所有缓存文件,直接从新SP发起登录测试即可,其他SP会继续沿用全局默认的LDAP认证源。

方案2:认证流程过滤器分流(兼容1.17以下老版本)

如果你的SimpleSAMLphp版本较老不支持SP级auth配置,通过高优先级认证过滤器做SP识别和认证源切换即可:

  • 同样先完成受限认证源的可用性验证,步骤同方案1第一步。
  • 打开IdP的saml20-idp-hosted.php配置文件,找到authproc配置段,新增一条优先级为1(在所有认证逻辑前执行)的规则:
    1 => [
        'class' => 'core:PHP',
        'code' => '
            $requester = $state["saml:RequesterID"][0] ?? "";
            // 替换为你的新SP的entityID
            $targetSP = "https://new-sp.yourdomain.com/saml/metadata";
            // 替换为你新增的受限认证源ID
            $targetAuth = "ldap-restricted-group";
            if ($requester === $targetSP) {
                $state["LoginMethod"] = $targetAuth;
            }
        ',
    ],
    
  • 清空cache/目录缓存后测试即可。

注意事项

  • 不要修改原有全局默认LDAP认证源的配置,你单独新增带组过滤规则的LDAP认证源的思路是正确的,不会对现有SP的认证逻辑产生侵入。
  • 所有配置修改后必须清空缓存,SimpleSAMLphp默认会缓存元数据和配置,不清空很容易出现新配置不生效的问题。
  • 如果需要做更细粒度的权限拦截,也可以在受限认证源对应的authproc配置里加组判断逻辑,不用改动全局认证流程。

内容的提问来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 09:33:18