Google Workspace 同步器
Google Workspace同步器使用Google Admin SDK目录API,将Google Workspace(原G Suite)中的用户导入Casdoor。
先 决条件
在配置同步器之前,使用域级委派并启用Admin SDK,设置一个Google Cloud服务账号。
步骤 1:创建服务账号
导航至Google Cloud控制台并创建一个服务账号:
- 转到IAM与管理员→服务账号→创建服务账号
- 为服务账号输入名称和描述
- 点击创建并继续
- 为服务账号授予服务账号用户角色(可选)
- 点击完成
步骤2:生成服务账号密钥
创建服务账号后,生成一个JSON密钥:
- 单击您刚刚创建的服务账号
- 转到密钥选项卡
- 点击添加密钥→创建新密钥
- 选择JSON格式
- 单击创建并安全地保存下载的JSON文件
步骤3:启用Admin SDK API
为您的Google Cloud项目启用Admin SDK API:
- 前往API与服务→库
- 搜索“Admin SDK API”
- 点击它并点击启用
步骤4:配置域级委派
在 Google Workspace 管理员中设置全域委派:
- 在服务帐号详情中,复制客户端 ID
- 前往 Google Workspace 管理控制台
- 导航至安全→访问与数据控制→API 控制
- 单击管理域级委派
- 点击添加新项
- 粘贴服务帐号客户端 ID
- 添加 OAuth 范围:
https://www.googleapis.com/auth/admin.directory.user.readonly - 点击授权
提示
admin.directory.user.readonly范围允许同步器以只读模式读取您Google Workspace域中的用户个人资料。
配置
要在Casdoor中创建Google Workspace同步器:
- 导航至同步器选项卡
- 点击添加以创建新的同步器
- 填写以下必填字段:
| 字段 | 描述 |
|---|---|
| 组织 | 将导入用户的Casdoor组织 |
| 姓名 | 此同步器的唯一标识符 |
| 类型 | 选择“Google Workspace” |
| 管理员邮箱 | Google Workspace 管理员用户的电子邮件地址(例如:admin@yourdomain.com) |
| 服务账号密钥 | 粘贴服务账号密钥文件的完整JSON内容 |
对于Google Workspace同步器,数据库相关字段(数据库类型、端口、数据库、表)请留空。
字段映射
同步器会自动将Google Workspace用户属性映射到Casdoor用户字段:
| Google Workspace字段 | Casdoor字段 | 描述 |
|---|---|---|
| id | Id | 用户的唯一标识符 |
| primaryEmail | 主电子邮件地址 | |
| name.fullName | Name | 全名 |
| name.givenName | FirstName | 名 |
| name.familyName | LastName | 姓 |
| phones[0].value | Phone | 主电话号码 |
| isAdmin | IsAdmin | 管理员状态 |
| suspended | IsForbidden | 账户暂停状态 |
信息
Google Workspace 的 suspended: true 映射到 Casdoor 的 IsForbidden: true。
组同步
Google Workspace 同步器还可以将组及其成员关系同步到 Casdoor。 组同步会与用户同步自动运行——无需单独配置步骤。
要启用群组同步,服务帐号需要在 Google Workspace 管理控制台中获得额外的 OAuth 范围授权:
https://www.googleapis.com/auth/admin.directory.group.readonly
<b请以与用户范围相同的方式,在“管理域级委派”下添加此范围。 一旦获得授权,同步器将从域中获取所有组,并为相应的Casdoor用户分配成员资格。
运行同步器
- 单击测试连接以验证凭据和权限
- 切换已启用并单击同步以立即运行。
- 同步器会从域中获取所有用户和组,并自动处理分页。