Cloudflare ZeroTrust Access 策略配置(记录一下当个小教程叭)

因为有一些反代出来的服务,主要还是给个人以及朋友使用。所以想要给这些网站套上一层简单的验证,避免谁都能访问。因此打算使用cloudflare的access来控制。记录一下配置的过程也分享给大家当作小教程好了。看到站内好像还没配置账户邮箱登录的。

前提条件 :white_check_mark:

在开始配置之前,确保你已经具备以下条件:

  • 一个Cloudflare(CF)账户
  • 需要保护的服务或网站已接入Cloudflare

打开官网上的这个模块

我的需求是:允许用户(包括我自己和朋友)通过简单的第三方账户或一次性邮箱验证码登录我搭建好的服务。具体规则是:

  • 允许用户通过指定的登录方式(如Google、GitHub)登录;
  • 但只允许特定的邮箱名称(如[email protected][email protected])通过认证。换句话说,不管用户用哪种方式登录,最终的邮箱名称必须是指定的几个之一。

步骤2:创建规则组 :clipboard:

根据官方文档,需要先创建一个规则组(Rule Group),将所有允许的邮箱地址包含进去。操作如下:

  1. 进入Zero Trust的规则组配置页面;
  2. 创建一个新规则组,命名为你容易识别的名字;
  3. 添加允许的邮箱地址,使用 Include 选项(逻辑为“或”,即满足其中一个条件即可)。

这里使用的是Include。也就是在判定时使用or逻辑。


步骤3:创建登录策略 :locked:

规则组创建好后,需要为登录行为创建一个策略。步骤如下:

  1. 进入策略配置页面,点击创建新策略;
  2. 输入基本信息:
    • 策略名称(随便取一个好记的名字);
    • 操作选择 Allow(允许);
    • 会话持续时间(我选择了适中的一周,意味着一周后需要重新认证)。
  3. 配置规则:
    • 添加一个 Include,包含所有可用的登录方法(如GitHub、Google等,我已经配置好这两个,所以都选上了);
    • 添加一个 Require,并选择之前创建的规则组。

:warning: 注意:为什么不直接在 Include 中配置邮箱?如果直接添加邮箱到 Include,逻辑会变成“登录方式可以是GitHub、Google,或者这些邮箱”,结果是任何Google账户都能登录,显然不符合需求。只有通过 Require 绑定规则组,才能确保邮箱名称符合条件。(我在这一步试了半天,哈哈哈哈哈)

配置完成后,点击保存。


步骤4:添加应用程序 :globe_with_meridians:

策略配置好后,我们需要将它应用到具体的网站或服务上。由于我的网站都通过Cloudflare的DNS代理,所以可以创建一个自托管应用程序,并添加需要保护的网站。操作如下:

  1. 进入应用程序管理页面,点击“添加应用程序”;
  2. 选择“自托管应用程序”;
  3. 输入你的网站域名,将其纳入保护范围;
  4. 在策略中选择之前配置好的策略;
  5. 保存设置。

完成这一步后,下次访问你的网站时,会先跳转到Cloudflare Zero Trust的认证界面。认证通过后,才能进入服务。效果如下:

(如果佬友有更高级的玩法也欢迎分享,感觉这个方法还是比较初级的hhhhh)

5 Likes

感谢大佬分享。

1 Like

感谢大佬教程

1 Like

感谢佬友

1 Like