通过SCIM同步Okta用户或用户组

在企业上云过程中,为降低维护和管理成本,通常需要将内部系统的账号同步至云端。通过SCIM(跨域身份管理系统)协议,结合阿里云IDaaSOAuth应用安全授权,您可以将Okta中的用户或用户组同步到阿里云IDaaS,实现统一的身份管理。

适用范围

  • 权限:具备阿里云IDaaS的管理员权限,以及Okta实例的超级管理员(Super Administrator)权限。

  • 环境:Okta实例已启用SCIM 2.0支持。且已创建阿里云IDaaSEIAM实例。

步骤一:在 IDaaS 的应用中配置SCIM同步

  1. 登录阿里云IDaaS控制台,单击左侧导航栏的EIAM 云身份服务,在右侧IDaaS下的实例列表中,定位目标实例,单击操作列下的访问控制台

  2. 应用身份服务页面的左侧导航栏中,选择应用管理 > 应用列表定位目标应用(标准协议自研应用)并进入其详情页。如需创建标准协议自研应用请参见创建应用

  3. 在应用详情页,参考IDaaS与应用间账户同步进行相关配置。

    重要

    请确保IDaasAPI开放状态为已启用。image

  4. 在应用详情页,获取以下信息:

    • Bearer Token:在账户同步 > 应用同步到IDaaS下,单击Bearer Token后的查看,复制并记录显示的Token。

    • SCIM Base URL:在账户同步 > 应用同步到IDaaS下,复制并记录SCIM Base URL字段中显示的URL。

  5. 单击左侧导航栏的登录,在右侧的密码策略 > 复杂度中根据实际需求设置合适的密码策略。

    说明

    为确保密码同步成功,Okta 的密码策略必须严于或等同于 IDaaS 的密码策略。例如,若 IDaaS 要求密码至少8位且包含特殊字符,而 Okta 仅要求6位,则不符合 IDaaS 要求的密码将同步失败。因此,启用密码同步前,请确保 Okta 的密码策略满足 IDaaS 的所有要求。

步骤二:Okta创建应用

  • 若已在Okta中创建支持SAML SSO的应用,请直接进入步骤三。

  • 如需创建新应用,可参考:Okta创建支持SAML SSO的应用。应用创建完成后进入步骤三。

步骤三:在 Okta 中配置 SCIM 集成

启用 SCIM 配置

进入Okta 应用的详情页面,选择General页签,在App Settings区域右上角,单击Edit,设置 ProvisioningSCIM。最后单击Saveimage

配置SCIM连接

  1. 配置连接信息。

    单击Provisioning页签,在SCIM Connection区域,单击Edit并配置以下相关参数。

    • SCIM connector base URL :设置为步骤一中获取的 SCIM Base URL

    • Unique identifier field for users:填写userName

    • Supported provisioning actions:选择Push New UsersPush Profile UpdatesPush Groups,用于推送新用户、个人资料更新和组信息。

    • Authentication Mode:选择 HTTP Header

    • Authorization: 设置为步骤一中获取的 Bearer Token

  2. 测试连接是否成功。

    单击Test Connector Configuration,当提示Connector Configured successfully时,表示连接成功。

  3. 测试成功后,单击Save

配置用户同步策略

  1. 选择Provisioning > To App,单击Provisioning to App右侧的Edit

  2. 启用Create UsersUpdate User AttributesDeactivate Users

  3. 设置Sync Password

    • 不启用:为用户生成随机密码并从 Okta 同步到目标应用。

    • 启动:需选择Password type

      • Sync a randomly generated password:为用户生成随机密码并从 Okta 同步到目标应用。

      • Sync Okta Password:将用户在 Okta 中的账户登录密码同步到目标应用,使用户在 Okta 与目标应用中使用同一密码。

  4. 确认和设置Okta的密码策略。

    单击左侧导航栏的Security > Authenticators,在Setup下,查找NamePassword的行,单击Actions > Edit,即可设置密码策略。

    说明

    为确保密码同步成功,Okta 的密码策略必须严于或等同于 IDaaS 的密码策略。例如,若 IDaaS 要求密码至少8位且包含特殊字符,而 Okta 仅要求6位,则不符合 IDaaS 要求的密码将同步失败。因此,启用密码同步前,请确保 Okta 的密码策略满足 IDaaS 的所有要求。

  5. 配置完成后,单击Save

