

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 实施 AWS.DeactivateUser 操作
<a name="deactive-user-op"></a>

## 用户停用概述
<a name="deactivate-user-overview"></a>

当客户删除其客户账户，或者最终用户想要取消其在系统中的账户与 AWS 客户系统的关联时，需要停用提供的用户访问令牌。 AWS 在这两种用例中，托管集成都需要使用 C2C 连接器来简化此工作流程。

下图说明了如何取消最终用户帐户与系统的关联

![用户停用工作流程](https://docs.aws.amazon.com/zh_cn/iot-mi/latest/devguide/images/user-deactivate-workflow.png)


**用户停用工作流程**

1. 用户启动 AWS 客户账户与与 C2C 连接器关联的第三方授权服务器之间的解除关联过程。

1. 客户通过 AWS IoT Device Management 的托管集成启动删除用户关联。

1. 托管集成通过使用操作界面向连接器发出请求来启动停用过程。`AWS.DeactivateUser`

   1. 对于 OAuth 2.0，标题中包含用户的访问令牌。对于一般授权，标题中包含 AWS Secrets Manager 参考文献。

1. 您的 C2C 连接器接受请求并执行必要的停用步骤。对于 OAuth 2.0，这包括调用您的授权服务器来撤消令牌及其提供的任何访问权限。对于一般授权，这可能包括清理操作或通知您的第三方平台。

   1. 例如，来自未关联用户账户的事件在执行后不应再发送到托管集成。`AWS.DeactivateUser`

1. 您的授权服务器或第三方平台会处理停用操作并将响应发送回您的 C2C 连接器。

1. 您的 C2C 连接器会向 AWS IoT Device Management 的托管集成发送已处理停用的 ACK。

1. 托管集成会删除最终用户拥有的与您的资源服务器关联的所有资源。

1. 托管集成向客户发送 ACK，说明与您的系统相关的所有关联都已删除。

1. 客户通知最终用户其账户已与您的平台取消关联。

## `AWS.DeactivateUser`要求
<a name="deactivate-user-requirements"></a>

您的 C2C 连接器必须满足以下要求才能成功处理用户停用问题：
+ **请求处理：**C2C 连接器 Lambda 函数接收来自托管集成的请求消息以处理操作。`AWS.DeactivateUser`
+ **代币撤销/清理：**
  + **对于 OAuth 2.0：**C2C 连接器必须撤销授权服务器中用户提供的 OAuth 2.0 令牌和相应的刷新令牌。
  + **对于一般授权：**C2C 连接器应按照您的第三方平台要求执行任何必要的清理或停用步骤。

**OAuth 2.0 请求：**

以下是您的连接器将收到的 OAuth 2.0 `AWS.DeactivateUser` 请求示例：

```
{
     "header": {
         "auth": {                 
             "token": "ashriu32yr97feqy7afsaf",   
             "type": "OAuth2.0" 
         }
     },
     "payload":{
         "operationName": "AWS.DeactivateUser",
         "operationVersion": "1.0",
         "connectorId": "{{Your-connector-Id}}"
     }
}
```

**通用授权示例：**

```
{
     "header": {
         "auth": {
             "secretsManager": {
                 "arn": "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret-abc123",
                 "versionId": "EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE"
             },
             "type": "GeneralAuthorization"
         }
     },
     "payload":{
         "operationName": "AWS.DeactivateUser",
         "operationVersion": "1.0",
         "connectorId": "{{Your-connector-Id}}"
     }
}
```