本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解自訂身分驗證工作流程
自訂身分驗證可讓您定義如何使用授權方資源來驗證和授權用戶端。 每個授權方都包含客戶受管 Lambda 函數的參考、用於驗證裝置憑證的選用公有金鑰,以及其他組態資訊。下圖說明自訂身分驗證的授權工作流程 AWS IoT Core。

AWS IoT Core 自訂身分驗證和授權工作流程
下方清單說明自訂身分驗證和授權工作流程中的每個步驟。
-
裝置會使用其中一個支援的 來連線至客戶 AWS IoT Core 的資料端點裝置通訊協定。裝置會在請求的標頭欄位或查詢參數 (適用於 HTTP Publish 或 MQTT over WebSockets 通訊協定) 中,或在 MQTT CONNECT 訊息的使用者名稱和密碼欄位 (適用於 MQTT 和 MQTT over WebSockets 通訊協定) 中傳遞憑證。
-
AWS IoT Core 會檢查下列兩個條件之一:
-
傳入的請求指定授權方。
-
接收請求 AWS IoT Core 的資料端點已為其設定預設授權方。
如果 以下列其中一種方式 AWS IoT Core 尋找授權方, AWS IoT Core 會觸發與授權方相關聯的 Lambda 函數。
-
-
(選用) 如果您已啟用權杖簽署,請在觸發 Lambda 函數之前,使用存放在授權方中的公有金鑰 AWS IoT Core 驗證請求簽章。如果驗證失敗, AWS IoT Core 會停止請求,而不會叫用 Lambda 函數。
-
Lambda 函數會接收請求中的憑證和連線中繼資料,並做出身分驗證決策。
-
Lambda 函數會傳回身分驗證決策的結果,以及指定連線中允許哪些動作 AWS IoT Core 的政策文件。Lambda 函數也會傳回資訊,指定透過叫用 Lambda 函數 AWS IoT Core 重新驗證請求中的登入資料的頻率。
-
AWS IoT Core 根據從 Lambda 函數收到的政策,評估連線上的活動。
-
建立連線且最初調用您的自訂授權方 Lambda 之後,下一次調用可在閒置連線上延遲最多 5 分鐘,而不需要任何 MQTT 操作。之後,後續調用將遵循自訂授權方 Lambda 中的重新整理間隔。這種方法可以防止超出 Lambda 並行限制的過度調用 AWS 帳戶。
擴展考量
因為 Lambda 函數會為您的授權方處理身分驗證和授權,所以此函數會受制於 Lambda 定價和服務配額,例如並行執行速率。 如需 Lambda 定價的詳細資訊,請參閱 Lambda 定價refreshAfterInSeconds
和 disconnectAfterInSeconds
參數,管理 Lambda 函數上的負載。如需 Lambda 函數回應內容的詳細資訊,請參閱 定義您的 Lambda 函數。
注意
如果將簽署保持啟用狀態,您可以防止無法辨識的用戶端過度觸發 Lambda。在您的授權方中停用簽署之前,請考慮這一點。
注意
自訂授權方的 Lambda 函數逾時限制為 5 秒。