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