使用自定义身份提供程序 - AWS Transfer Family

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

使用自定义身份提供程序

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

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

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

注意

我们有一个可供您参加的研讨会,您可以在其中构建文件传输解决方案。该解决方案利用 AWS Transfer Family 托管 SFTP/FTPS 终端节点,利用 Amazon Cognito 和 DynamoDB 进行用户管理。您可以在此处查看本次研讨会的详细信息。

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

  • AWS Lambda 用于连接您的身份提供商-您可以使用由 Lambda 函数支持的现有身份提供商。您提供 Lambda 函数名称。有关更多信息,请参阅 AWS 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 协议首先向软件客户端发送公钥身份验证,然后请求密码身份验证。此操作要求在允许用户完成身份验证之前,两者都必须成功。