logo
0
0
Login

cnb 钉钉登陆对接

简介

通过钉钉提供的登录能力,可以让 CNB(CloudNativeBuild) 在浏览器内打开时,引导成员使用钉钉登录授权,从而获取成员的身份信息

钉钉后台配置

在进行钉钉授权登录之前,需要先在钉钉的管理端后台创建一个钉钉应用(见 实现网页方式登录应用(登录第三方网站))。

按照文档种的步骤一到步骤四,依次完成以下操作:

  • 创建钉钉应用
  • 申请接口权限
  • 配置回调域名 (为 cnb 的主域名)
  • 发布应用

部署自建应用服务

cnb 对接钉钉的 Oauth 授权流程,需要一个自建应用服务来处理 cnb 跟 钉钉之间的数据格式转换,自建应用服务实现了以下接口:

  • /token 通过 code 换取 access_token
  • /userinfo 通过 access_token 换取用户信息
kubectl apply -f deployment.yaml -n cnb kubectl apply -f service.yaml -n cnb

CNB 管理端登陆配置

登陆 CNB 运营管理平台,配置Oauth登陆信息

访问http://[admin domain]/system/setting/platform-auth/oauth

字段内容
Client ID自建应用 Client ID,可在自建应用详情页获得
Client Secret自建应用 Client Secret,可在自建应用详情页获得
Scopeopenid corpid
授权方式自动检测
授权请求https://login.dingtalk.com/oauth2/auth?prompt=consent
Token 请求http://oauth-dingtalk/token
用户信息请求http://oauth-dingtalk/userinfo?access_token=${access_token}
同步登出地址不填
用户 id 映射属性uid
用户名映射属性username
用户昵称映射属性nickname
用户邮箱映射属性email
用户头像映射属性avatarUrl
提示消息映射属性不填
同步权限设置按需选择,e.g. 允许自定义邮箱

验证

  1. 配置完成后,访问 CNB 主站,点击登陆,确认是否会跳转到钉钉登陆地址,如果没有,则检查前一步授权地址是否配置正确
  2. 钉钉登陆完成后,会传递登陆授权码回到主站,并发起授权码消费接口,换取登陆用户信息,如果这一步失败,可以检查前一步用户信息请求是否配置正确,或者查看自建应用请求日志
  3. 如果自建应用没有收到请求,或者收到请求换取用户信息成功后,没有成功登陆进入用户主页,请联系 CNB 管理员定位具体问题原因

About

通过钉钉提供的登录能力,可以让 CNB(CloudNativeBuild) 在浏览器内打开时,引导成员使用钉钉登录授权,从而获取成员的身份信息

dingtalksame-named
Language
Go77.2%
Dockerfile13.8%
Markdown8.1%
gitignore0.9%