54 lines
3.8 KiB
Markdown
Executable File
54 lines
3.8 KiB
Markdown
Executable File
---
|
||
outline: deep
|
||
---
|
||
# 使用 Cloudflare Access 作为 OAuth2 提供方
|
||
相较于 Github,Cloudflare Access 对于中国大陆用户更加友好。如您当前使用 Github、Gitlab、Gitee 作为管理员账户登录时遇到问题,您可以考虑切换 Cloudflare Access 作为 OAuth2 提供方
|
||
## 示例配置:
|
||
|
||
```yaml
|
||
Oauth2:
|
||
Admin: 701b9ea6-9f56-48cd-af3e-cbb4bfc1475c
|
||
ClientID: 3516291f53eca9b4901a01337e41be7dc52f565c8657d08a3fddb2178d13c5bf
|
||
ClientSecret: 0568b67c7b6d0ed51c663e2fe935683007c28f947a27b7bd47a5ad3d8b56fb67
|
||
Endpoint: "https://xxxxx.cloudflareaccess.com"
|
||
Type: cloudflare
|
||
```
|
||
|
||
## 配置说明:
|
||
|
||
| 参数 | 获取方式 |
|
||
|-----------------------|-----------------------------------------------------------------------------|
|
||
| Admin | `My Team` -> `Users` -> `<具体用户>` -> `User ID` |
|
||
| ClientID/ClientSecret | `Access` -> `Application` -> `Add an Application` <br/> -> `SaaS` -> `OIDC` |
|
||
| Endpoint | `Access` -> `Application` -> `Application URL` -> `只保留协议+域名的部分,路径不需要` |
|
||
|
||
### 新建 SaaS-OIDC 应用流程
|
||
|
||
前往 Zero Trust Dashboard:[https://one.dash.cloudflare.com/](https://one.dash.cloudflare.com/),选择或新建一个账户(Account),然后按照以下步骤操作:
|
||
|
||
1. `My Team` -> `Users` -> 点击`<具体用户>` -> 获取 `User ID` 并保存 *(如果是第一次使用 Zero Trust,Users 列表会为空,可暂时跳过这一步;你需要完成一次验证后,用户才会出现在 Users 列表中)*;
|
||
2. `Access` -> `Applications` -> `Add an Application`;
|
||
3. 选择 `SaaS`,在 `Application` 字段中输入自定义的应用名称(例如 `nezha`),选择 `OIDC` 后点击 `Add application`;
|
||
4. `Scopes` 选择 `openid`, `email`, `profile`, `groups`;
|
||
5. 在 `Redirect URLs` 中填写你的 Dashboard Callback 地址,例如 `https://dashboard.example.com/oauth2/callback`;
|
||
6. 分别记录 `Client ID`、`Client Secret` 和 `Issuer` 地址中的协议与域名部分,例如 `https://xxxxx.cloudflareaccess.com`;
|
||
7. 编辑 Dashboard 配置文件(通常位于 `/opt/nezha/dashboard/data/config.yaml`),参照示例配置修改 `OAuth2` 设置,并重启 Dashboard 服务。
|
||
|
||
### 身份验证策略配置
|
||
|
||
在完成 Dashboard 设置后,您还需要在 Zero Trust Dashboard 中配置身份验证策略,路径为:`Access` -> `Applications` -> `<应用名>` -> `Policies`。您可以选择多种 SSO 验证方式,包括邮件 OTP 验证、硬件密钥验证等,详细配置请参考 [Cloudflare Zero Trust 文档](https://developers.cloudflare.com/cloudflare-one/)。
|
||
|
||
### 策略配置示例(One-time PIN)
|
||
|
||
默认使用邮件 OTP 验证方式:
|
||
|
||
1. `Access` -> `Applications` -> `<应用名>` -> `Policies` -> `Add a policy`;
|
||
2. 设置一个 `Policy Name`,例如 `OTP`,`Action` 设置为 `Allow`;
|
||
3. 在 `Configure rules` 下新增一条 `Include` 规则,`Selector` 选择 `Emails`,在文本框中输入你的邮箱地址;
|
||
4. 点击 `Save policy` 保存策略。
|
||
|
||
### 测试策略
|
||
|
||
1. 在配置正确的情况下,访问 Dashboard 登录界面,会显示为 `使用 Cloudflare 账号登录`,点击登录会跳转到 Cloudflare Access 登录页面;
|
||
2. 输入前面配置的 Email 地址,点击 `Send me a code`,输入收到的验证码,即可登录 Dashboard;
|
||
3. 如果在之前的步骤中,未在 `Admin` 中未填写 `User ID`,登录后会提示错误信息:“该用户不是本站点管理员,无法登录”。此时需要在 `My Team` -> `Users` 中找到对应的用户,点击用户名获取 `User ID` 并填写到 Dashboard 配置文件里的 `Admin` 部分,重启 Dashboard 服务后再次尝试登录。 |