钉钉 Cloudflare Zero Trust 免费开放

钉钉扫码,登录 Cloudflare Zero Trust 背后的所有应用

面向国内团队的 SSO 桥接服务:把钉钉变成 Cloudflare Access 的身份源。员工用熟悉的钉钉 App 扫码进门,受保护的应用一行代码不用改。

登录链路

一次扫码,四步完成

STEP 1

访问受保护应用

Cloudflare Access 拦下未登录访客,转到登录页,员工选择「钉钉」。

STEP 2

跳转桥接服务

Access 走标准 OIDC 协议,找到你的租户专属入口 *.sso.服务域名。

STEP 3

钉钉扫码授权

服务把标准协议翻译成钉钉的私有协议,员工在钉钉 App 上点确认。

STEP 4

签发身份进门

服务签回 RS256 签名的身份令牌,Access 验签放行,种下登录会话。

为什么需要

钉钉不是标准 OIDC,直连必挂

Cloudflare Access 原生支持 Google、GitHub、Okta……唯独没有钉钉。因为钉钉的「OAuth2」有三处和规范对不上,标准 OIDC 客户端根本走不通:

token 端点

只收 JSON camelCase 请求体,而所有标准实现发的都是表单或 Basic 头。

用户信息端点

要求专用的 x-acs-dingtalk-access-token 头,不认标准的 Bearer。

回调参数

授权码塞在 authCode 参数里,不是规范里的 code,标准端直接找不到。

桥接服务在中间做完整翻译:对钉钉说钉钉的话,对 Cloudflare 说标准 OIDC。这套翻译已经过真实企业环境全链路验证。

接入方式

三步上线,全程不改应用

钉钉开放平台建应用

用企业管理员账号在钉钉开发者后台建一个企业内部应用,开通「通讯录个人信息读权限」,回调白名单加上:

  • https://你的租户子域.sso.服务域名/cb
  • 拿到 Client ID / Client Secret 交给服务方开通租户

服务方开通租户

登记钉钉凭证和你的 Cloudflare 团队域名后,你会得到一对 OIDC 凭证,以及一组专属端点。你的组织信息(corpId)会配置进登录白名单——只有你企业成员能通过。

Cloudflare 填五个字段

Zero Trust 控制台 → Integrations → Identity providers → OpenID Connect:

Client ID
服务方颁发
Client secret
服务方颁发
Auth URL
https://slug.sso.域名/authorize
Token URL
https://slug.sso.域名/token
Certificate URL
https://slug.sso.域名/jwks

保存后点 IdP 旁的 Test 按钮真实扫码验证,再把该登录方式挂到 Access 应用上。可选项保持默认:PKCE 不要开。

安全设计

按对外服务标准做的底层

常见问题

接入前常问的

员工登录时用什么账号?
就用钉钉:员工的钉钉 App 扫码或点确认即完成登录,没有新密码、不用记别的。身份邮箱按 unionId@dingtalk.local 生成,可直接用在 Access 策略白名单里。
会影响现有登录方式吗?
不会。钉钉登录作为一个新登录方式挂到 Access 应用上,原有的一次性邮箱 PIN、其他 IdP 全部保留,登录页多个按钮而已,随时可切换。
Test 按钮报错怎么办?
九成是五个字段里有 URL 填错,逐字核对三个端点的结尾(/authorize、/token、/jwks,无尾斜杠)。完整的报错对照表在接入文档里。
服务的可用性怎么保障?
服务跑在 Cloudflare 全球边缘网络上,与你的 Zero Trust 同源同网;登录链路有健康拨测与告警,签名密钥可在线轮换,单租户问题不影响其他组织。