帳戶連結角色 - 的受管整合 AWS IoT Device Management

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

帳戶連結角色

若要建立 C2C 連接器,您需要 OAuth 2.0 授權伺服器和帳戶連結。如需詳細資訊,請參閱帳戶連結工作流程

OAuth 2.0 會在實作帳戶連結時定義下列四個角色:

  1. 授權伺服器

  2. 資源擁有者 (最終使用者)

  3. 資源伺服器

  4. 用戶端

以下定義每個 OAuth 角色:

授權伺服器

授權伺服器是識別和驗證第三方雲端中最終使用者身分的伺服器。此伺服器提供的存取字符可以連結 AWS 最終使用者的客戶平台帳戶及其第三方平台帳戶。此程序稱為帳戶連結。

授權伺服器提供下列項目,以支援帳戶連結:

  • 顯示登入頁面,供最終使用者登入您的系統。這通常稱為授權端點。

  • 驗證系統中的最終使用者。

  • 產生識別最終使用者的授權碼。

  • 將授權碼傳遞給 AWS IoT Device Management 的受管整合。

  • 接受 AWS IoT Device Management 受管整合的授權碼,並傳回 AWS IoT Device Management 受管整合可用來存取系統中最終使用者資料的存取字符。這通常透過單獨的 URI 完成,稱為字符 URI 或端點。

重要

授權伺服器必須支援 OAuth 2.0 授權碼流程,才能與 AWS IoT Device Management Connector 的 受管整合搭配使用。AWS IoT Device Management 的 受管整合也支援搭配 Code Exchange 的驗證金鑰 (PKCE) 的授權碼流程。

授權伺服器必須:

  • 發出包含可擷取最終使用者或資源擁有者 ID 的存取權杖,例如 JWT 權杖

  • 能夠為每個發行的存取權杖傳回最終使用者 ID

否則,您的連接器將無法支援所需的AWS.ActivateUser操作。這將防止連接器使用受管整合。

如果連接器開發人員或擁有者未維護自己的授權伺服器,則所使用的授權伺服器必須為連接器開發人員第三方平台管理的資源提供授權。這表示受管整合從授權伺服器接收的任何字符都必須在裝置 (資源) 上提供有意義的安全界限。例如,最終使用者字符不允許在其他最終使用者裝置上使用命令;字符提供的許可會映射到平台內的資源。考慮 Lights Incorporated 範例。當最終使用者使用連接器啟動帳戶連結流程時,他們會被重新導向至 Lights Incorporated 登入頁面,該頁面位於授權伺服器前面。一旦他們登入並授予許可給用戶端,就會提供權杖,讓連接器能夠存取其 Lights Incorporated 帳戶中的資源。

資源擁有者 (最終使用者)

身為資源擁有者,您可以允許 AWS IoT Device Management 客戶的受管整合透過執行帳戶連結來存取與您帳戶相關聯的資源。例如,假設終端使用者已加入 Lights Incorporated 行動應用程式的智慧燈泡。資源擁有者是指已購買並加入裝置的最終使用者帳戶。在我們的範例中,資源擁有者會建模為 Lights Incorporated OAuth2.0 帳戶。身為資源擁有者,此帳戶提供發出命令和管理裝置的許可。

資源伺服器

這是託管受保護資源的伺服器,需要授權才能存取 (裝置資料)。 AWS 客戶需要代表最終使用者存取受保護的資源,並透過 AWS IoT Device Management 連接器的受管整合來進行帳戶連結。將 之前的智慧燈泡視為範例,資源伺服器是 Lights Incorporated 擁有的雲端服務,可在燈泡加入後對其進行管理。透過資源伺服器,資源擁有者可以向智慧燈泡發出命令,例如開啟和關閉它。受保護的資源只會提供許可給最終使用者的帳戶,以及他們可能已提供許可的其他帳戶/實體。

用戶端

在此內容中,用戶端是您的 C2C 連接器。用戶端定義為代表最終使用者授予資源伺服器內資源存取權的應用程式。帳戶連結程序代表連接器、用戶端,請求存取第三方雲端中的最終使用者資源。

雖然連接器是 OAuth 用戶端,但 AWS IoT Device Management 的受管整合會代表連接器執行操作。例如,AWS IoT Device Management 的受管整合會向授權伺服器發出請求,以取得存取權杖。連接器仍被視為用戶端,因為它是唯一可存取資源伺服器中受保護資源 (裝置資料) 的元件。

考慮最終使用者已加入的智慧型燈泡。在客戶平台和 Lights Incorporated 授權伺服器之間完成帳戶連結後,連接器本身將與資源伺服器通訊,以擷取最終使用者智慧型燈泡的相關資訊。連接器接著可以從最終使用者接收命令。這包括透過 Lights Incorporated 資源伺服器代表他們開啟或關閉燈光。因此,我們將連接器指定為用戶端。