Zero Trust (零信任) 是一个安全框架标准,要求所有用户在被授予或保持对应用程序和数据的访问权限之前,都要针对进行身份验证 —— 即对每一次会话进行验证
Cloudflare Zero Trust 是 Cloudflare 推出的 「零信任」平台,为每个团队提供 50 成员的免费订阅,我们可以将一些关键的网页放在 Zero Trust 后面保护。
创建团队
首先需要创建一个 Cloudflare 账号,并且绑定域名(至于改NS什么的应该不用教了吧)
https://dash.cloudflare.com/sign-up
然后进入 one.dash.cloudflare.com,点击左侧 Settings - General
,设置 Team Domain
添加 SSO 登陆方式
回到 Settings
页面,点击 Authentication
,添加验证方式,支持的验证方式如右图所示,建议如果个人使用的话, Github + Google + OTP (One-Time Pin) 足矣,而且自认为属于最佳实践,添加每种验证方式的时候右侧都有详细的提示,按照步骤添加即可。
设置登陆因素白名单
来到左侧菜单,Access - Access Groups - Add a Group
,如果你刚才已经分别添加了 Github + Google + OTP (One-Time Pin) 的验证方式,那么可以按照如下方法设置白名单:
- Emails ending in: 你的域名(如果你有域名邮箱的话)
此处不要设置 gmail.com outlook.com 这类公众邮箱后缀,否则任何人可以被允许访问 Zero Trust 后的资源 - GitHub Organization: 你账号所在的组织
例如我的账号持有 @ZikinORG 这个组织,我在登陆时授权给这个登陆时候使用的 Github App 访问 @ZikinORG 组织信息的权限(只是让app知道你在这个组织里,app无repo和members权限),之后就可以用 Github 账号一键登录了 - Emails: 其他你需要添加到白名单的账号
你可以输入你的个人 Gmail,然后在登陆的时候选择 Google 登陆即可
添加需要被保护的域名 / 路径
来到 Access - Applications
,新建应用,在此处选择 Self-hosted
输入要保护的路径
- 对于 Wordpress,建议保护
/wp-admin
和/wp-login.php
(无需输入斜线,直接输入后面的部分即可,即wp-admin
和wp-login.php
) - 对于 Typecho 或 Bitwarden 等,保护
/admin
即可
其余设置保持默认,但请注意 Session Duration (会话过期时间) 这里不可以选择 expires immediately
,否则如字面意思,发起请求的 Token 会立刻被 Revoke,这种情况下无法有效的拉起 ZeroTrust SSO
此时保存规则,应该就一切都已经就绪了,你可以打开你设置的路径查看效果。