

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

# 通过管理提高 AppFabric 工作效率 AppClients
<a name="manage-appclients"></a>


|  | 
| --- |
| 提高 AWS AppFabric 工作效率功能处于预览阶段，可能会发生变化。 | 

您可以管理您的 AppFabric 生产力 AppClients ，以确保身份验证和授权流程的顺利运行和维护。

## 获取的详细信息 AppClient
<a name="get_appclient_details"></a>

使用 AppFabric `GetAppClient` API 操作查看您的详细信息 AppClient，包括检查 AppClient 状态。有关更多信息，请参阅 [GetAppClient](API_GetAppClient.md)。

要获取的详细信息 AppClient，您必须至少拥有 `"appfabric:GetAppClient"` IAM 策略权限。有关更多信息，请参阅 [允许访问以获取以下详细信息 AppClients](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-productivity-get-appclient)。

**请求字段**
+ `appClientId`- AppClient 身份证。

**响应字段**
+ `appName`-将在用户门户的同意页面上向用户显示的应用程序的 AppFabric 名称。
+ `customerManagedKeyIdentifier`（可选）- 用于加密数据的客户托管密钥（由 KMS 生成）的 ARN。如果未指定，则将使用 AWS AppFabric 托管密钥。
+ `description` - 应用程序的描述。
+ `redirectUrls` - 授权后要将最终用户重定向到的 URI。您最多可以添加 5 个 redirectUrl。例如 `https://localhost:8080`。
+ `starterUserEmails` - 在应用程序通过验证之前允许访问以接收见解的用户电子邮件地址。只允许使用一个电子邮件地址。例如 `anyuser@example.com`。
+ `verificationStatus`- AppClient 验证状态。
  + `pending_verification`-的验证 AppClient仍在进行中 AppFabric。在 AppClient 验证之前，只有一个用户（在中指定`starterUserEmails`）可以使用 AppClient。
  + `verified`-验证过程已成功完成 AppFabric ，现 AppClient 已完全验证。
  + `rejected`-的验证过程 AppClient 被拒绝 AppFabric。在重新启动并成功完成验证过程之前，其他用户 AppClient 无法使用。

```
curl --request GET \
  --header "Content-Type: application/json" \
  --header "X-Amz-Content-Sha256: <sha256_payload>" \
  --header "X-Amz-Security-Token: <security_token>" \
  --header "X-Amz-Date: 20230922T172215Z" \
  --header "Authorization: AWS4-HMAC-SHA256 ..." \
  --url https://appfabric.<region>.amazonaws.com/appclients/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```

如果此操作成功，则该服务将会发送回 HTTP 200 响应。

```
200 OK

{
    "appClient": {
        "appName": "Test App",
        "arn": "arn:aws:appfabric:<region>:111122223333:appclient/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "customerManagedKeyArn": "arn:aws:kms:<region>:111122223333:key/<key>",
        "description": "This is a test app",
        "redirectUrls": [
            "https://localhost:8080"
        ],
        "starterUserEmails": [
            "anyuser@example.com"
        ],
        "verificationDetails": {
            "verificationStatus": "pending_verification"
        }
    }
}
```

## 清单 AppClients
<a name="list_appclients"></a>

使用 AppFabric `ListAppClients` API 操作查看您的列表 AppClients。 AppFabric AppClient 每人只允许一个 AWS 账户。这在未来可能会发生变化。有关更多信息，请参阅 [ListAppClients](API_ListAppClients.md)。

要上 AppClients市，您必须至少拥有 `"appfabric:ListAppClients"` IAM 策略权限。有关更多信息，请参阅 [允许访问列表 AppClients](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-productivity-list-appclient)。

**请求字段**
+ 没有必填字段。

**响应字段**
+ `appClientARN`-包含编号的亚马逊资源名称 (ARN)。 AppClient 例如， AppClient ID 是`a1b2c3d4-5678-90ab-cdef-EXAMPLE11111`。
+ `verificationStatus`- AppClient 验证状态。
  + `pending_verification`-的验证 AppClient仍在进行中 AppFabric。在 AppClient 验证之前，只有一个用户（在中指定`starterUserEmails`）可以使用 AppClient。
  + `verified`-验证过程已成功完成 AppFabric ，现 AppClient 已完全验证。
  + `rejected`-的验证过程 AppClient 被拒绝 AppFabric。在重新启动并成功完成验证过程之前，其他用户 AppClient 无法使用。

```
curl --request GET \
  --header "Content-Type: application/json" \
  --header "X-Amz-Content-Sha256: <sha256_payload>" \
  --header "X-Amz-Security-Token: <security_token>" \
  --header "X-Amz-Date: 20230922T172215Z" \
  --header "Authorization: AWS4-HMAC-SHA256 ..." \
  --url https://appfabric.<region>.amazonaws.com/appclients
```

如果此操作成功，则该服务将会发送回 HTTP 200 响应。

```
200 OK

{
    "appClientList": [
        {
            "appClientArn": "arn:aws:appfabric:<region>:111122223333:appclient/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "verificationStatus": "pending_verification"
        }
    ]
}
```

## 更新一个 AppClient
<a name="update_appclient"></a>

使用 AppFabric `UpdateAppClient` API 操作更新映射到您的重定向网址。 AppClient如果您需要更改任何其他参数，例如 AppName starterUserEmails、或其他，则必须删除 AppClient 并创建一个新参数。有关更多信息，请参阅 [UpdateAppClient](API_UpdateAppClient.md)。

要更新 AppClient，您必须至少拥有 `"appfabric:UpdateAppClient"` IAM 策略权限。有关更多信息，请参阅 [允许访问更新 AppClients](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-productivity-update-appclient)。

