TestIdentityProvider - AWS Transfer Family

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

TestIdentityProvider

如果启用文件传输协议的服务器的 IdentityProviderTypeAWS_DIRECTORY_SERVICEAPI_Gateway,则测试您的身份提供程序是否已成功设置。我们强烈建议您在创建服务器后立即调用此操作来测试您的身份验证方法。这样,您就可以对身份提供程序集成问题进行故障排除,以确保您的用户可以成功使用该服务。

ServerIdUserName 参数是必需的。ServerProtocolSourceIpUserPassword 是可选的。

请注意以下几点:

  • 如果您的服务器的 IdentityProviderTypeSERVICE_MANAGED,则无法使用 TestIdentityProvider

  • TestIdentityProvider 不适用于密钥:它只接受密码。

  • TestIdentityProvider 可以测试处理密钥和密码的自定义身份提供程序的密码操作。

  • 如果您为任何参数提供的值不正确,则 Response 字段为空。

  • 如果您为使用服务托管用户的服务器提供服务器 ID,则会出现错误:

    An error occurred (InvalidRequestException) when calling the TestIdentityProvider operation: s-server-ID not configured for external auth

  • 如果您为 --server-id 参数输入的服务器 ID 不能识别实际的传输服务器,则会收到以下错误:

    An error occurred (ResourceNotFoundException) when calling the TestIdentityProvider operation: Unknown server.

    您的服务器可能位于不同的区域。您可以通过添加以下内容来指定区域:--region region-code,例如使用 --region us-east-2 来指定在美国东部(俄亥俄州)的服务器。

请求语法

{ "ServerId": "string", "ServerProtocol": "string", "SourceIp": "string", "UserName": "string", "UserPassword": "string" }

请求参数

有关所有操作的通用参数的信息,请参阅通用参数

该请求接受以下JSON格式的数据。

ServerId

特定服务器的系统分配的标识符。服务器的用户名和密码测试服务器的用户身份验证方法。

类型:字符串

长度限制:固定长度为 19。

模式:s-([0-9a-f]{17})

必需:是

ServerProtocol

要测试的文件传输协议的类型。

可用的协议包括:

  • 安全外壳 (SSH) 文件传输协议 (SFTP)

  • 安全文件传输协议 (FTPS)

  • 文件传输协议 (FTP)

  • 适用性声明 2 (AS2)

类型:字符串

有效值:SFTP | FTP | FTPS | AS2

必需:否

SourceIp

要测试账户的源 IP 地址。

类型:字符串

长度约束:最小长度为 0。最大长度为 32。

模式:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}

必需:否

UserName

要测试账户名称。

类型:字符串

长度约束:最小长度为 3。最大长度为 100。

模式:[\w][\w@.-]{2,99}

必需:是

UserPassword

要测试的账户的密码。

类型:字符串

长度约束:最小长度为 0。最大长度为 1024。

必需:否

响应语法

{ "Message": "string", "Response": "string", "StatusCode": number, "Url": "string" }

响应元素

如果操作成功,服务将发回 HTTP 200 响应。

以下数据由服务以JSON格式返回。

Message

一条表明测试是否成功的消息。

注意

如果返回空字符串,则最有可能的原因是由于用户名或密码不正确导致身份验证失败。

类型:字符串

Response

从您的API网关或 Lambda 函数返回的响应。

类型:字符串

StatusCode

HTTP状态代码,即来自您的API网关或 Lambda 函数的响应。

类型:整数

Url

提供用于验证用户身份的服务端点。

类型:字符串

长度约束:最小长度为 0。最大长度为 255。

错误

有关所有操作的常见错误的信息,请参阅常见错误

InternalServiceError

当 AWS Transfer Family 服务中发生错误时,会引发此异常。

HTTP状态码:500

InvalidRequestException

当客户端提交格式错误的请求时,会引发此异常。

HTTP状态码:400

ResourceNotFoundException

当 Transfer Family 服务找不到资源时,就会 AWS引发此异常。

HTTP状态码:400

ServiceUnavailableException

请求失败,因为 Trans AWS fer Family 服务不可用。

HTTP状态码:500

示例

示例

以下请求返回来自身份提供商的消息,说明用户名和密码组合是可以使用的有效身份 AWS Transfer Family。

示例请求

{ "ServerID": "s-01234567890abcdef", "UserName": "my_user", "UserPassword": "MyPassword-1" }

示例

以下响应显示成功测试的示例响应。

示例响应

"Response":" {\"homeDirectory\":\"/mybucket001\",\"homeDirectoryDetails\":null,\"homeDirectoryType\":\"PATH\",\"posixProfile\":null, \"publicKeys\":\"[ssh-rsa-key]\",\"role\":\"arn:aws:iam::123456789012:role/my_role\",\"policy\":null,\"username\":\"transferuser002\", \"identityProviderType\":null,\"userConfigMessage\":null)"} "StatusCode": "200", "Message": ""

示例

以下响应表明指定的用户属于多个具有访问权限的群组。

"Response":"", "StatusCode":200, "Message":"More than one associated access found for user's groups."

示例

如果您使用API网关创建并配置了自定义身份提供商,则可以输入以下命令来测试您的用户:

aws transfer test-identity-provider --server-id s-0123456789abcdefg --user-name myuser

其中 s-0123456789abcdefg 是您的传输服务器,myuser 是您的自定义用户的用户名。

如果命令成功,则响应的形式与下方类似,其中:

  • AWS 账户 身份证是 0 12345678901

  • 用户角色是 user-role-api-gateway

  • 主目录是 myuser-bucket

  • 公钥是 public-key

  • 调用URL就是用-URL

{ "Response": "{\"Role\": \"arn:aws:iam::012345678901:role/user-role-api-gateway\",\"HomeDirectory\": \"/myuser-bucket\",\"PublicKeys\": \"[public-key]\"}", "StatusCode": 200, "Message": "", "Url": "https://invocation-URL/servers/s-0123456789abcdefg/users/myuser/config" }

另请参阅

有关API在一种特定语言中使用此功能的更多信息 AWS SDKs,请参阅以下内容: