

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

# 自定义身份提供商解决方案
<a name="custom-idp-toolkit"></a>

 AWS Transfer Family 自定义身份提供商解决方案是一种模块化的自定义身份提供商解决方案，可解决企业在实施服务时遇到的许多常见身份验证和授权用例。该解决方案为通过精细的每用户会话配置实现自定义身份提供商提供了可重复使用的基础，并将身份验证和授权逻辑分开，为各种用例提供了灵活的 easy-to-maintain基础。

借助 AWS Transfer Family 自定义身份提供商解决方案，您可以解决常见的企业身份验证和授权用例。该模块化解决方案提供：
+ 实现自定义身份提供商的可重复使用的基础 
+ 精细的每用户会话配置 
+ 独立的身份验证和授权逻辑 

## 自定义身份工具包的实现细节
<a name="idp-toolkit-implementation-details"></a>

该解决方案为各种用例提供了灵活且可维护的基础。要开始使用，请查看 [https://github.com/aws-samples/toolkit-for-aws-transfer-family](https://github.com/aws-samples/toolkit-for-aws-transfer-family) 中的工具包，然后按照[入门](https://github.com/aws-samples/toolkit-for-aws-transfer-family/tree/main/solutions/custom-idp#getting-started)部分中的部署说明进行操作。

![\[中提供的自定义身份提供商工具包的架构图 GitHub。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/custom-idp-solution-high-level-architecture.png)


**注意**  
如果您之前使用过自定义身份提供商模板和示例，请考虑改用此解决方案。展望未来，特定于提供商的模块将以此解决方案为基础进行标准化。将对该解决方案进行持续维护和功能增强。

此解决方案包含用于实现自定义提供程序的标准模式，该提供程序会考虑详细信息，包括日志记录以及在何处存储所需的其他会话元数据 AWS Transfer Family，例如`HomeDirectoryDetails`参数。该解决方案为通过精细的每用户会话配置实现自定义身份提供者提供了可重复使用的基础，并将身份提供者身份验证逻辑与可重用逻辑分离，后者构建的配置返回给 Transfer Family 以完成身份验证并建立会话设置。

该解决方案的代码和支持资源可在 [https://github.com/aws-samples/toolkit-for-aws-transfer-famil](https://github.com/aws-samples/toolkit-for-aws-transfer-family) y 中找到。

该工具包包含以下功能：
+ 预置所需资源的[AWS Serverless Application Model](https://aws.amazon.com/serverless/sam)模板。（可选）部署和配置要合并的 Amazon API Gateway AWS WAF，如博客文章《[AWS Transfer Family 使用 AWS Web 应用程序防火墙和 Amazon API Gateway 确保安全](https://aws.amazon.com/blogs/storage/securing-aws-transfer-family-with-aws-web-application-firewall-and-amazon-api-gateway/)》中所述。
+ A [mazon Dy](https://aws.amazon.com/dynamodb) namoDB 架构，用于存储有关身份提供商的配置元数据，包括用户会话设置，`HomeDirectoryDetails`例如`Role`、和。`Policy`
+ 一种模块化方法，允许您将来将新的身份提供者作为模块添加到解决方案中。
+ 属性检索：（可选）从支持的身份提供商（包括 AD、LDAP 和 Okta）检索 IAM 角色和 POSIX 配置文件（UID 和 GID）属性。
+ 支持使用相同的解决方案部署连接到单个 Transfer Family 服务器和多个 Transfer Family 服务器的多个身份提供商。
+ 内置 IP 允许列表检查，例如 IP 允许列表，可以选择根据每个用户或每个身份提供商进行配置。
+ 详细的日志记录以及可配置的日志级别和跟踪支持，以帮助进行故障排除。

在开始部署自定义身份提供商解决方案之前，您需要具备以下 AWS 资源。
+ 带有私有子网的亚马逊虚拟私有云 (VPC)，可通过 NAT 网关或 DynamoDB 网关终端节点进行互联网连接。
+ 执行以下任务的相应的 IAM 权限：
  + 部署`custom-idp.yaml` CloudFormation 模板，
  + 创建 AWS CodePipeline 项目
  + 创建 AWS CodeBuild 项目
  + 创建 IAM 角色和策略

**重要**  
您必须将解决方案部署到包含目标 Trans AWS 账户 f AWS 区域 er Family 服务器的相同服务器上。

## 支持的身份提供商
<a name="custom-supported-idp"></a>

以下列表包含自定义身份提供商解决方案支持的身份提供商的详细信息。


| Provider | 密码流 | 公钥流 | 多因子 | 属性检索 | Details | 
| --- | --- | --- | --- | --- | --- | 
| 活动目录和 LDAP | 支持 | 是 | 否 | 是 | 用户验证可以作为公钥身份验证流程的一部分来执行。 | 
| Argon2（本地哈希） | 是 | 否 | 否 | 否 | Argon2 哈希存储在基于 “本地” 密码的身份验证用例的用户记录中。 | 
| Amazon Cognito | 是 | 否 | 是\$1 | 否 | 仅限基于时间的一次性密码 (TOTP) 的多因素身份验证。 \$1不支持基于短信的 MFA。 | 
| 入口 ID（以前是 Azure AD） | 是 | 否 | 否 | 否 |  | 
| Okta | 支持 | 是 | 是\$1 | 是 | 仅限基于 TOTP 的 MFA。 | 
| 公有密钥 | 否 | 是 | 否 | 否 | 公钥存储在 DynamoDB 的用户记录中。 | 
| Secrets Manager  | 支持 | 是 | 否 | 否 |  | 