本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
了解自定义身份验证工作流
自定义身份验证使您能够定义如何通过使用授权方资源对客户端进行身份验证和授权。 每个授权方都包含对客户托管的 Lambda 函数的引用、用于验证设备凭证的可选公有密钥以及其它配置信息。下图说明了 Amazon IoT Core 中自定义身份验证的授权工作流。

Amazon IoT Core 自定义身份验证和授权工作流
下面的列表说明了自定义身份验证和授权工作流中的每个步骤。
-
设备使用支持的 设备通信协议 之一连接到客户的 Amazon IoT Core 数据终端节点。设备在请求的标头字段或查询参数(使用 HTTP Publist 或 MQTT WebSockets 协议),也可以在 MQTT CONNECT CONNECT Root Connect Root Connect Root Connect Root Root Con WebSockets 协议
-
Amazon IoT Core 检查以下两个条件之一:
-
传入的请求指定授权方。
-
接收请求的 Amazon IoT Core 数据终端节点具有已为其配置的默认授权方。
如果 Amazon IoT Core 以上任一方式查找授权方,Amazon IoT Core 将触发与授权方关联的 Lambda 函数。
-
-
(可选)如果您已启用令牌签名,Amazon IoT Core 在触发 Lambda 函数之前,将通过使用存储在授权方中的公有密钥来验证请求签名。如果验证失败,Amazon IoT Core 将停止请求而不调用 Lambda 函数。
-
Lambda 函数接收请求中的凭证和连接元数据,并做出身份验证决策。
-
Lambda 函数返回身份验证决策的结果以及 Amazon IoT Core 策略文档,该文档指定允许在连接中执行哪些操作。Lambda 函数还通过调用 Lambda 函数返回指定 Amazon IoT Core 重新验证请求中凭证的频率。
-
Amazon IoT Core 根据从 Lambda 函数接收的策略评估连接上的活动。
扩展注意事项
由于 Lambda 函数为您的授权方处理身份验证和授权,因此该函数受 Lambda 定价和服务限制的约束,例如并发执行率。有关 Lambda 定价的更多信息,请参阅 Lambda 定价refreshAfterInSeconds
和 disconnectAfterInSeconds
参数管理您 Lambda 函数上的负载。有关 Lambda 函数响应内容的更多信息,请参阅 定义您的 Lambda 函数。
注意
如果启用签名,则可以防止无法识别的客户端过度触发 Lambda。在禁用授权方的签名之前,请考虑这一点。
注意
自定义授权方的 Lambda 函数超时限制为 5 秒。