在企业上云过程中,为降低维护和管理成本,通常需要将内部系统的账号同步至云端。通过SCIM(跨域身份管理系统)协议,结合阿里云IDaaS的OAuth应用安全授权,您可以将Okta中的用户或用户组同步到阿里云IDaaS,实现统一的身份管理。
适用范围
-
权限:具备阿里云IDaaS的管理员权限,以及Okta实例的超级管理员(Super Administrator)权限。
-
环境:Okta实例已启用SCIM 2.0支持。且已创建阿里云IDaaS的EIAM实例。
步骤一:在 IDaaS 的应用中配置SCIM同步
-
登录阿里云IDaaS控制台,单击左侧导航栏的EIAM 云身份服务,在右侧IDaaS下的实例列表中,定位目标实例,单击操作列下的访问控制台。
-
在应用身份服务页面的左侧导航栏中,选择,定位目标应用(标准协议或自研应用)并进入其详情页。如需创建标准协议或自研应用,请参见创建应用。
-
在应用详情页,参考IDaaS与应用间账户同步进行相关配置。
重要请确保在IDaaS应用中已启用API 开放。

-
在应用详情页,获取以下信息:
-
Bearer Token:在下,单击Bearer Token后的查看,复制并记录显示的Token。
-
SCIM Base URL:在下,复制并记录SCIM Base URL字段中显示的URL。
-
-
单击左侧导航栏的登录,在右侧的中根据实际需求设置合适的密码策略。
说明为确保密码同步成功,Okta 的密码策略必须严于或等同于 IDaaS 的密码策略。例如,若 IDaaS 要求密码至少8位且包含特殊字符,而 Okta 仅要求6位,则不符合 IDaaS 要求的密码将同步失败。因此,启用密码同步前,请确保 Okta 的密码策略满足 IDaaS 的所有要求。
步骤二:在Okta创建应用
-
若已在Okta中创建支持SAML SSO的应用,请直接进入步骤三。
-
如需创建新应用,可参考:在Okta创建支持SAML SSO的应用。应用创建完成后进入步骤三。
步骤三:在 Okta 中配置 SCIM 集成
启用 SCIM 配置
进入Okta 应用的详情页面,选择General页签,在App Settings区域右上角,单击Edit,设置 Provisioning为 SCIM。最后单击Save。
配置SCIM连接
-
配置连接信息。
单击Provisioning页签,在SCIM Connection区域,单击Edit并配置以下相关参数。
-
测试连接是否成功。
单击Test Connector Configuration,当提示Connector Configured successfully时,表示连接成功。
-
测试成功后,单击Save。
配置用户同步策略
-
选择,单击Provisioning to App右侧的Edit。
-
启用Create Users、Update User Attributes、Deactivate Users。
-
设置Sync Password。
-
不启用:为用户生成随机密码并从 Okta 同步到目标应用。
-
启动:需选择Password type。
-
Sync a randomly generated password:为用户生成随机密码并从 Okta 同步到目标应用。
-
Sync Okta Password:将用户在 Okta 中的账户登录密码同步到目标应用,使用户在 Okta 与目标应用中使用同一密码。
-
-
-
确认和设置Okta的密码策略。
单击左侧导航栏的,在Setup下,查找Name为Password的行,单击,即可设置密码策略。
说明为确保密码同步成功,Okta 的密码策略必须严于或等同于 IDaaS 的密码策略。例如,若 IDaaS 要求密码至少8位且包含特殊字符,而 Okta 仅要求6位,则不符合 IDaaS 要求的密码将同步失败。因此,启用密码同步前,请确保 Okta 的密码策略满足 IDaaS 的所有要求。
-
配置完成后,单击Save。
配置用户属性映射
通过属性映射,Okta可将用户数据推送到IDaaS,实现用户信息的自动配置与更新。在的Attribute Mappings区域,进行如下操作。
同步基础属性
在属性映射列表中,单击最右侧的
按钮,删除不相关的属性映射,仅保留以下属性映射。在身份提供商的属性映射配置中,设置以下 SCIM 用户属性映射:Username(userName)的值为 Sign On 设置中的配置;Given name(givenName)映射为 user.firstName;Family name(familyName)映射为 user.lastName;Email(email)映射为 user.email;Primary email type(emailType)映射为表达式 (user.email != null && user.email != "") ? 'work' : "";Display name(displayName)映射为 user.displayName;Primary phone(primaryPhone)映射为 user.primaryPhone;Primary phone type(primaryPhoneType)映射为表达式 (user.primaryPhone != null && user.primaryPhone != "") ? 'work' : ""。除 Username 外,所有属性的 Apply on 均设置为 Create and update。
同步其它属性(可选)
请根据实际需求进行配置。以下示例演示如何将 Okta 用户的 postalAddress 字段同步到 IDaaS 的扩展字段User Address。
-
在IDaaS中新增扩展字段。
-
在IDaaS 应用身份服务的,单击创建字段。
-
配置字段信息。
-
字段显示名称:在用户信息等页面显示的名称,便于查看和管理。例如:
User Address。 -
字段标识:系统使用的唯一标识符。例如:
user_address。 -
字段类型:字段的输入类型。例如:输入框。
-
-
在IDaaS 应用详情页,单击,设置如下信息。
-
自定义字段Namespace:
urn:ietf:params:scim:schemas:extension:customfield:2.0:User。 -
同步目标字段:指定需同步的目标字段,支持设置多个。例如:
User Address(user_address)。
-
-
单击保存。
-
-
在Okta中增加属性映射。
-
在Okta的Profile Editor页面,单击Attributes区域下的Add Attribute。
-
设置属性信息。
-
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。
-
-
单击Save。
-
设置属性映射。
-
单击Attributes区域下的Mappings,在弹出的面板中选择Okta User to [目标应用名称]。
-
在右侧列表底部找到目标属性(例如:
user_address),从左侧下拉列表中选择Okta的用户信息字段(例如:user.postalAddress)。 -
单击 Save Mappings,随后单击Apply updates。
-
-
同步用户和用户组
-
同步用户。
-
进入Okta 应用的详情页面,选择Assignments页签,单击。
-
定位需要同步的用户,单击其所在行的Assign。
-
在Assign [目标应用名称] to People页面,根据实际需求修改相关属性,随后依次单击Save and Go Back和Done。
-
-
同步用户组。
-
进入Okta 应用的详情页面,选择Push Groups页签,单击。
-
输入用户组名称并选择目标用户组,单击Save。当Push Status由Pushing变为Active时,表示用户组同步成功。
-
步骤四:验证同步效果
-
登录阿里云IDaaS控制台,单击目标实例的访问控制台,进入应用身份服务管理后台。
-
单击左侧导航栏的,即可在右侧账户列表中查看同步成功的用户。其来源显示为SCIM 导入。
说明若当前已设置从Okta同步用户信息至IDaaS的扩展字段,则可单击用户的账户名,进入账户详情,在区域查看。
-
单击左侧导航栏的,即可在右侧组列表中查看同步成功的组。其来源显示为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 的所有要求。
-
启用密码同步:
-
在Okta应用详情页,进入 Provisioning 选项卡。开启 Sync Password。
-
根据需求选择密码类型:
-
Sync a randomly generated password:为每个用户生成随机密码并同步至IDaaS。
-
Sync Okta Password:将用户在Okta中的登录密码同步到IDaaS。
-
-
-
设置密码策略:
-
IDaaS中设置密码策略:登录IDaaS控制台,单击目标实例的访问控制台,进入应用身份服务管理后台。单击左侧导航栏的登录,即可在右侧的中设置密码策略。
-
Okta中设置密码策略:在Okta的Admin Console,单击左侧导航栏的,在Setup下,查找Name为Password的行,单击,即可设置密码策略。
-
如何触发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中,管理员需要手动清理这些数据。
-