SCIM 与 Okta
配置从 Okta 到 Activepieces 的 SCIM 用户供应。
前置条件
开始之前,请确保你拥有:
- 管理员权限可访问你的 Activepieces 平台
- 管理员权限可访问你的 Okta 租户
- 已配置 SSO(推荐):SAML 与 Okta
- 已从 Activepieces 应用的
/platform/security/api-keys路径生成 API 密钥
在 Okta 中配置 SCIM 连接
<img src="https://mintcdn.com/activepieces/Jz9nlyeTn6NzuJkR/resources/screenshots/scim/okta/enable-provisioning.png?fit=max&auto=format&n=Jz9nlyeTn6NzuJkR&q=85&s=40c716c7db9458c2abf5b69c69c0b165" alt="Okta 用户预配" width="1332" height="1406" data-path="resources/screenshots/scim/okta/enable-provisioning.png" />
* **SCIM base URL** 设置为 `https://your-activepieces-domain/api/v1/scim/v2`
* **Unique identifier field** 设置为 `userName`
* **Authentication mode** 设置为 `HTTP Header`
* **Authorization** 设置为 `Bearer <generated-api-key>`
<Tip>
在支持的预配操作中,我们支持所有 **Push** 操作。
</Tip>
配置属性映射
在 Provisioning -> To App -> Attribute Mappings 中,映射以下字段:
| Activepieces (SCIM) | Okta 值 |
|---|---|
userName | user.email |
givenName | user.firstName |
familyName | user.lastName |
email | user.email |
displayName | user.displayName |
平台角色映射
默认情况下,已预配的用户将拥有平台的 Member 角色。要在 Okta 中为用户指定角色,请按照以下步骤操作:
| 字段 | 值 |
| ----------------- | ------------------------------------------------------------------ |
| `Display name` | `platformRole` |
| `Variable name` | `platformRole` |
| `External name` | `platformRole` |
| `External namespace` | `urn:ietf:params:scim:schemas:activepieces:1.0:CustomUserAttributes` |
| `Enum` | `enabled` |
对于 **Attribute members**,添加:
| 显示名称 | 值 |
| ------------ | --------- |
| `ADMIN` | `ADMIN` |
| `MEMBER` | `MEMBER` |
| `OPERATOR` | `OPERATOR`|
<img src="https://mintcdn.com/activepieces/Jz9nlyeTn6NzuJkR/resources/screenshots/scim/okta/add-attribute.png?fit=max&auto=format&n=Jz9nlyeTn6NzuJkR&q=85&s=70f70664423a6b54d0795b3d9f10d203" alt="Okta 添加属性图" width="696" height="1328" data-path="resources/screenshots/scim/okta/add-attribute.png" />
最后点击保存。
* 返回 Activepieces 应用页面,进入 **Provisioning -> To App -> Attribute Mappings**
* 向下滚动并点击 **Show Unmapped Attributes**
* 编辑 `platformRole` 字段
* 在这里你需要从 Okta 用户资料中映射属性值。如果你在 Okta 用户资料中已经有一个角色字段,其值与 platformRole 的值(`ADMIN`、`MEMBER`、`OPERATOR`)完全匹配,那么你可以使用 `Map from Okta Profile` 选项直接选择它。否则,你可以使用[表达式](https://developer.okta.com/docs/reference/okta-expression-language/)基于 Okta 用户资料中的其他字段返回这三个角色之一。
以下是一个表达式示例:
<img src="https://mintcdn.com/activepieces/Jz9nlyeTn6NzuJkR/resources/screenshots/scim/okta/role-expression.png?fit=max&auto=format&n=Jz9nlyeTn6NzuJkR&q=85&s=62b00ad1a43ec2e5c45bb129ca34d0a1" alt="Okta 角色表达式示例" width="1630" height="790" data-path="resources/screenshots/scim/okta/role-expression.png" />
<Warning>
请确保返回值始终是 `ADMIN`、`MEMBER` 或 `OPERATOR` 之一。
</Warning>
预配和取消预配用户
预配
在 Activepieces 应用页面中,进入 Provisioning -> To App 并启用当 Okta 中发生变更时要应用于 Activepieces 的操作。
现在在 Assignments 标签页中,你可以:
-
选择预配单个用户或组。请注意,Okta 中的组将成为 Activepieces 中的项目。
-
如果你没有组,并且想一次预配所有 Okta 用户,你可以分配
Everyone组。 -
在分配的组(包括
Everyone)中编辑/创建用户时,他们应该在 Activepieces 中更新。 -
要将组推送到 Activepieces,请进入 Push groups 标签页,点击推送按钮,找到该组并保存。
取消预配
仅当用户在 Okta 中被停用时,他们在 Activepieces 中的状态才会切换为 INACTIVE。由于 Okta 的设计,Okta 中的挂起或删除操作不会反映到 Activepieces。
对于组,你可以在 Push groups 标签页中删除它们 -> 点击 Push Status 列中的按钮 -> Unlink pushed group -> 删除目标中的组。