humanmade / wp-simple-saml
WordPress Simple SAML 插件
Requires
- onelogin/php-saml: ^3.0
Requires (Dev)
- humanmade/coding-standards: dev-master
This package is auto-updated.
Last update: 2024-09-08 16:29:43 UTC
README
WordPress Simple SAML 是一个灵活、可扩展的 SAML 集成插件,它在执行大部分繁重工作同时,通过插件中的操作和过滤器保持所有配置的可配置性。
该插件支持多站网络和跨网络 SSO 委托。可以在站点级别或网络级别上安装。
WordPress Simple SAML 使用 OneLogin 的 PHP-SAML 工具包进行 SAML API 集成。
设置
- 将插件文件复制到您的
wp-content/plugins
目录 - 激活插件
- 前往 配置屏幕。
- 将服务提供商元数据 URL(或内容)发送到您的身份提供者权威机构(IdP)(在设置页面中找到链接)。
注意:如果您通过代码在网络范围内激活插件,您可能需要使用过滤器 wpsimplesaml_network_activated
来覆盖标准的 WordPress 检查,如下所示
add_filter( 'wpsimplesaml_network_activated', '__return_true' )
配置
有两种方法可以配置插件,要么通过管理界面,要么使用过滤器,根据项目需求,两者可以互换使用,通常过滤器优于数据库设置。
管理配置
根据插件是否为网络激活,您需要转到 设置 \ 一般
或 网络设置
页面。
SSO 状态
是插件如何与 WordPress 登录过程集成,可用的选项是禁用
、显示登录链接
,仅提供登录表单中的链接,强制重定向
,它完全覆盖登录表单并直接转到 SSO 登录页面。SSO 基础 URL
(可选)是作为代理(主要服务提供商)服务的 WordPress 网站的首页 URL,SAML 响应将发布到该网站,通常这是网络的主站点,与siteurl
选项相同,例如https://my.site/
SSO IdP 元数据
(必需,如果不使用过滤器)SSO IdP 元数据 XML 文件的副本,也可以通过wpsimplesaml_idp_metadata_xml_path
的 XML 文件路径,或wpsimplesaml_idp_metadata_xml
的 XML 内容,或wpsimplesaml_idp_metadata
的配置数组进行传递。SSO 委托白名单主机
在 SAML 响应委托期间的白名单主机列表,即:需要使用 SSO 的二级域名,默认允许本地站点。SSO 角色管理
允许开发人员根据 SAML 响应为用户分配不同的角色,默认禁用,并通过几个过滤器控制。SSO 通过 Cookie 调试
允许开发人员使用名为sso_debug
的特殊 cookie 在测试期间覆盖SSO 状态
选项。cookie 的可能值是force
和link
,这些值是自解释的。SSO 配置验证
显示有关 IdP 元数据及其设置的验证信息。
通过代码配置
WordPress Simple SAML 设计得尽可能可扩展,因此大多数登录/验证过程的方面都可以通过使用可用的良好记录的 钩子 来根据需要进行调整。
TL;DR; 这是您需要的基本最小过滤器,以便与默认选项一起使用实现。
// SAML metadata XML file path add_filter( 'wpsimplesaml_idp_metadata_xml_path', function(){ return ABSPATH . '/.private/sso/test.idp.xml'; } ); // Configure attribute mapping between WordPress and SSO IdP SAML attributes add_filter( 'wpsimplesaml_attribute_mapping', function(){ return [ 'user_login' => 'uid', 'user_email' => 'email', ]; } );
测试
由于SSO权限更改通常很麻烦,而凭证配置需要时间,我们已记录使用测试Docker容器启动和运行示例SAML IdP(身份提供者)的步骤。更多内容请查看本地测试SSO。
贡献
首先,感谢您的贡献!
设置
要获取开发依赖项,通过以下方式安装composer和npm依赖项:
composer install npm install
这将通过PHP Code Sniffer安装Human Made的WordPress编码标准版本,并将预提交钩子符号链接到自动检查所有提交的代码质量问题的功能。
工作流程
- 找到一个您想帮忙解决的问题,或者创建一个新问题以引入您想做的更改。
- 将仓库分叉到您自己的账户
- 从您的分叉向我们的仓库发起pull请求
- 在pull请求中标记您试图解决的问题以提供上下文
- 确保pull请求通过了所有Travis检查
- 标记任何贡献者进行审查。
下一步
查看问题列表以了解下一步计划。
致谢
由Human Made创建,用于网络范围内的SAML SSO集成,因为缺乏一个编写良好的WordPress集成,该集成具有我们客户所需的特性/灵活性。
由Shady Sharaf编写和维护。感谢所有我们的贡献者。
有兴趣加入我们吗?加入我们,成为人类!
变更日志
-
0.3
- 修复与WordPress单站(无多站)的兼容性。
- 修复在控制台外使用WordPress仪表板功能导致错误。
-
0.2.1
- 修复缺少composer依赖项并更新.gitignore
-
0.2
- 更新PHP SAML库到3.0以支持PHP 7.x
-
0.1
- 稳定版本