TestIdentityProvider - Amazon Transfer Family
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

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

可用的协议包括:

  • Secure Shell (SSH) File Transfer Protocol (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 Gateway 或 Lambda 函数返回的响应。

类型:字符串

StatusCode

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

类型:整数

Url

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

类型:字符串

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

错误

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

InternalServiceError

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

HTTP 状态代码:500

InvalidRequestException

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

HTTP 状态代码:400

ResourceNotFoundException

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

HTTP 状态代码:400

ServiceUnavailableException

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

HTTP 状态代码:500

示例

示例

以下请求返回来自身份提供商的消息,说明用户名和密码组合是可以使用的有效身份 Amazon 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 Gateway 创建并配置了自定义身份提供程序,则可以输入以下命令来测试您的用户:

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

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

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

  • Amazon Web Services 账户 身份证是 0 12345678901

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

  • 主目录是 myuser-bucket

  • 公钥是 public-key

  • 调用网址为 invocation-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" }

另请参阅

有关在特定语言的 Amazon SDK 中使用此 API 的更多信息,请参阅以下内容: