詹姆斯·莫里森/cloudflare-access-sso

通过 Cloudflare Access 方便 SSO 登录 WordPress。

1.0.6 2024-03-15 11:08 UTC

This package is auto-updated.

Last update: 2024-09-15 12:10:51 UTC


README

Cloudflare Access SSO (单点登录) 是一个插件,用于方便 WordPress 的自动登录。该插件依赖于 Cloudflare 的授权,因此您必须仔细遵循此设置指南,以确保您的网站保持安全。有关进一步指导,请参阅 Cloudflare 文档:将网站添加到 Cloudflare

注意:如果您目前不使用 Cloudflare 且不打算使用,此插件可能不适合您的网站。

Cloudflare Access 设置

为了使用 Cloudflare Access 进行 SSO,您必须创建一个应用程序,涵盖您想要保护站点的 wp-login.php。没有其他 URL 需要保护才能使此功能正常工作,但为了更好的安全性,您可能希望包括其他 URL。注意,截至 2023 年 6 月,无法在一个应用程序中定义多个路径;目前,如果您还想要保护 /wp-admin,则需要多个应用程序。

按照此指南创建 Cloudflare Access 应用程序:自托管应用程序

插件配置

需要在 wp-config.php 中设置两个常量(注意:未来版本将添加设置页面)

CF_ACCESS_TEAM_NAME Cloudflare Access 团队名称 获取团队名称

  • 打开零信任仪表板(见上文)
  • 在左侧侧边菜单中导航到“设置”,然后单击“常规设置”
  • 编辑团队域名 - 可编辑组件是团队名称(忽略后面的 .cloudflareaccess.com
    • 例如,如果保存后的值是 mysite.cloudflareaccess.com,则团队名称是 mysite

例如,对于 wp-config.phpdefine( 'CF_ACCESS_TEAM_NAME', 'mysite' );

CF_ACCESS_AUD Cloudflare Access 应用程序的应用程序受众(AUD)标记 获取应用程序受众(AUD)标记

  • 打开零信任仪表板(见上文)
  • 导航到访问 > 应用程序
  • 选择应用程序,然后在弹出的模态中单击“配置”
  • 在应用程序页面上,导航到“概述”选项卡
  • 复制“应用程序受众(AUD)标记”值

例如,对于 wp-config.phpdefine( 'CF_ACCESS_AUD', '12345-67890-12345-67890-12345-67890' );

注意:如果您有多个 Cloudflare Access 应用程序,确保 AUD 覆盖 wp-login.php - 如果不覆盖,SSO 将无法正常工作。

CF_ACCESS_AUD 接受单个字符串(如上例所示)或字符串数组,如下所示

define( 'CF_ACCESS_AUD',
	[
		'12345-67890-12345-67890-12345-67890',
		'54321-12345-54321-12345-54321-12345',
	]
);

可选地,还可以设置四个额外的常量

CF_ACCESS_ATTEMPTS 通过 Cloudflare Access 登录的尝试次数。

默认值:(int)3 如果未设置。

CF_ACCESS_LEEWAY 授权头中允许的宽限秒数。

默认值:(int)60 如果未设置。

CF_ACCESS_CREATE_ACCOUNT 是否在用户不存在的情况下为(Cloudflare)认证用户创建账户 注意:这取决于您的 Cloudflare Access 应用程序的设置;如果您只允许“内部”用户,则“外部”用户将无法访问网站。

默认值:(bool)false 如果未设置。

CF_ACCESS_NEW_USER_ROLE 创建的用户账户的角色。需要 CF_ACCESS_CREATE_ACCOUNT 为 true(否则将被忽略)。

默认值:(string)subscriber

注意:当应用程序配置不正确(授权头未设置,或团队名称 / AUD 不正确)时,SSO 将会被 静默禁用。您可以通过检查开发者工具的Cookies部分来确认是否已设置Cookie。

免责声明

此插件与Cloudflare无关,也不是由Cloudflare开发的。所有商标、服务标志和公司名称均为各自所有者的财产。