# sync_ding_to_ldap **Repository Path**: fency/sync_ding_to_ldap ## Basic Information - **Project Name**: sync_ding_to_ldap - **Description**: 定时自动同步公司钉钉通讯录至LDAP(组织架构、人员信息),实现入职、离职的自动化账号创建 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2024-08-15 - **Last Updated**: 2024-08-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 软件功能 定期同步钉钉通讯录(组织架构、员工信息),实现入职、离职账号自动创建、锁定等能力 ### 部署方式 参考k8s目录下的yaml,调整configmap配置后直接部署 ### LDAP结构设计 - 根OU设计: 1. Blocked ou:离职员工自动移动到此ou,并锁定 2. Group ou:权限组,用于对接其他应用系统,例如Wiki、Rancher、SVN等内部服务,分别创建group并单独配置组内用户 3. People ou:定时从钉钉同步过来的组织架构和人员信息 ![](https://img-1257855627.cos.ap-shanghai.myqcloud.com/2023-10-26-TkMiol.png) - 用户信息 这里使用ldap用户的sn属性和钉钉的userid对应,成为后期判断用户唯一的关键属性。用户密码自动随机生成 ![](https://img-1257855627.cos.ap-shanghai.myqcloud.com/2023-10-26-7hnitj.png) #### 钉钉开放平台配置 1. 钉钉开放平台创建应用 钉钉开放平台地址:https://open-dev.dingtalk.com/fe/app#/appMgr/inner/h5/1244797768/1 登录钉钉开放平台,创建"应用开发",获取AppKey和AppSecret等信息 ![](https://img-1257855627.cos.ap-shanghai.myqcloud.com/2023-07-17-ONYCnY.png) 2. 出现下面的报错,需要调整白名单 {'errcode': 60020, 'errmsg': '访问ip不在白名单之中,请参考FAQ:https://open.dingtalk.com/document/org-faq/app-faq,request ip=122.234.172.133 appKey(ding3oxatrrm0liubnaa)'} ![](https://img-1257855627.cos.ap-shanghai.myqcloud.com/2023-07-17-IAEd4W.png) ## 创建用于读取企业通讯录的钉钉应用 > **说明**:统一认证系统需要从钉钉OpenAPI接口读取企业通讯录信息(包含部门、员工信息),周期性探测,从而实现员工入职、离职信息的获取。为了实现此功能,需申请钉钉应用,并赋予通讯录相关权限。以下为操作说明 1. 进入钉钉开放平台 平台地址: https://open-dev.dingtalk.com 依次点击"应用开发"-"创建应用" ![](https://img-1257855627.cos.ap-shanghai.myqcloud.com/2023-07-17-4eW26i.png) 2. 填写应用信息,点击确定创建 3. 进入应用管理 点击应用名称,将应用信息中的AgentId,AppKey,AppSecret信息保存,发送给研发人员 ![](https://img-1257855627.cos.ap-shanghai.myqcloud.com/2023-07-17-Aq3PSF.png) 4. 配置IP白名单 服务器出口IP:221.228.10.86(换成你自己的) 应用首页地址:https://www.dingtalk.com ![](https://img-1257855627.cos.ap-shanghai.myqcloud.com/2023-07-17-knM6oy.png) 5. 配置权限 进入"权限管理"页面,开通以下四个权限,则研发人员可通过钉钉OpenAPI接口获取以下信息: - 企业员工手机号信息 - 邮箱等个人信息 - 通讯录部门信息读权限 - 通讯录部门成员读权限 ![](https://img-1257855627.cos.ap-shanghai.myqcloud.com/2023-07-17-hIwGFC.png)