
# 准备工作
OneAccess提供身份数据同步的功能，数据同步的关系模型可以理解为"上游---中游---下游"。其中"上游"指各种核心身份源，例如钉钉、企业微信、HR系统、也可以是OneAccess本身的身份管理模块，"中游"即OneAccess，"下游"指各类需要和上游保持同步的应用系统。通过该模型，OneAccess可以将上游的身份数据实时传递到下游，从而保证人员的入、离、调、转等行为能够快速准确的传递到下游各个应用系统中，实现用户的全生命周期管理，从而保障身份数据的实时同步与安全。
为了同步OneAccess数据至企业应用，企业应用需提前按照数据格式开发同步事件接口，具体请参考[调用说明](https://support.huaweicloud.com/devg-oneaccess/oneaccess_06_0012.html)和[API](https://support.huaweicloud.com/devg-oneaccess/oneaccess_06_0013.html)。
下面将为您介绍通过事件回调方式同步OneAccess数据至应用的操作步骤：
1. [企业管理员在管理门户配置事件回调]。
2. [新增、修改、删除用户]。
3. [新增、修改、删除组织]。
4. [同步事件]。
5. [全量同步]。
6. [同步状态说明]。
 #### 事件回调配置
本节主要介绍企业管理员在OneAccess管理门户配置事件回调的方法。
1. 登录OneAccess管理门户。
2. 在导航栏中，单击"资源 \> 应用"。
3. 在企业应用页面，单击自建应用下的"添加自建应用"，设置Logo和名称，单击"保存"。
4. 单击[3]创建的应用，在应用信息页面，在通用信息模块，单击"同步集成"后的![](https://support.huaweicloud.com/devg-oneaccess/zh-cn_image_0000001162406406.png)，开启同步集成并设置同步集成方式为事件回调。单击"保存"。
   
   图1开启事件回调   
   ![](https://support.huaweicloud.com/devg-oneaccess/zh-cn_image_0000001435507904.png)
   
   
5. 在通用信息模块，单击"同步集成"后的"配置"进入"参数配置"页签，根据[表1]说明，配置参数，单击"保存"。
   
    表1配置参数 
   | 参数       | 说明                                              |
   |:---|:---|
   | \* 回调URL | 企业应用用来接收OneAccess推送事件的地址。                       |
   | \* 安全令牌  | 每个事件回调接口中的请求头携带Bear token，企业应用的回调服务需要进行鉴权。      |
   | 加解密算法    | 推荐使用AES/GCM/NoPadding（默认），NULL为不加密，有安全风险，请谨慎使用。 |
   | 加密密钥     | 用密钥对消息进行加密，默认为空，不为空时长度必须为16位。                   |
   | 签名密钥     | 使用签名密钥根据消息内容生成数据签名，默认为空，不为空时长度必须为16位。           |
      
   
   
6. （可选）单击应用图标，在左侧导航栏选择"同步集成 \> 常规配置 "，可修改同步时的映射关系，包括删除账号、删除机构和禁用账号。
7. （可选）单击应用图标，在左侧导航栏选择"对象模型 \> 应用机构模型"，单击![](https://support.huaweicloud.com/devg-oneaccess/zh-cn_image_0000001162406406.png)开启应用机构。
   
   ![](https://support.huaweicloud.com/devg-oneaccess/public_sys-resources/note_3.0-zh-cn.png)
   开启应用机构是为了同步机构数据至企业应用。如果您不需要同步机构数据，可忽略此步骤。
   
   
8. （可选）配置机构属性与映射。如果您只需要同步机构的内置属性，可忽略此步骤。
   
   1. 在左侧导航栏选择"对象模型 \> 应用机构模型"，在属性定义页签，单击"添加"，可配置同步至企业应用的机构属性。
      ![](https://support.huaweicloud.com/devg-oneaccess/public_sys-resources/note_3.0-zh-cn.png)
      - 当同步内置属性至企业应用时，需与应用机构模型中内置属性的属性名保持一致。
      
      - 当同步非内置属性至企业应用时，需与企业管理员设置的属性名保持一致。
       
      表2属性参数 
      | 参数      | 说明                                                                                                                                         |
      |:---|:---|
      | \* 属性名  | 同步至企业应用的字段标识，可自定义，设置成功后不支持修改。                                                                                                              |
      | 显示标签    | 机构的属性名称。建议与**属性名**对应。                                                                                                                      |
      | 描述      | **属性名**字段的填写说明。                                                                                                                            |
      | \* 属性类型 | **属性名**字段的填写类型，可在下拉框选择，设置成功后不支持修改。                                                                                                         |
      | 格式      | **属性类型的格式。** 当**属性类型** 选择**文本**时，可在下拉框选择。                                                                                                  |
      | 是否必填    | 默认不勾选，即非必填。                                                                                                                                |
      | 是否唯一    | 当"属性类型"选择为"文本"时，可设置是否唯一。勾选后，同步机构数据至应用时，该属性的值具有唯一性，重复时，会提示"{显示标签}"已存在。                                                                      |
      | 是否敏感    | 当"属性类型"选择文本时才需要设置该参数，勾选后，同步机构数据至应用时，数据隐藏展示，单击![](https://support.huaweicloud.com/devg-oneaccess/zh-cn_image_0000001568751273.png)可以看到数据内容。 |
         
      
   
   2. 在映射定义页签，单击"编辑"，设置机构属性的映射方式。
      ![](https://support.huaweicloud.com/devg-oneaccess/public_sys-resources/note_3.0-zh-cn.png)
      - 当映射定义的转换方式选择脚本转换时，脚本编写请参考[如何开发映射脚本](https://support.huaweicloud.com/devg-oneaccess/oneaccess_06_0002.html)。
      
      - 为了避免同步异常，建议添加的机构属性与需要映射的组织属性类型保持一致。
       
      表3映射参数 
      | 参数    | 说明                                             |
      |:---|:---|
      | 组织    | 映射至**应用机构**的组织属性，可在下拉框选择。                      |
      | 转换方式  | **组织** 属性与**应用机构**之间的映射方式，可在下拉框选择。             |
      | 脚本表达式 | **转换方式** 为**脚本转换**时，填写具体的映射脚本。                 |
      | 执行方式  | **组织** 属性与**应用机构**之间映射的同步方式，可在下拉框选择。           |
      | 应用机构  | [1]中定义的机构属性。 |
         
      
   
   3. 在"常规配置"页签，"删除系统组织"默认配置为删除应用机构，"禁用系统组织"默认配置为禁用应用机构。单击"编辑"可以修改配置，其中"删除系统组织"可以配置为禁用应用机构或不影响；"禁用系统组织"可配置为不影响。修改完成后，单击"保存"即可生效。
   
   
   
   
9. （可选）配置账号属性和映射。如果您只需要同步账号的内置属性，可忽略此步骤。
   
   1. 选择"对象模型 \> 应用账号模型"，在"属性定义"页签单击"添加"，可配置同步至企业应用的账号属性。
      ![](https://support.huaweicloud.com/devg-oneaccess/public_sys-resources/note_3.0-zh-cn.png)
      - 当同步内置属性至企业应用时，需与应用账号模型中内置属性的属性名保持一致。
      
      - 当同步非内置属性至企业应用时，需与企业管理员设置的属性名保持一致。
       
      表4属性参数 
      | 参数      | 说明                                                                                                                                         |
      |:---|:---|
      | \* 属性名  | 同步至企业应用的字段标识，可自定义，设置成功后不支持修改。                                                                                                              |
      | \* 显示标签 | 账号的属性名称。建议与**属性名**对应。                                                                                                                      |
      | 描述      | **属性名**字段的填写说明。                                                                                                                            |
      | \* 属性类型 | **属性名**字段的填写类型，可在下拉框选择，设置成功后不支持修改。                                                                                                         |
      | 格式      | **属性类型的格式。** 当**属性类型** 选择**文本**时，可在下拉框选择。                                                                                                  |
      | 是否必填    | 默认不勾选，即非必填。                                                                                                                                |
      | 是否唯一    | 当"属性类型"选为"文本"时，可设置是否唯一。勾选后，同步用户数据至应用时，该属性的值具有唯一性，重复时，会提示"{显示标签}"已存在。                                                                       |
      | 是否敏感    | 当"属性类型"选择文本时才需要设置该参数，勾选后，同步用户数据至应用时，数据隐藏展示，单击![](https://support.huaweicloud.com/devg-oneaccess/zh-cn_image_0000001706095477.png)可以看到数据内容。 |
         
      
   
   2. 在映射定义页签，单击"编辑"，设置机构属性的映射方式。
      ![](https://support.huaweicloud.com/devg-oneaccess/public_sys-resources/note_3.0-zh-cn.png)
      - 当映射定义的转换方式选择脚本转换时，脚本编写请参考[如何开发映射脚本](https://support.huaweicloud.com/devg-oneaccess/oneaccess_06_0002.html)。
      
      - 为了避免同步异常，建议添加的账号属性与需要映射的用户属性类型保持一致。
       
      表5映射参数 
      | 参数    | 说明                                                 |
      |:---|:---|
      | 系统用户  | 映射至**应用账号**的用户属性，可在下拉框选择。                          |
      | 转换方式  | **用户** 属性与**应用账号**之间的映射方式，可在下拉框选择。                 |
      | 脚本表达式 | **转换方式** 为**脚本转换**时，填写具体的映射脚本。                     |
      | 执行方式  | **用户** 属性与**应用账号**之间映射的同步方式，可在下拉框选择。               |
      | 应用账号  | [1]中定义的账号属性。 |
         
      
   
   3. 在"常规配置"页签，"删除系统用户"默认配置为删除应用账号，"禁用系统用户"默认配置为禁用应用账号。单击"编辑"，可以修改配置，其中"删除系统用户"如果选择禁用或保留应用账号，由于用户已删除，账号会自动变更为孤儿账号；"禁用系统用户"可以改成保留应用账号。修改完成后，单击"保存"即可生效。
   
   
   
   
 
 #### 新增、修改、删除用户
本节主要介绍企业管理员在OneAccess管理门户同步用户的方法。
- 新增用户 选择"授权管理 \> 应用账号"，单击"添加账号"，勾选需要同步的账号。如需根据**授权策略** 同步账号，请参考[应用账号授权策略](https://support.huaweicloud.com/usermanual-oneaccess/oneaccess_03_0117.html#section3)。
  

- 修改用户
  选择"用户 \> 组织与用户"，在用户列表页面，鼠标放置在目标用户名右侧状态栏下方单击![](https://support.huaweicloud.com/devg-oneaccess/zh-cn_image_0000001303753813.png)，弹出"编辑用户"弹框，更新用户信息。
  图2编辑用户   
  ![](https://support.huaweicloud.com/devg-oneaccess/zh-cn_image_0000001144360963.png) 
- 删除用户
  选择"用户 \> 组织与用户"，在用户列表页面，单击某一用户后的![](https://support.huaweicloud.com/devg-oneaccess/zh-cn_image_0000001303756589.png)，单击"删除"删除用户。
  图3删除用户   
  ![](https://support.huaweicloud.com/devg-oneaccess/zh-cn_image_0000001144401521.png) 
 
 #### 新增、修改、删除组织
本节主要介绍企业管理员在OneAccess管理门户同步组织的方法。
![](https://support.huaweicloud.com/devg-oneaccess/public_sys-resources/note_3.0-zh-cn.png)
同步机构的前提是开启应用机构，请参考[7]。
- 新增组织 选择"授权管理 \> 应用机构"，单击"授权策略"，单击![](https://support.huaweicloud.com/devg-oneaccess/zh-cn_image_0000001162406406.png)开启机构自动授权，按照页面提示勾选需要同步的机构，单击"保存"，单击"执行新增"。
  
- 修改组织
  选择"用户 \> 组织与用户"，在组织列表页面，单击目标组织操作列的"编辑"，更新组织信息。
  图4编辑组织   
  ![](https://support.huaweicloud.com/devg-oneaccess/zh-cn_image_0000001435385706.png) 
- 删除组织
  选择"用户 \> 组织与用户"，在组织列表页面，单击目标组织操作列的"删除"，删除组织。
  图5删除组织   
  ![](https://support.huaweicloud.com/devg-oneaccess/zh-cn_image_0000001485662553.png) 
 
 #### 同步事件
当OneAccess向下游企业应用同步数据时，同步事件会记录同步的所有操作，方便您进行查看。
1. 登录OneAccess管理门户。
2. 在导航栏中，选择"资源 \> 应用"。
3. 在应用页面，单击某应用进入应用信息页面。
4. 单击应用图标，默认进入该应用的通用信息页面。
5. 在左侧导航栏选择"授权管理 \> 同步事件"进入同步事件页面。可根据时间、操作类型、对象类型以及同步状态进行筛选查看同步记录。
   ![](https://support.huaweicloud.com/devg-oneaccess/public_sys-resources/note_3.0-zh-cn.png)
   对于同步失败的事件的处理：
   - 可以查看响应信息并在解决问题后，单击操作列的"重试"再次同步。
   
   - 可以通过"一键重试"快速执行同步。当父机构的同步事件重试成功后，会同时触发执行其下的子机构和账号的同步事件。
     
 
 #### 全量同步
当下游应用系统需与OneAccess的数据保持全量一致时，可通过全量同步实现。全量同步遵循以下规则：
- 全量同步会忽视之前所有的同步事件，并生成新的同步事件，如果应用系统未返回id，则生成新增事件，如果应用系统已返回id，则生成更新事件。id说明可参考[表2](https://support.huaweicloud.com/devg-oneaccess/oneaccess_06_0131.html#oneaccess_06_0131__table694652013171)。
  ![](https://support.huaweicloud.com/devg-oneaccess/public_sys-resources/note_3.0-zh-cn.png)
  全量同步触发的更新事件会同步映射定义配置的所有属性，普通的更新事件只同步变更的属性。
  
- 当依赖的机构同步失败后，其子集包括子机构和账号的所有同步事件状态为挂起，此时，单击应用机构的"开始同步"后，会触发应用账号的全量同步，即应用账号的"开始同步"也处于运行状态。
本节主要介绍企业管理员在管理门户全量同步数据至应用系统的方法。
选择"同步集成 \> 全量同步"，单击应用账号或者应用机构的"开始同步"即可。
![](https://support.huaweicloud.com/devg-oneaccess/zh-cn_image_0000002153342413.png)
 #### 同步状态说明
本节主要介绍同步完成后，各种状态的含义。方便您对异常状态进行排查定位。
以应用账号App_acc01、应用机构App_org01、原同步事件E0、新同步事件E1为例。
- 待处理 英文为"PENDING"，当应用账号App_acc01在生成新的同步事件E1时，如果该应用账号App_acc01之前的同步事件E0未执行完成，则生成的新事件E1的状态为待处理。
  
- 排队 英文为"QUEUING"，当应用账号App_acc01的同步事件E1可以执行时，会将该事件发送至Kafka执行消息队列，发送成功后，修改ES中存储的同步事件E1的状态为排队，表示该事件已成功加入执行队列。
  
- 发送 英文为"RUNNING"，当同步事件E1可执行时，在开始执行前将存储在ES中的同步事件E1的状态修改为RUNNING，修改成功后，调用下游应用系统的接口开始同步，表示该事件已成功处于运行状态。
  
- 成功 英文为"SUCCESS"，同步事件执行成功后，会将该事件的状态SUCCESS写入ES，表示该事件已执行成功。
  
- 失败 英文为"FAILURE"，同步事件执行失败后，会将该事件的状态FAILURE写入ES，表示该事件已执行失败。
  
- 忽视 英文为"IGNORED"，该状态涉及2种场景：
  - 当应用账号 App_acc01 在执行一个更新的同步事件时，如果发现后续有新的更新事件，则直接忽视该事件，并执行新的更新事件。
  
  - 执行全量同步时，会忽视之前所有的同步事件。
   
- 略过 英文为"SKIPPED"，该状态暂时未使用。
  
- 挂起 英文为"WAITING"，当应用账号App_acc01对应用机构App_org01存在依赖关系时，应用机构App_org01未同步成功，则该机构下应用账号App_acc01的所有同步事件状态为挂起。
  
 
