使用自定义身份提供程序 - Amazon Transfer Family
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用自定义身份提供程序

要对用户进行身份验证,您可以将现有的身份提供商与配合使用 Amazon Transfer Family。您可以使用功能集成您的身份提供商,该 Amazon Lambda 功能对您的用户进行身份验证和授权,使其能够访问 Amazon S3 或亚马逊弹性文件系统 (Amazon EFS)。有关更多信息,请参阅 Amazon Lambda 用于整合您的身份提供商。您还可以访问 Amazon Transfer Family 管理控制台中传输的文件数和字节数等指标的 CloudWatch 图表,从而通过单一控制面板使用集中式仪表板监控文件传输。

或者,您可以提供带有单个 Amazon API Gateway 方法的 RESTful 接口。Transfer Family 调用此方法连接到您的身份提供程序,该提供程序会对您的用户进行身份验证和授权,使其能够访问 Amazon S3 或 Amazon EFS。如果您需要 RESTful API 来集成您的身份提供商,或者您想使用 Amazon WAF 其功能来处理地理封锁或速率限制请求,请使用此选项。有关更多信息,请参阅 使用 Amazon API Gateway 整合您的身份提供程序

无论哪种情况,您都可以使用 Amazon Transfer Family 控制台CreateServer API 操作创建新服务器。

注意

Transfer Family 提供了一篇博客文章和一个研讨会,引导你完成文件传输解决方案的构建。该解决方案利用 Amazon Transfer Family 托管 SFTP/FTPS 终端节点,利用 Amazon Cognito 和 DynamoDB 进行用户管理。

该博客文章可在使用 Amazon Cognito 作为身份提供商 Amazon Transfer Family 和 Amazon S3 上找到。您可以在此处查看研讨会的详细信息。

Amazon Transfer Family 提供了以下与自定义身份提供商合作的选项。

  • Amazon Lambda 用于连接您的身份提供商-您可以使用由 Lambda 函数支持的现有身份提供商。您提供 Lambda 函数名称。有关更多信息,请参阅 Amazon Lambda 用于整合您的身份提供商

  • 使用 Amazon API Gateway 连接您的身份提供商 — 您可以创建由 Lambda 函数支持的 API 网关方法以用作身份提供商。您提供一个 Amazon API Gateway URL 和一个调用角色。有关更多信息,请参阅 使用 Amazon API Gateway 整合您的身份提供程序

对于任一选项,您还可以指定如何进行身份验证。

  • 密码或密钥-用户可以使用其密码或密钥进行身份验证。这是默认值。

  • 仅限密码-用户必须提供密码才能连接。

  • 仅限密钥 — 用户必须提供私钥才能连接。

  • 密码和密钥 — 用户必须同时提供私钥和密码才能连接。服务器首先检查密钥,如果密钥有效,系统会提示输入密码。如果提供的私有密钥与存储的公有密钥不匹配,则身份验证失败。

使用多种身份验证方法向您的自定义身份提供商进行身份验证

当您使用多种身份验证方法时,Transfer Family 服务器会控制 AND 逻辑。Transfer Family 将其视为向您的自定义身份提供者发出的两个单独请求:但是,它们的效果是结合在一起的。

两个请求都必须成功返回并返回正确的响应,才能完成身份验证。Transfer Family 要求这两个响应必须完整,这意味着它们包含所有必需的元素(角色、主目录、策略和 POSIX 配置文件(如果您使用 Amazon EFS 进行存储)。Transfer Family 还要求密码响应中不得包含公钥。

公钥请求必须有来自身份提供者的单独响应。使用 “密码或密钥” 或 “密码和密钥” 时,这种行为不会改变。

SSH/SFTP 协议首先向软件客户端发送公钥身份验证,然后请求密码身份验证。此操作要求在允许用户完成身份验证之前,两者都必须成功。