

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

# IPv6 支持自定义身份提供商
<a name="custom-idp-ipv6"></a>

AWS Transfer Family 自定义身份提供商完全支持 IPv6 连接。在实现自定义身份提供商时，您的 Lambda 函数无需任何额外配置即可接收和处理来自双方 IPv4 和 IPv6 客户端的身份验证请求。Lambda 函数在请求`sourceIp`字段中接收客户端的 IP 地址，该地址可以是 IPv4 地址（例如`203.0.113.42`），也可以是 IPv6地址（例如）。`2001:db8:85a3:8d3:1319:8a2e:370:7348`您的自定义身份提供商实现应适当地处理这两种地址格式。

**重要**  
如果您的自定义身份提供商执行基于 IP 的验证或记录，请确保您的实现正确处理 IPv6 地址格式。 IPv6 地址比 IPv4 地址长，并且使用不同的符号格式。

**注意**  
在自定义身份提供商中处理 IPv6 地址时，请确保使用正确 IPv6 的地址解析函数，而不是简单的字符串比较。 IPv6地址可以用各种规范格式表示（例如`fd00:b600::ec2`或`fd00:b600:0:0:0:0:0:ec2`）。使用您的实现语言中的相应 IPv6 地址库或函数来正确验证和比较 IPv6 地址。

**Example 在自定义身份提供商中同时处理 IPv4 和 IPv6 地址**  

```
def lambda_handler(event, context):
    # Extract the source IP address from the request
    source_ip = event.get('sourceIp', '')
    
    # Log the client IP address (works for both IPv4 and IPv6)
    print(f"Authentication request from: {source_ip}")
    
    # Example of IP-based validation that works with both IPv4 and IPv6
    if is_ip_allowed(source_ip):
        # Continue with authentication
        # ...
    else:
        # Reject the authentication request
        return {
            "Role": "",
            "HomeDirectory": "",
            "Status": "DENIED"
        }
```

有关实现自定义身份提供商的更多信息，请参阅[AWS Lambda 用于整合您的身份提供商](custom-lambda-idp.md)。