跳到主内容

DingTalk同步器

钉钉同步器会将您钉钉组织中的用户导入Casdoor。 它使用钉钉API从所有部门获取用户,并保持数据同步。

配置

必填字段:

  • 组织: 导入用户的Target Casdoor组织
  • 名称:此同步器的唯一标识符
  • 类型:选择“DingTalk”
  • 应用密钥: 您的钉钉应用的应用密钥
  • 应用密钥: 您的钉钉应用的应用密钥

设置步骤

步骤1:获取钉钉应用凭证

访问您的钉钉开放平台,并创建或选择一个现有应用。 您需要从应用设置中获取两个关键信息:

应用密钥用作您的应用程序的公开标识符,而应用密钥则用作您的私有身份验证令牌。 两者对于在Casdoor与您的钉钉组织之间建立安全的API通信都至关重要。

请导航至您应用的管理界面以查找这些凭据。 请妥善保管应用密钥,因为它可为您提供对贵组织用户目录的完全访问权限。

步骤2:在Casdoor中进行配置

打开“同步器”选项卡,并创建一个类型为“钉钉”的新同步器。 在相应字段中输入您的应用密钥和应用密钥。 同步器无需数据库配置字段,因为它直接连接到钉钉的API。

保存配置后,请使用测试连接按钮,以验证Casdoor能否成功与您的钉钉组织进行身份验证。

字段映射

同步器将钉钉用户属性映射到Casdoor字段如下:

钉钉字段钉钉字段描述
useridId用户的唯一标识符
unionidName唯一用户标识符(如果为空,则回退到userid)
nameDisplayName用户显示名称
emailEmail电子邮件地址
mobilePhone手机号码
avatarAvatar个人资料图片URL
titleTitle职位或岗位
activeIsForbidden账户状态(反向)

账户状态映射呈反向关系:当钉钉用户被标记为非活跃(active: false)时,他们在Casdoor中会显示为被禁止(IsForbidden: true)。 活跃的钉钉用户会正常同步为Casdoor账户。

同步器在Casdoor中使用unionid作为用户名,与OAuth提供商的行为保持一致。 这确保了通过OAuth登录的用户和通过同步器导入的用户保持一致的身份。 unionid字段提供了一个稳定的标识符,即使员工编号或其他属性发生变化,该标识符也能保持不变。

自定义字段映射

默认情况下,同步器会将一组固定的钉钉字段映射到Casdoor字段,如上表所示。 如果您的组织需要不同的映射,请在同步器上配置表列。 当至少定义了一列时,同步器将使用您的自定义映射,而非默认值。

每个列条目都包含一个名称(钉钉源字段),并将其映射到相应的Casdoor字段。 支持的钉钉源字段名称如下:

钉钉字段描述
userid钉钉中的用户唯一标识符
unionid跨应用稳定标识符
name显示名称
emailEmail address
mobile手机号码
avatar个人资料图片URL
title职位名称
job_number员工编号
active账户状态(反转为IsForbidden

表列为空时,同步器会回退到其内置映射。

部门和小组同步

DingTalk 同步器还会将部门同步为 Casdoor 群组。 对于您组织中的每个部门,同步器会获取部门ID和显示名称,并在Casdoor中创建相应的组。 每个用户的部门成员身份都会映射到小组分配,因此同步后用户会被放置在正确的小组中。

部门发现为递归:从根部门开始,同步器会针对每个父部门调用topapi/v2/department/listsub,并遍历整个树的深度。 这确保了任何层级嵌套的子部门都会被包含在内,而不仅仅是根部门的直接子部门。 然后,通过topapi/v2/department/get单独获取部门详情。 如果部门查找失败,则跳过该步骤,同步过程将继续进行。

OAuth登录绑定

当用户从钉钉同步时,其钉钉unionid会存储在Casdoor用户的dingtalk字段中。 因此,已同步的用户可通过钉钉OAuth提供商登录,无需单独的账号绑定步骤。

运行同步器

通过已启用开关启用同步器,以激活计划同步。 对于即时导入,单击同步按钮以触发手动同步运行。

同步器会自动从您钉钉组织的各个部分获取用户和部门,并在用户隶属于多个部门时进行去重处理。 分页由内部管理,确保无论组织规模如何,都能实现完全同步。