跳到主要内容

多租户绑定概述

本文介绍当第三方应用也是多租户系统时,如何建立 IM 工作空间与第三方应用租户的绑定关系。

什么是多租户绑定?​

当您的应用是一个多租户系统(如 SaaS 应用)时,需要建立 IM 工作空间 与 第三方应用租户 的绑定关系。

绑定关系特点​

  • 一对一绑定 - 一个 IM 工作空间只能绑定到一个第三方应用租户
  • 双向唯一 - 一个第三方应用租户只能被一个 IM 工作空间绑定
  • 数据隔离 - 绑定后,该工作空间的用户只能访问对应租户的数据

绑定关系模型​

┌─────────────────────────────────────────────────────────────────┐
│ 绑定关系示意图 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ IM 系统 第三方应用(如 OA) │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 工作空间 A │──────────────│ 租户 1(公司A) │ │
│ │ (workspace_id=1)│ 绑定关系 │ (tenant_id=1) │ │
│ └─────────────────┘ └─────────────────┘ │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 工作空间 B │──────────────│ 租户 2(公司B) │ │
│ │ (workspace_id=2)│ 绑定关系 │ (tenant_id=2) │ │
│ └─────────────────┘ └─────────────────┘ │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 工作空间 C │ ✗ │ 租户 3(公司C) │ │
│ │ (workspace_id=3)│ 未绑定 │ (tenant_id=3) │ │
│ └─────────────────┘ └─────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘

两种绑定类型​

1. 工作空间绑定​

建立 IM 工作空间与第三方应用租户的绑定关系:

IM 工作空间第三方应用租户Bot Token
工作空间 A (id=1)租户 1 (公司A)token_xxx
工作空间 B (id=2)租户 2 (公司B)token_yyy

2. 用户绑定​

建立 IM 用户与第三方应用用户的绑定关系:

IM 用户第三方应用用户绑定方式
张三 (im_user_id=123)admin (user_id=1)installer_auto
李四 (im_user_id=456)zhangsan (user_id=2)manual

绑定时机​

工作空间绑定​

在 应用安装 时建立:

  1. 用户在 IM 中点击安装应用
  2. 跳转到第三方应用,用户登录并选择租户
  3. 确认安装后,建立工作空间与租户的绑定关系

用户绑定​

有三种绑定方式:

绑定方式binding_method触发时机说明
安装时自动绑定installer_auto应用安装时安装者自动绑定,无需手动操作
手动绑定manual首次 SSO 登录时其他用户需要手动登录并绑定
OAuth 绑定oauthOAuth 授权流程通过标准 OAuth 流程绑定

安装流程中的多租户处理​

典型场景​

场景 1:OA 系统集成​

公司 A 使用 IM 作为内部沟通工具,同时使用 OA 系统处理审批流程:

  1. 管理员在 IM 工作空间 A 中安装 OA 应用
  2. 登录 OA 系统,选择公司 A 的租户
  3. 建立绑定:工作空间 A ↔ OA 租户(公司A)
  4. 员工在 IM 中点击 OA 应用,自动登录到公司 A 的 OA 系统

场景 2:多公司集团​

集团下有多个子公司,每个子公司有独立的 IM 工作空间和 OA 租户:

子公司IM 工作空间OA 租户
子公司 A工作空间 1租户 1
子公司 B工作空间 2租户 2
子公司 C工作空间 3租户 3

每个子公司的员工只能访问自己公司的 OA 数据。

下一步​