**请求字段**
+ `appClientId`（必填）-你要更新 redirectURLS 的 AppClient ID。
+ `redirectUrls`（必填）- 已更新的 redirectUrl 列表。您最多可以添加 5 个 redirectUrl。

**响应字段**
+ `appName`-将在用户门户的同意页面上向用户显示的应用程序的 AppFabric 名称。
+ `customerManagedKeyIdentifier`（可选）- 用于加密数据的客户托管密钥（由 KMS 生成）的 ARN。如果未指定，则将使用 AWS AppFabric 托管密钥。
+ `description` - 应用程序的描述。
+ `redirectUrls` - 授权后要将最终用户重定向到的 URI。例如 `https://localhost:8080`。
+ `starterUserEmails` - 在应用程序通过验证之前允许访问以接收见解的用户电子邮件地址。只允许使用一个电子邮件地址。例如 `anyuser@example.com`。
+ `verificationStatus`- AppClient 验证状态。
  + `pending_verification`-的验证 AppClient仍在进行中 AppFabric。在 AppClient 验证之前，只有一个用户（在中指定`starterUserEmails`）可以使用 AppClient。
  + `verified`-验证过程已成功完成 AppFabric ，现 AppClient 已完全验证。
  + `rejected`-的验证过程 AppClient 被拒绝 AppFabric。在重新启动并成功完成验证过程之前，其他用户 AppClient 无法使用。

```
curl --request PATCH \
  --header "Content-Type: application/json" \
  --header "X-Amz-Content-Sha256: <sha256_payload>" \
  --header "X-Amz-Security-Token: <security_token>" \
  --header "X-Amz-Date: 20230922T172215Z" \
  --header "Authorization: AWS4-HMAC-SHA256 ..." \
  --url https://appfabric.<region>.amazonaws.com/appclients/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \
  --data '{
    "redirectUrls": ["https://localhost:8081"]
}'
```

如果此操作成功，则该服务将会发送回 HTTP 200 响应。

```
200 OK

{
    "appClient": {
        "appName": "Test App",
        "arn": "arn:aws:appfabric:<region>:111122223333:appclient/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "customerManagedKeyArn": "arn:aws:kms:<region>:111122223333:key/<key>",
        "description": "This is a test app",
        "redirectUrls": [
            "https://localhost:8081"
        ],
        "starterUserEmails": [
            "anyuser@example.com"
        ],
        "verificationDetails": {
            "verificationStatus": "pending_verification"
        }
    }
}
```

## 删除一个 AppClient
<a name="delete_appclient"></a>

使用 AppFabric `DeleteAppClient` API 操作删除任何不再 AppClients 需要的内容。有关更多信息，请参阅 [DeleteAppClient](API_DeleteAppClient.md)。

要删除 AppClient，您必须至少拥有 `"appfabric:DeleteAppClient"` IAM 策略权限。有关更多信息，请参阅 [允许访问删除 AppClients](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-productivity-delete-appclient)。

**请求字段**
+ `appClientId`- AppClient 身份证。

**响应字段**
+ 没有响应字段。

```
curl --request DELETE \
  --header "Content-Type: application/json" \
  --header "X-Amz-Content-Sha256: <sha256_payload>" \
  --header "X-Amz-Security-Token: <security_token>" \
  --header "X-Amz-Date: 20230922T172215Z" \
  --header "Authorization: AWS4-HMAC-SHA256 ..." \
  --url https://appfabric.<region>.amazonaws.com/appclients/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```

如果此操作成功，则该服务会发送回带有空 HTTP 正文的 HTTP 204 响应。

## 为最终用户刷新令牌
<a name="refresh_token"></a>

您为最终用户 AppClient 获取的代币可以在到期时刷新。这可以使用 grant\$1type 为 `refresh_token` 的 [令牌](API_Token.md) API 来完成。当 grant\$1type 为 `refresh_token` 时，要使用的 `authorization_code` 将作为令牌 API 响应的一部分返回。默认到期时间为 12 小时。要调用刷新 API，您必须具有 `"appfabric:Token"` IAM 策略权限。有关更多信息，请参阅[令牌](API_Token.md)和[允许访问更新 AppClients](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-productivity-update-appclient)。

**请求字段**
+ `refresh_token`（必填）- 从初始 `/token` 请求接收的刷新令牌。
+ `app_client_id`（必填）-为创建的 AppClient 资源的 ID AWS 账户。
+ `grant_type`（必填）- 这必须是 `refresh_token`。

**响应字段**
+ `expires_in` - 在令牌过期之前多久。默认过期时间为 12 小时。
+ `refresh_token` - 从初始 /token 请求接收的刷新令牌。
+ `token` - 从初始 /token 请求接收的令牌。
+ `token_type` - 该值将是 `Bearer`。
+ `appfabric_user_id`- AppFabric 用户 ID。只有使用 `authorization_code` 授予类型的请求才会返回此值。

```
curl --location \
"https://appfabric.<region>.amazonaws.com/oauth2/token" \
--header "Content-Type: application/json" \
--header "X-Amz-Content-Sha256: <sha256_payload>" \
--header "X-Amz-Security-Token: <security_token>" \
--header "X-Amz-Date: 20230922T172215Z" \
--header "Authorization: AWS4-HMAC-SHA256 ..." \
--data "{
    \"refresh_token\": \"<refresh_token>",
    \"app_client_id\": \"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111\",
    \"grant_type\": \"refresh_token\"
}"
```

如果此操作成功，则该服务将会发送回 HTTP 200 响应。

```
200 OK

{
    "expires_in": 43200,
    "token": "apkaeibaerjr2example",
    "token_type": "Bearer",
    "appfabric_user_id" : "${UserID}"
}
```