今天领导给我说他发现前两天有离职的员工还在访问公司的gitlab。 于是就想使用钉钉来控制gitlab登录,离职自动禁用gitlab。简单搜索了一下,感觉确实可以这么干,于是说干就干,用docker搭了一个测试的gitlab。
Gitlab文档
gitlab-ce版本在14.5之后可以使用该功能,15.10之后该功能被废弃。因为该功能是极狐提交的,推测是极狐不愿意推送更新导致被废弃的(纯推测,毫无根据)。
gitlab文档地址是https://docs.gitlab.com/ee/integration/ding_talk.html, 讲的很清楚,也有图片。但是跟着做以后,会发现有如下问题:

错误消息是:”对不起 你无权限查看该页面 无效的appid:xxxxx”, 显然这个错误没有什么意义,因为appid我复制过来的,不会出错
查找了钉钉的接口文档,URL并没有问题 https://open.dingtalk.com/document/orgapp/scan-qr-code-to-log-on-to-third-party-websites
那问题只可能是钉钉里面应用设置了。
钉钉后台配置
下面是我探索的过程,记录一下
开发管理
添加应用首页地址,和服务器出口IP,但是并没有什么用,还是报这个错

版本发布
考虑到可能是应用未发布,所以appid无效,就点了发布。但是结果仍然报这个错

接入登录
也不知道在哪里看到一个类似的贴子,说需要在接入登录中填入回调地址。填好以后就没有问题了。

gitlab使用钉钉登录的局限
- 必须注册后,手动绑定钉钉才可以使用钉钉登录
- gitlab虽然可以隐藏掉web登录的界面并禁止用户名密码来clone,但是用户可以通过person access token和SSH Key来访问
- 钉钉即使无法登录,只要gitlab账号没被禁用或删除,使用key或token对仓库的访问权限还在。
所以,最终还是无法实现离职员工自动禁用gitlab的功能。只能走流程,让其拿着离职单来找我,禁用各种账号后再签字