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

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

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

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

自訂驗證的自訂授權工作流程 AWS IoT Core.

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

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

  1. 連接到客戶的設備 AWS IoT Core 使用其中一個支援的資料端點裝置通訊協定。裝置會在要求的標頭欄位或查詢參數 (針對 HTTP Publish 或MQTT透過通訊 WebSockets 協定),或在訊息的使用者名稱和密碼欄位 (針對MQTT和MQTT透過通MQTTCONNECT訊 WebSockets 協定) 中傳遞認證。

  2. AWS IoT Core 檢查下列其中一個條件:

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

    • 所以此 AWS IoT Core 接收請求的數據端點已為其配置了默認授權者。

    If AWS IoT Core 以這兩種方式找到授權者, AWS IoT Core 觸發與授權者相關聯的 Lambda 函數。

  3. (可選)如果您已啟用令牌簽名, AWS IoT Core 在觸發 Lambda 函數之前,使用儲存在授權者中的公開金鑰來驗證請求簽名。如果驗證失敗, AWS IoT Core 在不叫用 Lambda 函數的情況下停止要求。 

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

  5. Lambda 函數會傳回驗證決定的結果,以及 AWS IoT Core 指定連線中允許哪些動作的原則文件。 Lambda 函數也會傳回指定頻率的資訊 AWS IoT Core 呼叫 Lambda 函數,以重新驗證要求中的認證。

  6. AWS IoT Core 根據從 Lambda 函數接收到的原則評估連線上的活動。

  7. 建立連線並初始呼叫您的自訂授權者 Lambda 之後,閒置連線的下一次呼叫可能會延遲最多 5 分鐘,而無需執行任何MQTT作業。之後,後續的呼叫將遵循自訂授權者 Lambda 中的重新整理間隔。這種方法可以防止過度調用可能超過您的 Lambda 並發限制 AWS 帳戶.

擴展考量

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

注意

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

注意

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