diff --git a/任务/今日任务.md b/任务/今日任务.md index 787ca2b..7f246bf 100644 --- a/任务/今日任务.md +++ b/任务/今日任务.md @@ -29,12 +29,16 @@ - [X] Keycloak 集成 LDAP - [X] jenkins 整合 Keycloak 实现 SSO -- [ ] 企业微信登录集成(产研平台) -- [ ] SSO 技术方案编写 +- [X] 企业微信登录集成(产研平台) +- [X] SSO 技术方案编写 - [ ] Gitlab webhook merge 集成企业微信推送 -- [ ] Keycloak 集成企微登录可能性调研 +- [X] Keycloak 集成企微登录可能性调研 - [使用企业微信登录Keycloak](https://www.kkzxak47.com/2019/07/30/%E4%BD%BF%E7%94%A8%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1%E7%99%BB%E5%BD%95keycloak/) - [Keycloak开发](https://wener.me/notes/service/auth/keycloak/dev) +- [X] 企微作为首选登录项(管理后台配置) +- [X] 企微主题自定义(Icon图标) +- [ ] 企赋网关重构(模块划分) +- [ ] 完善对接文档 ## 20241216 - 20241220 - [X] Track123 对接 diff --git a/方案/20241224-元盟全域SSO方案.md b/方案/20241224-元盟全域SSO方案.md index f8aa8e4..8975fe3 100644 --- a/方案/20241224-元盟全域SSO方案.md +++ b/方案/20241224-元盟全域SSO方案.md @@ -131,4 +131,7 @@ - [LDAP](https://zhuanlan.zhihu.com/p/608437013) - [IAM单点登录之CAS协议分析](https://zhuanlan.zhihu.com/p/627920220) - [Keycloak](https://www.keycloak.org/) -- [Keycloak OIDC](https://www.keycloak.org/securing-apps/oidc-layers) \ No newline at end of file +- [Keycloak OIDC](https://www.keycloak.org/securing-apps/oidc-layers) +- [Keycloak 默认 Provider 配置](https://www.keycloak.org/docs/latest/server_admin/index.html#default_identity_provider) +- [Keycloak custom theme](https://springdoc.cn/spring-keycloak-custom-themes/) +- [Keycloak custom theme](https://blog.csdn.net/q1ngqingsky/article/details/123417611) \ No newline at end of file diff --git a/方案/20241225-产研协同平台企微登录.md b/方案/20241225-产研协同平台企微登录.md index 1cbbed7..bf1b998 100644 --- a/方案/20241225-产研协同平台企微登录.md +++ b/方案/20241225-产研协同平台企微登录.md @@ -62,9 +62,16 @@ ## 六、工作量和排期 ### 开发时间 -- 企赋网关对接 Keycloak -- 产研协同平台提供接口 -- 产研协同平台前端界面开发 +- 企赋网关对接 Keycloak(Oauth2.0授权流程) +- 产研协同平台(后端)提供接口(登录接口及绑定登录接口) + - 接口文档??? +- 产研协同平台(前端)界面开发 + - 登录失效跳转到授权界面 + - 授权界面链接??? + - 授权完成后未绑定需要跳转到绑定界面(界面编写) + - 绑定界面调用绑定登录接口 + - 绑定登录接口??? + - 前端跳转回原始界面 ### 联调时间 diff --git a/方案/20241226-GitlabWebhook配置.md b/方案/20241226-GitlabWebhook配置.md new file mode 100644 index 0000000..4ac4f31 --- /dev/null +++ b/方案/20241226-GitlabWebhook配置.md @@ -0,0 +1,102 @@ + + + + + + + + + + + + + +## 背景 + +实现 gitlab merge request 事件能够实时的通知到对应的群组,并 @相关人员 进行 code review 及代码合并 + +## 说明 +### Gitlab webhook 作用 +能够实现gitlab事件通知,比如说通过 webhook 触发 jenkins 自动构建,合并代码提醒等 +![](https://picture.texous.cn/baiju/webhook%20%E6%94%AF%E6%8C%81%E7%B1%BB%E5%9E%8B.png) +### Webhook 企微配置 + +> 由于企业微信不兼容 Gitlab 的 webhook,所有需要做一个服务进行转发, +> 服务链接:[cloud-webhook-gitlab](http://git.keyfil.com/qifu-gateway/cloud-webhook-gitlab) + +#### Webhook 链接生成 +##### 企微群组添加机器人 +![](https://picture.texous.cn/baiju/%E4%BC%81%E5%BE%AE%E6%B7%BB%E5%8A%A0%E6%9C%BA%E5%99%A8%E4%BA%BA.png) +##### 获取 Webhook 地址. +![](https://picture.texous.cn/baiju/%E6%9C%BA%E5%99%A8%E4%BA%BA%E5%9C%B0%E5%9D%80.png) +##### 记录 `key` 参数. +- 例如 : `f93a7084-65b9-4d84-bf28-ae6cdaead1b2` +##### 生成webhook链接 +- https://webhook.test.com/webhook/{key}?channel=wxwork + - {key}:表示 webhook 生成的 key + - {channel}(可选):表示需要发送的渠道。现在支持 wxwork。默认 wxwork +- 例如 : https://webhook.test.com/webhook/f93a7084-65b9-4d84-bf28-ae6cdaead1b2 + +### Gitlab 仓库配置 Webhook +##### 进入Webhook配置界面`settings / webhooks` +![](https://picture.texous.cn/baiju/%E4%BB%93%E5%BA%93%E9%85%8D%E7%BD%AEwebhook.png) + +- URL:填写生成的 webhook 链接。比如: https://webhook.test.com/webhook/f93a7084-65b9-4d84-bf28-ae6cdaead1b2 +- Trigger:勾选需要推送的事件。 +- 当前支持的事件如下: + - Push events + - Tag push events + - Merge request events + - Pipeline events +- 勾选 Enable SSL verification +- 点击添加 + +##### 测试 Webhook +![](https://picture.texous.cn/baiju/webhook%E6%B5%8B%E8%AF%95.png) + +## 附加说明 + +### 企微用户无法被 @提及 + +#### MR 提交配置没有指定对应的负责人 +创建MR时需要填写 `Assignee` 字段指定对应的人 +![](https://picture.texous.cn/blog/20241226190024762.png) + +#### MR消息中相关负责人没有被@提醒 +![](https://picture.texous.cn/baiju/MR%E9%80%9A%E7%9F%A5%E7%BE%A4%E9%94%99%E8%AF%AF%E6%8F%90%E7%A4%BA.png) + +##### 造成上面错误的原因主要有两个: +- **第一种:** Gitlab 上用户名不规范:可以通过修改用户名解决 +- ![](https://picture.texous.cn/baiju/%E4%BF%AE%E6%94%B9%E7%94%A8%E6%88%B7%E5%90%8D.png) + +- **第二种:** 由于公司企微 `账户/userid` 生成策略的变化,导致无法直接通过 gitlab 用户名推导出 `账户/userid` +- 老员工企微 `账户/userid`:刘晓华(XianChaoHong) +- 新员工企微 `账户/userid`:刘晓华(d0a12021606f43f19f3e8583adf16fce) + +###### 按以下步骤解决问题: +- 找 `HR` 获取用户的企微账号 +- 在 [cloud-webhook-gitlab](http://git.keyfil.com/qifu-gateway/cloud-webhook-gitlab) 项目配置文件中添加映射 +- ![](https://picture.texous.cn/baiju/%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7%E6%98%A0%E5%B0%84.png) +- [jenkins]() 重新发布服务 +- ![](https://picture.texous.cn/baiju/%E9%87%8D%E5%8F%91webhook%E9%A1%B9%E7%9B%AE.png) +- 测试MR提醒 + +### 消息格式 +#### MR +``` +[@user](/link) 提交了一个 MR 从 [source](/source) 到 [target](/targer) +> 请求信息:[MR title](mrurl) +> 状态:status +> 仓库:[repo](repo) + +[@Assignee]() +``` \ No newline at end of file