import{_ as e,c as a,o as d,a4 as o}from"./chunks/framework.BmdFiWrL.js";const g=JSON.parse('{"title":"使用 Cloudflare Access 作为 OAuth2 提供方","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"guide/q8.md","filePath":"guide/q8.md","lastUpdated":1720756321000}'),c={name:"guide/q8.md"},s=o(`
相较于 Github,Cloudflare Access 对于中国大陆用户更加友好。如您当前使用 Github、Gitlab、Gitee 作为管理员账户登录时遇到问题,您可以考虑切换 Cloudflare Access 作为 OAuth2 提供方
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 -> SaaS -> OIDC |
Endpoint | Access -> Application -> Application URL -> 只保留协议+域名的部分,路径不需要 |
前往 Zero Trust Dashboard:https://one.dash.cloudflare.com/,选择或新建一个账户(Account),然后按照以下步骤操作:
My Team
-> Users
-> 点击<具体用户>
-> 获取 User ID
并保存 (如果是第一次使用 Zero Trust,Users 列表会为空,可暂时跳过这一步;你需要完成一次验证后,用户才会出现在 Users 列表中);Access
-> Applications
-> Add an Application
;SaaS
,在 Application
字段中输入自定义的应用名称(例如 nezha
),选择 OIDC
后点击 Add application
;Scopes
选择 openid
, email
, profile
, groups
;Redirect URLs
中填写你的 Dashboard Callback 地址,例如 https://dashboard.example.com/oauth2/callback
;Client ID
、Client Secret
和 Issuer
地址中的协议与域名部分,例如 https://xxxxx.cloudflareaccess.com
;/opt/nezha/dashboard/data/config.yaml
),参照示例配置修改 OAuth2
设置,并重启 Dashboard 服务。在完成 Dashboard 设置后,您还需要在 Zero Trust Dashboard 中配置身份验证策略,路径为:Access
-> Applications
-> <应用名>
-> Policies
。您可以选择多种 SSO 验证方式,包括邮件 OTP 验证、硬件密钥验证等,详细配置请参考 Cloudflare Zero Trust 文档。
默认使用邮件 OTP 验证方式:
Access
-> Applications
-> <应用名>
-> Policies
-> Add a policy
;Policy Name
,例如 OTP
,Action
设置为 Allow
;Configure rules
下新增一条 Include
规则,Selector
选择 Emails
,在文本框中输入你的邮箱地址;Save policy
保存策略。使用 Cloudflare 账号登录
,点击登录会跳转到 Cloudflare Access 登录页面;Send me a code
,输入收到的验证码,即可登录 Dashboard;Admin
中未填写 User ID
,登录后会提示错误信息:“该用户不是本站点管理员,无法登录”。此时需要在 My Team
-> Users
中找到对应的用户,点击用户名获取 User ID
并填写到 Dashboard 配置文件里的 Admin
部分,重启 Dashboard 服务后再次尝试登录。