建立與管理 OAuth 用戶端
OAuth 是一種用於授權和委派的安全通訊協定。它允許第三方應用程式存取 API 資源,而無需揭露終端使用者的認證。OAuth 用戶端會要求授權碼,將其交換為存取 Token,並使用該 Token 透過 API 存取 Qlik Cloud 內容。
OAuth 用戶端類型
OAuth 用戶端是代表使用者要求存取 Qlik Cloud 中資源的 Web 應用程式或軟體。OAuth 定義了兩種用戶端類型 (公用用戶端和機密用戶端),以確保應用程式 (用戶端) 與授權伺服器 (Qlik Cloud) 之間的授權安全。
Qlik Cloud 支援傳統 Web (伺服器端) 應用程式的機密用戶端,以及使用特定授權流程的原生和單頁應用程式的公用用戶端。
如需有關用戶端類型的官方 OAuth 2.0 規格,請參閱 RFC 6749 第 2.1 節:OAuth 2.0 用戶端類型。
公用用戶端
公用用戶端是不使用用戶端密碼的應用程式,因為它們無法維持所需認證的機密性。在 Qlik Cloud 中,這些包括前端應用程式,例如具有內嵌分析的單頁應用程式 (SPA),或 Qlik Sense 中需要使用者驗證的自訂視覺化延伸。
機密用戶端
機密用戶端可以安全地儲存用戶端 ID 和用戶端密碼,並使用它們向授權伺服器進行驗證。這些用戶端可以存取受保護的資源,因為它們擁有用戶端密碼。
範例:具有安全後端的 Web 應用程式,可與 Qlik Cloud API 互動以管理使用者存取或協調資料重新整理工作。
OAuth 授權流程
Qlik 支援兩種授權流程 (授與類型):
-
授權碼流程:適用於機密用戶端。
-
使用代碼交換證明金鑰 (PKCE) 的授權碼流程:適用於公用用戶端。
授權碼流程
此流程由原始碼未公開暴露的伺服器端應用程式使用。它涉及將授權碼交換為存取 Token,並使用用戶端密碼進行驗證。使用此流程的 Web 應用程式必須是伺服器端,因為在 Token 交換期間會將用戶端密碼傳遞給授權伺服器。
如需有關授權碼流程的詳細資訊,請參閱官方 OAuth 2.0 文件:授權碼流程。
使用 PKCE 的授權碼流程
原生和單頁應用程式無法安全地儲存用戶端密碼,因為它們的原始碼可以在瀏覽器中被反編譯或檢查。PKCE 透過要求使用代碼驗證器來取得存取 Token,從而增強了安全性。
如需有關使用 PKCE 進行授權的詳細資訊,請參閱官方 OAuth 2.0 文件:使用代碼交換證明金鑰 (PKCE) 的授權碼流程。
OAuth 範圍和權限
OAuth 範圍定義了授與 OAuth 用戶端應用程式的存取層級。例如,存取 Token 可以允許對資源的完整存取權,或將其限制為唯讀存取權。在 Qlik Cloud 中,範圍控制用戶端對可用功能和資源的存取。如果沒有範圍,用戶端就無法存取任何資源。
API 憑證提供對 Qlik Cloud 的直接程式設計存取,且不限於使用者介面中可用的工作流程。請使用最低權限原則來指派角色與 OAuth 範圍。處理服務帳戶與 API 憑證時,應採取與管理員憑證相同等級的謹慎態度。如需詳細資訊,請參閱 API 存取控制與信任邊界。
可用的 OAuth 範圍
下表列出可用的範圍及其相關權限:
建立 OAuth 用戶端
租用戶管理員在 管理 活動中心的 OAuth 頁面上管理 OAuth 用戶端。透過 OAuth 用戶端,您可以將用戶端應用程式與 Qlik Cloud 整合,以安全地存取資源。
OAuth 用戶端的限制
適用以下限制:
-
每個用戶端最多 5 個重新導向 URL。
-
每個用戶端最多 5 個允許的來源。
-
每個用戶端最多 5 個用戶端密碼。
-
每個租用戶最多 200 個 OAuth 用戶端。
建立 OAuth 用戶端的步驟
請執行下列動作:
-
在 管理 活動中心,移至 OAuth。
-
按一下 建立新項目。
-
選取用戶端類型:
-
Web 適用於機密用戶端。
-
單頁應用程式 或 原生 適用於公用用戶端。
-
匿名內嵌 適用於公用用戶端。
-
-
在對話方塊中,輸入 OAuth 用戶端的名稱。
-
選擇性地新增描述。
-
透過捲動或使用搜尋欄位選取任何可用的範圍。
提示備註使用 全部 和 已選取 按鈕來檢視所有範圍或僅檢視已選取的範圍。 -
輸入 OAuth 用戶端應用程式的一個或多個重新導向 URL (最多 5 個)。然後按一下 新增 將重新導向 URL 新增至允許清單。
-
重新導向 URL 是授權伺服器在成功驗證並授與用戶端應用程式權限後,傳送使用者瀏覽器的位置。例如,https://www.exampleapp.com/oauth/callback,其中 /oauth/callback 處理來自 OAuth 提供者的驗證回呼。
-
只有當其 URL 位於重新導向 URL 的允許清單中時,Qlik Cloud 才會在成功授權後將使用者重新導向回應用程式。
-
URL 必須以 https:// 開頭,除非網域是 localhost,在這種情況下它可以以 http:// 開頭。原生應用程式也可以使用應用程式特定的連結格式,例如 exampleapp://。
-
-
對於 Web 或 單頁應用程式 用戶端類型,指定一個或多個允許的來源 (最多 5 個)。
-
只有將 URL 新增至允許的來源清單時,才會授與對應用程式的存取權。
-
-
對於用戶端類型 Web,您可以啟用下列其中一個選項,以在沒有使用者互動的情況下進行自動化系統存取:
-
允許機器對機器 (M2M):啟用系統對系統通訊,無需使用者參與。
-
允許 M2M 使用者模擬:允許您的應用程式代表使用者進行驗證,在驗證過程中充當他們。
-
-
對於用戶端類型 Web,在 驗證方法 下選取一個或兩個選項:
-
用戶端密碼 (預設)
-
私密金鑰 JWT,這是一種更安全的選項,使用公開/私密金鑰對而不是共用密碼來驗證用戶端。
-
當您選取 私密金鑰 JWT 時,會出現 公開金鑰 欄位。以 JSON Web Key (JWK) 格式輸入第三方應用程式的公開金鑰。私密金鑰保留在您的應用程式中以簽署 JWT。如需有關公開金鑰格式的詳細資訊,請參閱 Qlik 開發人員入口網站上的 建立用於簽署 JWT 的公開/私密金鑰對。
資訊備註公開金鑰取決於您身分識別提供者的需求。如果第三方應用程式的公開金鑰是不同的格式,請使用第三方工具將其轉換為 JWK。
-
-
-
按一下 建立。
-
按一下 複製到剪貼簿 以儲存用戶端 ID 和用戶端密碼供日後使用。安全地儲存用戶端密碼。
資訊備註公用用戶端沒有用戶端密碼。 -
按一下 完成。
特定使用案例的 OAuth 用戶端
如需 OAuth 用戶端使用案例,請參閱下列資源:
-
Qlik 開發人員入口網站上的 OAuth 概觀:OAuth 使用案例和不同 OAuth 類型的概觀。
-
建立適用於 Microsoft Office 的 Qlik 增益集的 OAuth 用戶端:設定 OAuth 用戶端以安裝適用於 Microsoft Excel 的 Qlik 增益集。
-
建立用於匿名內嵌應用程式內容的 OAuth 用戶端:建立 OAuth 用戶端以啟用對內嵌應用程式內容的匿名存取。
建立適用於 Microsoft Office 的 Qlik 增益集的 OAuth 用戶端
需要 OAuth 用戶端設定才能安裝 Microsoft Office 的 Qlik 增益集。增益集由報告開發人員用來準備 報告範本,以便搭配 Qlik Cloud 進行應用程式內報告。
為了讓 OAuth 在增益集運作,需要使用以下所示的確切設定來設定 OAuth 用戶端。
請執行下列動作:
-
在 管理 活動中心內,於 Qlik Cloud 中,前往 OAuth。
-
按一下新建。
-
在用戶端類型下拉式功能表中,選取單頁應用程式。將會顯示更多欄位。
-
插入名稱。描述為選填。
-
至少應選取核取方塊,以納入 user_default 範圍。您可以在設定中納入其他範圍,但沒有 user_default,安裝將無法運作。
請參閱 可用的 OAuth 範圍 瞭解每個可用範圍的完整描述。
-
在新增重新導向 URL 欄位中,插入 Qlik Cloud 租用戶的 URL,接著插入此固定字串:/office-add-ins/oAuthLoginSuccess.html
結果應如下所示:https://<tenant or alias hostname>.<region>.qlikcloud.com/office-add-ins/oAuthLoginSuccess.html。例如:http://example-company-123.us.qlikcloud.com/office-add-ins/oAuthLoginSuccess.html
-
按一下新增。
-
在新增允許來源欄位中,插入租用戶 URL,並按一下新增。
-
按一下建立。
-
就會顯示複製用戶端 ID 視窗。您可以選擇將用戶端 ID 複製到剪貼簿,或按一下完成以關閉視窗。
建立 OAuth 用戶端後,從 管理 活動中心取得更新後的資訊清單 XML 連結。前往 設定 頁面,並選取 電子郵件與報告 索引標籤。在 共用與報告 區段中,選取 Microsoft Office 的 Qlik 增益集。使用提供的連結部署並安裝增益集。
如需有關產生資訊清單檔案,以及部署和安裝增益集的詳細資訊,請參閱:
建立用於匿名內嵌應用程式內容的 OAuth 用戶端
若要使用 qlik-embed 內嵌應用程式內容以進行匿名存取,您需要建立具有專為此使用案例設計之類型的 OAuth 用戶端。
請執行下列動作:
-
在 管理 活動中心,移至 OAuth 區段。
-
按一下 建立新項目。
-
在 用戶端類型 下拉式功能表中,選取 匿名內嵌。
-
輸入 OAuth 用戶端的 名稱,並選擇性地輸入 描述。
-
在 允許的來源 下,輸入您需要授權的每個來源。這些是將存取 Qlik Cloud 租用戶以擷取內嵌分析資訊的網域。
插入每個 URL 後按一下 新增。
-
完成後,按一下 建立。
-
按一下 複製到剪貼簿 以儲存用戶端 ID 供日後使用。當應用程式內容與 qlik-embed 內嵌時將會需要它。
-
按一下 完成。
編輯 OAuth 用戶端
您可以重新命名 OAuth 用戶端、更新描述或管理重新導向 URL。
請執行下列動作:
- 在 管理 活動中心,移至 OAuth。
- 找出您要編輯的 OAuth 用戶端。
- 按一下
,然後選取 編輯。
- 視需要修改 OAuth 用戶端選項。
- 按一下 儲存。
刪除 OAuth 用戶端
當不再需要 OAuth 用戶端或要撤銷存取權時,您可以將其刪除。
請執行下列動作:
-
在 管理 活動中心,移至 OAuth。
-
選取一個或多個您要移除的 OAuth 用戶端,然後按一下 刪除。
- 確認刪除。
發佈 OAuth 用戶端
OAuth 用戶端最初會繫結至建立它們的租用戶。不過,您可以將 OAuth 用戶端設定為在同一區域內的多個租用戶之間共用。這可讓第三方應用程式在不同的 Qlik Cloud 租用戶中使用相同的用戶端 ID。
應用程式擁有者可以輪替密碼並更新設定,而無需與租用戶管理員互動。租用戶管理員不需要管理認證,也不需要了解已發佈用戶端的任何設定詳細資訊。
若要允許其他租用戶連線至 OAuth 用戶端,您必須將其發佈。
請執行下列動作:
- 在 管理 活動中心,移至 OAuth。
- 找出您要發佈的 OAuth 用戶端。
- 按一下用戶端旁邊的
,然後選取 發佈。
- 按一下 發佈 以確認。
發佈 OAuth 用戶端後,其他租用戶即可將其用於外部用途。當使用者造訪使用此 OAuth 用戶端的外部網站時,系統會提示他們輸入其租用戶主機名稱和使用者認證,除非他們已經有作用中的 SaaS 工作階段。
初始登入將需要租用戶管理員的同意。核准後,OAuth 用戶端將出現在租用戶的 管理 活動中心。
同意方法
根據預設,Qlik Cloud 會在驗證時提示使用者同意。為了簡化流程,特別是對於受信任的應用程式,您可以將同意方法設定為「受信任」,這會略過同意提示。
同意有兩個選項:
-
必要:每次 OAuth 用戶端要求新範圍時,都會提示使用者同意。此方法可確保使用者明確核准每個存取層級。
-
受信任:不會提示使用者同意。此選項僅適用於未發佈的用戶端。對於已發佈的用戶端,同意方法一律為 必要,以維持跨多個租用戶的安全性。
變更同意方法
若要變更 OAuth 用戶端的同意方法,請執行下列動作:
- 在 管理 活動中心,移至 OAuth。
- 在 OAuth 用戶端上,按一下
並選取 變更同意方法。
- 選取 必要 或 受信任,然後按一下 變更同意方法。
檢視和複製 OAuth 設定
在 管理 活動中心的 OAuth 區段中,選取 檢視 OAuth 設定 以顯示您 Qlik Cloud 租用戶的驗證詳細資訊。這將顯示包含 OAuth 端點和設定的程式碼片段,以及您可以複製以在外部應用程式中使用的 URL。
您可以使用此設定將 Qlik Cloud 與第三方應用程式整合、自動化 API 存取,或設定內嵌分析的驗證。
管理用戶端密碼
如果用戶端密碼遭到入侵,或您的安全性原則需要定期更新,您可以新增或移除密碼。為避免停機,您可以新增多個用戶端密碼 (最多 5 個),更新您的用戶端應用程式,然後移除舊密碼。
新增用戶端密碼
請執行下列動作:
- 在 管理 活動中心,移至 OAuth。
- 找出 OAuth 用戶端。
- 按一下
並選取 管理密碼。
- 按一下 產生新的用戶端密碼。
-
複製用戶端密碼和用戶端 ID,並安全地儲存它們。
資訊備註您稍後將無法存取用戶端密碼。 - 按一下 關閉。
移除用戶端密碼
請執行下列動作:
- 在 管理 活動中心,移至 OAuth。
- 找出 OAuth 用戶端。
- 按一下
並選取 管理密碼。
- 按一下用戶端密碼旁邊的
。
- 按一下 關閉。
更多關於 OAuth 用戶端的資訊
後續步驟:建置 OAuth 用戶端應用程式
向 Qlik Cloud 註冊 OAuth 用戶端後,您可以建置 OAuth 用戶端應用程式以存取 Qlik Cloud 內容。在您的應用程式中使用相關聯的用戶端 ID 和用戶端密碼。
如需逐步指引,請參閱 Qlik 開發人員入口網站的 OAuth 概觀 區段中的教學課程。這些教學課程涵蓋如何使用熱門的程式設計語言建置用戶端應用程式。
組織層級的 OAuth 用戶端
除了租用戶特定的 OAuth 用戶端之外,您還可以使用組織層級的 OAuth 用戶端。身為服務帳戶擁有者 (SAO),您可以建立和管理這些用戶端。組織層級的 OAuth 用戶端可提供對您訂閱中所有租用戶的租用戶資訊的存取權。
如需詳細資訊,請參閱 在 My Qlik 中管理 OAuth 用戶端。