Cloudflare Zero Trust App Launcher、Access Group 及添加新的登录验证方式

什么是 App Launcher

所谓 App launcher,就是当用户登录之后,会显示一些应用,可以直接点击跳转过去。再也不用单独收藏每一个链接啦,只要收藏这个 App Launcher 即可。长这样

2023042003361458

添加新登录验证方式

通常来讲,我们是通过邮件的方式来进行验证的。非常简单,但是有时邮件可能会发送失败,比如说被 Gmail 拦截。那么有没有办法添加新的验证方式呢?答案当然是有的啦。Cloudflare 继承了非常多的登录方式,如下图所示,甚至有一个通用的 SAML:

2023042003351149

下面就以配置 GitHub 登录来说,Google 等同理基本没太大差别。

创建 GitHub App

打开 GitHub,进入 Settings – Developer Settings – OAuth Apps,新建一个 app

创建之后,复制 Client ID,然后点击 Generate a new client secret 复制 secret 的值

创建 GitHub Organization

创建一个 GitHub Organization,后续做验证的时候要用这个。

配置 Zero Trust

回到 Cloudflare Zero Trust,选择 Settings – Authentication – Login Methods,右侧有一个 Add new,然后选择 GitHub

2023042003372621

填入刚刚复制的 ID 和 secret,点击保存

 

下面会弹出一个小的框框

2023042003351386

点击 finish setup 或者复制链接到新窗口打开,在 org 中给我们新创建的 org 授权,点击 Grant,然后 authorize

2023042003351323

此时回到 Login Methods 就可以看到已经添加成功啦,点击 Test 按钮可以看下 Cloudflare 从 GitHub 的 API 拿到的数据

2023042003351481

配置验证

此时如果你打开 team url,比如 https://bennythink.cloudflareaccess.com/ 在 Login 就已经能看到 GitHub 了。

202304200335155

当然这还没完,不能所有人都能通过 GitHub OAuth 进入 App Launcher 呀!因此我们还需要进一步配置

点开 Zero Trust – Settings – App Launcher – Manage

首先确认一下 Authentication 页面已经选中了 GitHub,默认应该是所有认证方式都可以,当然你也可以自定义

2023042003351550

然后在 Rules 中,新建或者编辑已有规则,我们会发现有三种可以选择的模式: include、require 和 exclude

2023042003351695

  • include:类似逻辑 OR 操作符,用户只要满足条件之一就可以
  • require:类似逻辑 AND 操作符,用户要满足所有的条件
  • exclude:类似逻辑 NOT,排除条件
添加 require 规则的时候要注意,是要满足所有条件才可以授权。比如我的 require 规则添加了两条,分别是 County=China & Country=US,那么没人可以通过,因为 IP 只能在一个国家而不是两个国家。

这里我们的需求是,用户要么通过 dmesg.app 的邮箱验证,要么在新创建的那个 Organization 里,所以新添加一个 include,Selector 选择 GitHub Organization,organization name 写创建的 name

2023042003351779

如果我们的需求是,用户在 org 里,并且邮箱为 [email protected],那么就要一个 include 邮箱规则,一个 require GitHub organization 规则。

返回 team url 就可以登录了。

注意:配置 App Launcher 的权限,并不等于拥有应用的权限,应用的权限是独立的

举个例子,我之前创建的 redis,只能邮箱进行验证,并且放到了 launcher 之中,那么在 App Launcher 这里我通过 GitHub OAuth 后,并看不到那个 redis。想要看到对应的应用,那只能去编辑对应应用的规则。

Access Group

把一样的规则配置多次就显得很蠢,这个时候就要用 Access Group。

Access – Access Group,设置名称和配置和前面一样

2023042003351846

在其他地方,添加策略的时候选择这个 Group 就可以了。甚至在 WARP 的 Device enrollment permissions 中也可以这样搞!

参考文档

https://developers.cloudflare.com/cloudflare-one/policies/access/

Related Post

发表回复