配置用户属性映射

通过属性映射,Okta可将用户数据推送到IDaaS,实现用户信息的自动配置与更新。在Provisioning > To AppAttribute Mappings区域,进行如下操作。

同步基础属性

在属性映射列表中,单击最右侧的image按钮,删除不相关的属性映射,仅保留下图所示的属性映射。0d7a604f2f42c85a03a17db8b869a3f9

同步其它属性(可选)

说明

请根据实际需求进行配置。以下示例演示如何将 Okta 用户的 postalAddress 字段同步到 IDaaS 的扩展字段User Address

  1. IDaaS中新增扩展字段

    1. IDaaS 应用身份服务账户 > 字段管理 > 扩展字段,单击创建字段

    2. 配置字段信息。

      • 字段显示名称:在用户信息等页面显示的名称,便于查看和管理。例如:User Address

      • 字段标识:系统使用的唯一标识符。例如:user_address

      • 字段类型:字段的输入类型。例如:输入框。

    3. IDaaS 应用详情页,单击账户同步 > 应用同步到IDaaS > 显示高级配置,设置如下信息。

      • 自定义字段Namespaceurn:ietf:params:scim:schemas:extension:customfield:2.0:User

      • 同步目标字段:指定需同步的目标字段,支持设置多个。例如:User Address(user_address)

    4. 单击保存

  2. Okta中增加属性映射。

    1. OktaProfile Editor页面,单击Attributes区域下的Add Attribute

    2. 设置属性信息。

      • Display name:在 Okta 管理界面中显示的名称,便于管理员识别。例如:User Address

      • Variable name:在 Okta 系统内部使用的唯一、不可变的标识符,用于 API 和表达式引用。必须和IDaaS中的字段标识保持一致。例如:user_address

      • Data type:属性类型。必须与IDaaS中字段的数据类型匹配。例如:string

      • External name:在外部系统中对应的字段名称。必须和IDaaS中的字段标识保持一致。例如:user_address

      • External namespace:用于限定External name所属架构或标准的唯一标识,避免命名冲突。必须和IDaaS应用中设置的自定义字段Namespace保持一致。设置为:urn:ietf:params:scim:schemas:extension:customfield:2.0:User

    3. 单击Save

    4. 设置属性映射。

      1. 单击Attributes区域下的Mappings,在弹出的面板中选择Okta User to [目标应用名称]

      2. 在右侧列表底部找到目标属性(例如:user_address),从左侧下拉列表中选择Okta的用户信息字段(例如:user.postalAddress)。

      3. 单击 Save Mappings,随后单击Apply updates

同步用户和用户组

  • 同步用户。

    1. 进入Okta 应用的详情页面,选择Assignments页签,单击Assign > Assign to People

    2. 定位需要同步的用户,单击其所在行的Assign

    3. Assign [目标应用名称] to People页面,根据实际需求修改相关属性,随后依次单击Save and Go BackDone

  • 同步用户组。

    1. 进入Okta 应用的详情页面,选择Push Groups页签,单击Push Groups > Find groups by name

    2. 输入用户组名称并选择目标用户组,单击Save。当Push StatusPushing变为Active时,表示用户组同步成功。

