了解自訂身分驗證工作流程 - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

了解自訂身分驗證工作流程

自訂身分驗證可讓您定義如何使用授權方資源來驗證和授權用戶端。  每個授權方都包含客戶受管 Lambda 函數的參考、用於驗證裝置憑證的選用公有金鑰,以及其他組態資訊。下圖說明自訂身分驗證的授權工作流程 AWS IoT Core。

在 中自訂身分驗證的自訂授權工作流程 AWS IoT Core。

AWS IoT Core 自訂身分驗證和授權工作流程

下方清單說明自訂身分驗證和授權工作流程中的每個步驟。

  1. 裝置會使用其中一個支援的 來連線至客戶 AWS IoT Core 的資料端點裝置通訊協定。裝置會在請求的標頭欄位或查詢參數 (適用於 HTTP Publish 或 MQTT over WebSockets 通訊協定) 中,或在 MQTT CONNECT 訊息的使用者名稱和密碼欄位 (適用於 MQTT 和 MQTT over WebSockets 通訊協定) 中傳遞憑證。

  2. AWS IoT Core 會檢查下列兩個條件之一:

    • 傳入的請求指定授權方。

    • 接收請求 AWS IoT Core 的資料端點已為其設定預設授權方。

    如果 以下列其中一種方式 AWS IoT Core 尋找授權方, AWS IoT Core 會觸發與授權方相關聯的 Lambda 函數。

  3. (選用) 如果您已啟用權杖簽署,請在觸發 Lambda 函數之前,使用存放在授權方中的公有金鑰 AWS IoT Core 驗證請求簽章。如果驗證失敗, AWS IoT Core 會停止請求,而不會叫用 Lambda 函數。 

  4. Lambda 函數會接收請求中的憑證和連線中繼資料,並做出身分驗證決策。

  5. Lambda 函數會傳回身分驗證決策的結果,以及指定連線中允許哪些動作 AWS IoT Core 的政策文件。Lambda 函數也會傳回資訊,指定透過叫用 Lambda 函數 AWS IoT Core 重新驗證請求中的登入資料的頻率。

  6. AWS IoT Core 根據從 Lambda 函數收到的政策,評估連線上的活動。

  7. 建立連線且最初調用您的自訂授權方 Lambda 之後,下一次調用可在閒置連線上延遲最多 5 分鐘,而不需要任何 MQTT 操作。之後,後續調用將遵循自訂授權方 Lambda 中的重新整理間隔。這種方法可以防止超出 Lambda 並行限制的過度調用 AWS 帳戶。

擴展考量

因為 Lambda 函數會為您的授權方處理身分驗證和授權,所以此函數會受制於 Lambda 定價和服務配額,例如並行執行速率。 如需 Lambda 定價的詳細資訊,請參閱 Lambda 定價。您可以調整 Lambda 函數回應中的 refreshAfterInSecondsdisconnectAfterInSeconds 參數,管理 Lambda 函數上的負載。如需 Lambda 函數回應內容的詳細資訊,請參閱 定義您的 Lambda 函數

注意

如果將簽署保持啟用狀態,您可以防止無法辨識的用戶端過度觸發 Lambda。在您的授權方中停用簽署之前,請考慮這一點。

注意

自訂授權方的 Lambda 函數逾時限制為 5 秒。