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

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

使用自定义身份提供程序

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

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

无论哪种情况,您都可以使用AWS Transfer Family 控制台CreateServerAPI操作。

注意

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

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

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

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

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

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

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

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

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

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

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

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

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

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