步骤四:验证同步效果

  1. 登录阿里云IDaaS控制台,单击目标实例的访问控制台进入应用身份服务管理后台。

  2. 单击左侧导航栏的账户 > 账户与组织,即可在右侧账户列表中查看同步成功的用户。其来源显示为SCIM 导入

    说明

    若当前已设置从Okta同步用户信息至IDaaS扩展字段,则可单击用户的账户名,进入账户详情,在账户信息 > 扩展字段区域查看。

  3. 单击左侧导航栏的账户 > ,即可在右侧列表中查看同步成功的组。其来源显示为SCIM 导入

常见问题

创建用于同步的Okta应用是什么类型?

Okta中创建用于与阿里云IDaaS同步的应用时,应选择SAML 2.0。此类型的应用允许通过标准的SCIM协议来同步用户和组信息。

若未启用Okta同步密码,是否仍会同步密码?

若未启用密码同步,Okta在通过SCIM创建用户时仍会在请求中包含 password 字段,但其值为随机生成的占位符非用户真实密码。详情请参见Okta SCIM 2.0用户创建与密码同步指南

  • 为什么发送占位符:

    • 满足部分系统对SCIM协议的格式要求(某些系统强制要求 password 字段存在)。

    • 避免因缺少字段导致创建请求被拒绝。

  • 对实际使用的影响:

    • 目标应用的密码认证流程不受此占位符影响,用户需通过其他方式(如手动重置、独立密码策略)设置实际密码。

    • 占位符密码无实际意义,不会泄露或匹配用户真实凭证,无需额外处理。

Okta密码同步的逻辑是什么?如何处理密码强度不一致导致的同步失败?

为确保密码同步成功,Okta 的密码策略必须严于或等同于 IDaaS 的密码策略。例如,若 IDaaS 要求密码至少8位且包含特殊字符,而 Okta 仅要求6位,则不符合 IDaaS 要求的密码将同步失败。因此,启用密码同步前,请确保 Okta 的密码策略满足 IDaaS 的所有要求。

  • 启用密码同步

    1. Okta应用详情页,进入 Provisioning 选项卡。开启 Sync Password

    2. 根据需求选择密码类型:

      • Sync a randomly generated password:为每个用户生成随机密码并同步至IDaaS。

      • Sync Okta Password:将用户在Okta中的登录密码同步到IDaaS。

  • 设置密码策略

    • IDaaS中设置密码策略:登录IDaaS控制台,单击目标实例的访问控制台,进入应用身份服务管理后台。单击左侧导航栏的登录,即可在右侧的密码策略 > 复杂度中设置密码策略。

    • Okta中设置密码策略:在OktaAdmin Console,单击左侧导航栏的Security > Authenticators,在Setup下,查找NamePassword的行,单击Actions > Edit,即可设置密码策略。

如何触发Okta用户的同步操作?

  • 自动同步: 配置完成后,当用户被分配到Okta中的IDaaS应用时,系统自动发起同步。

  • 手动推送: 管理员可以通过Okta界面手动触发用户或用户组的同步操作。例如,点击Push Groups页签,选择用户组并点击Save,系统会自动开始同步并将状态由Pushing变为Active

  • 事件驱动同步: 当用户属性发生变化时(如新增、修改、删除),Okta会根据配置的Push Profile Updates选项自动触发同步。

是否支持删除已同步的Okta用户或用户组?取消授权同步会产生什么影响?

  • 删除Okta中的用户或用户组:

    • 若在Okta中删除某个用户或用户组,该变更会根据配置同步到IDaaS中。

    • RAM用户无启用/禁用状态,因此即使Okta中标记为“Inactive”的用户,也不会在RAM中被禁用或删除。

    • IDaaS不支持直接同步Okta对用户的“Inactive”状态,因此同步到RAM的用户不做变更。

  • 取消授权同步:

    • 如果在Okta中取消某个用户的应用授权,该用户将不再同步到IDaaS中。此时,IDaaS中的对应用户记录不会被删除,但会被标记为未授权状态。

    • 取消授权后,用户的相关数据(如账户信息、组信息等)将停留在IDaaS中,管理员需要手动清理这些数据。