

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

# 编辑身份提供商配置
<a name="configuring-servers-edit-custom-idp"></a>

您可以将服务器的身份提供者类型从任何类型更改为任何其他类型。可用的身份提供者类型有：
+ **服务托管**-将用户凭据存储在服务中
+ **AWS Directory Ser** vice — 使用 AWS 托管 Microsoft AD 或 AWS 目录服务获取 Entra ID 域服务
+ **自定义** — 使用 Lambda 函数或 Amazon API Gateway 与您现有的身份提供商集成

更改身份提供者类型时，您需要根据正在进行的过渡提供特定信息。以下各节描述了每种更改类型所需的信息。

**重要**  
更改身份提供者时的注意事项：  
**用户迁移**-更改身份提供者类型时，不会自动迁移现有用户配置。您需要在新的身份提供商系统中设置用户。
**测试**-在生产环境中进行更改之前，请彻底测试新的身份提供商配置。
**权限** — 在进行更改之前，请确保新的身份提供商已配置必要的 IAM 权限和角色。

## 更改为服务托管身份提供商
<a name="change-to-service-managed"></a>

从任何其他身份提供商类型更改为服务管理类型时，您需要：
+ 选择 “**服务托管**” 作为身份提供者类型
+ 更改完成 AWS Transfer Family 后直接在中创建新用户，因为来自其他身份提供商的现有用户配置不会被转移

示例：如果您要从自定义身份提供商更改为服务托管，则需要在服务中重新创建所有用户帐户及其关联权限。 AWS Transfer Family 

## 更改为 “ AWS 目录服务”
<a name="change-to-directory-service"></a>

从任何其他身份提供者类型更改为 AWS Directory Service 时，您需要提供：
+ **目录** — 为 Entra ID 域服务 AWS 目录选择现有的 AWS 托管 Microsoft AD 或目录服务
+ **访问权限**-选择是限制对特定群组的访问还是允许目录中的所有用户进行访问
+ **访问角色** — 允许 AWS Transfer Family 访问您的目录的 IAM 角色

示例：如果您要从服务管理更改为 AWS Directory Service，则需要选择现有`d-1234567890`目录，选择限制对`TransferUsers`群组的访问权限，然后指定 `TransferDirectoryAccessRole` IAM 角色。

## 更改为自定义身份提供商
<a name="change-to-custom-idp"></a>

从任何其他身份提供商类型更改为自定义身份提供商时，您需要在 Lambda 函数或 Amazon API Gateway 之间进行选择，并提供所需的配置：

### 使用 Lambda 函数
<a name="change-to-lambda-idp"></a>

对于 Lambda 函数集成，请提供：
+ **函数**-选择处理身份验证的现有 Lambda 函数
+ **身份验证方法**（对于 SFTP 协议）-选择密码、公钥或两者兼而有之

示例：如果您要从 D AWS irectory Service 更改为自定义 Lambda 身份提供商，则需要选择自己的`TransferCustomAuth`函数并选择**密码**作为身份验证方法。

![\[对于 Lambda 身份提供商，您可以更改底层 Lambda 函数。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/edit-server-idp-lambda.png)


### 使用亚马逊 API Gateway
<a name="change-to-api-gateway-idp"></a>

要集成 Amazon API Gateway，请提供：
+ **API Gateway 网址** — 您的 API 网关终端节点的调用网址
+ **调用角色** — 允许调用您的 API Gatewa AWS Transfer Family y 的 IAM 角色
+ **身份验证方法**（对于 SFTP 协议）-选择密码、公钥或两者兼而有之

示例：如果您要从服务管理更改为 API Gateway，则需要提供 URL`https://abcdef123.execute-api.us-east-1.amazonaws.com/prod`，指定 `TransferApiGatewayInvocationRole` IAM 角色，然后选择**公钥**作为身份验证方法。

![\[对于 API Gateway 身份提供商，您可以更新 Gateway URL 或调用角色，或同时更新两者。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/edit-server-idp-apigateway.png)


### 从 Amazon API Gateway 更改为 Lambda 函数
<a name="change-api-gateway-to-lambda"></a>

常见的过渡是从 Amazon API Gateway 更改为 Lambda 函数以实现自定义身份提供商集成。此更改使您可以简化架构，同时保持相同的身份验证逻辑。

此过渡的关键注意事项：
+ **相同的功能，不同的权限** — 您可以对 API Gateway 和直接 Lambda 集成使用相同的 Lambda 函数，但必须更新资源策略。
+ **资源策略要求** — 更改为直接 Lambda 集成时，函数的资源策略除此之外还必须授予调用该函数的`transfer.amazonaws.com`权限。`apigateway.amazonaws.com`

**要进行此更改**

1. 更新 Lambda 函数的资源策略`transfer.amazonaws.com`以允许调用该函数。

1. 在 AWS Transfer Family 控制台中，将身份提供商从 API Gateway 更改为 Lambda 函数。

1. 选择您的现有 Lambda 函数。

1. 测试配置以确保身份验证工作正常。

直接 Lambda 集成的资源策略示例：

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Principal": {
         "Service": [
            "transfer.amazonaws.com",
            "apigateway.amazonaws.com"
         ]
      },
      "Action": "lambda:InvokeFunction",
      "Resource": "arn:aws:lambda:us-east-1:123456789012:function:function-name"
   }]
}
```

## 身份提供商过渡期间的用户保存
<a name="user-preservation-during-transitions"></a>

在身份提供商类型之间进行切换时，将在特定场景中保留现有用户配置，以便在出现问题时实现高效的回滚：
+ **服务管理到自定义身份提供商然后返回** — 如果您从服务管理更改为自定义身份提供商，然后又更改为服务管理，则所有用户都将保留在他们上次已知的配置中。
+ **AWS Directory Service 到自定义身份提供商然后返回** — 如果您从自定义身份提供商更改 AWS Directory Service 为自定义身份提供商，然后又更改为 AWS Directory Service，则委派访问组的所有定义都将保留在其上次已知的配置中。

这种保留行为允许您安全地测试自定义身份提供商配置并回滚到之前的设置，而不会丢失用户访问配置。

## 更改身份提供者时的重要注意事项
<a name="identity-provider-considerations"></a>
+ **用户迁移**-更改身份提供者类型时，不会自动迁移现有用户配置。您需要在新的身份提供商系统中设置用户。
+ **测试**-在生产环境中进行更改之前，请彻底测试新的身份提供商配置。
+ **权限** — 在进行更改之前，请确保新的身份提供商已配置必要的 IAM 权限和角色。