附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure Free Tier 。
- 它使用 Oracle Cloud Infrastructure 憑證、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特有的值。
整合 Rocket.Chat 與單一登入的識別網域
簡介
Rocket.Chat 是一個安全且高度可自訂的開放原始碼通訊平台,適用於需要複雜安全性和隱私考量事項的組織。Rocket.Chat 可完全控制使用者資料與對話。此平台支援原生應用程式、與第三方應用程式無縫整合、跨通路協同合作、安全宣告標記語言 (SAML) 型單一登入 (SSO) 及使用 API 進行組態控制。
Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 是一個容器,可透過設定 Oracle SSO 組態和以 SAML/OAuth 為基礎的身分識別提供者 (IdP) 管理,用於管理使用者和角色、同盟及佈建使用者、保護應用程式整合。
在本教學課程中,我們將自動安裝 Rocket.Chat,並將 OCI IAM 整合為 SSO 的 IdP。
目標
-
使用 Terraform 型堆疊建立下列資源。
- 金鑰存放區與硬體安全模組 (HSM) 保護的金鑰。
- 憑證與憑證授權機構 (CA)。
- 代管 Rocket.Chat 的 OCI Compute 執行處理。
- OCI 負載平衡器可安全地存取 Rocket.Chat。
-
自動在運算執行處理上部署 Rocket.Chat,並在其中新增建立的負載平衡器。
-
設定 Rocket.Chat 並為 OCI IAM 建立以 SAML 為基礎的 IdP。
-
測試 OCI IAM 與 Rocket.Chat 之間的 SSO 流程。
必要條件
-
作用中的 OCI 訂閱。
-
識別網域和其上的管理帳戶。
-
熟悉 OCI IAM 和 Terraform。
-
現有的 VCN 和公用子網路。
-
已開啟下列連接埠的安全清單以進行傳入流量。
Type 來源連接埠 來源 CIDR 目的地連接埠 通訊協定 描述 傳入 全部 0.0.0.0/0 22 TCP SSH 傳入 全部 0.0.0.0/0 3000 TCP Rocket.Chat 伺服器 傳入 全部 0.0.0.0/0 443 TCP 標準 HTTPS 連接埠 傳入 全部 0.0.0.0/0 80 TCP 下列連接埠的 TCP 流量:80
作業 1:部署堆疊以安裝 Rocket.Chat,並使用自動 Terraform 堆疊建立 SAML 應用程式
您可以使用不同的方法來部署 Rocket.Chat。本教學課程使用搭配 Docker 與 Docker 編寫一起部署選項。如需詳細資訊,請參閱部署 Rocket.Chat 。
為了簡化 Rocket.Chat 的安裝,我們建立了 Terraform 自動化堆疊。此堆疊將:
- 建立 VM.Standard.E2.1 資源配置的主機 Linux 方塊。
- 在上安裝 Rocket.Chat。
- 建立透過網際網路進行安全通訊端層 (SSL) 通訊的金鑰存放區、受 HSM 保護的金鑰、憑證授權單位以及憑證。
- 部署負載平衡器並設定它以透過 SSL 存取 Rocket.Chat。
- 在現有的識別網域底下建立 SAML 應用程式。
注意:執行連結的堆疊之前,請務必檢查要建立之資源的服務限制。如需詳細資訊,請參閱 IAM With Identity Domains Limits 。
-
從此處下載 Rocket.Chat 完整堆疊:Full_Stack_Rocket.Chat.zip 。
下載 Rocket.Chat 完整堆疊壓縮檔之後,將檔案解壓縮,並以私密金鑰的個別內容取代
-rchat.pem
檔案的內容。注意:請使用 OCI 主控台中的 OCI 資源管理程式來部署堆疊,以避免發生任何失敗。
-
以管理員使用者身分登入 OCI 主控台,瀏覽至開發人員服務,在資源管理程式底下,按一下堆疊。
-
選取區間,然後按一下建立堆疊。在堆疊組態段落中,選取要在步驟 1 中下載來建置堆疊的堆疊壓縮檔,然後按下一步。
-
在設定變數頁面中,輸入建立運算執行處理和其他資源所需的詳細資訊,然後按下一步。
注意:若要建立運算執行處理和負載平衡器,您將需要現有的 VCN 與公用連線。
-
在複查頁面中,複查提供的詳細資訊,然後按一下建立。
-
在堆疊詳細資訊頁面中,按一下計畫。您應該得到成功 (Success) 輸出。
-
在堆疊詳細資訊頁面中,按一下套用。您應該得到成功 (Success) 輸出。
-
成功執行堆疊後,您可以在 IAM 網域中找到連附至代管 Rocket.Chat 之運算執行處理和 SAML 應用程式的負載平衡器。
注意:堆疊執行大約需要 40 分鐘。等待直到工作成功。
工作 2:設定 Rocket.Chat 管理帳戶
在這項作業中,我們將會更新本機系統上的主機檔案,然後驗證部署的資源。
Windows:C:\Windows\System32\Drivers\etc\hosts
。
若為 Linux:/etc/hosts
Public IP Address of Load Balancer your-domain-name.com
存取位於 https://your-domain-name.com:443
的 Rocket.Chat,系統會將您重新導向至設定頁面。
注意:請保護管理員密碼,在 Rocket.Chat 中建立 SAML IdP 時,我們需要此密碼。
工作 3:在 Rocket.Chat 中建立單一登入的 SAML IdP
-
登入您的 Rocket.Chat 執行處理,瀏覽至工作區和設定值。
-
在設定值視窗中,輸入 SAML 並按一下開啟。
-
在連線頁面中,選取啟用。輸入下列詳細資訊,然後按一下儲存變更。如果提示輸入管理密碼,請輸入密碼。
-
自訂提供者:輸入
idcs
。 -
更新自訂進入點:輸入您的自訂進入點。例如,
https://idcs-xxxx.identity.oraclecloud.com/fed/v1/idp/sso
。 -
IDP SLO 重新導向 URL:輸入您的 IdP SLO 重新導向 URL。例如,
https://idcs-xxxx.identity.oraclecloud.com/fed/v1/idp/slo
。 -
自訂發照者:輸入自訂發照者。例如,
https://your-domain-name.com/_saml/metadata/idcs
。 -
自訂憑證:從使用堆疊建立的 SAML 應用程式下載簽署憑證並複製內容。
注意:請排除 BEGIN CERTIFICATE 與 END CERTIFICATE 行。
-
公用憑證內容:複製憑證的整個內容。
-
簽章驗證類型:選取驗證宣告簽章。
注意:請使用相同的自訂提供者靜態值,否則 SSO 可能會因為在「工作 1」中建立的 SAML 應用程式中所參照而失敗。
-
-
在一般頁面的使用者介面區段下,如果您需要變更按鈕文字和其他詳細資訊,請按一下儲存變更。
工作 4:使用 OCI IAM 測試 Rocket.Chat 的 SSO
-
開啟您的瀏覽器,然後輸入 Rocket.Chat
https://demo.rocketchat.com:443
的 URL。 -
此時會顯示 OCI IAM 識別網域登入頁面。使用先前建立之使用者的使用者名稱和密碼。
-
認證成功後,會將使用者重新導向至 Rocket.Chat 首頁。
注意:您應該在 OCI IAM 和 Rocket.Chat 中建立具有相同電子郵件地址的通用使用者。
使用 OCI IAM 進行 Rocket.Chat SSO 的常見疑難排解案例
-
確定您已啟用網域、網域、設定值和階段作業設定值底下的允許跨來源資源共用 (CORS) 。
-
如果您的 Rocket.Chat 執行處理需要一些時間才能載入,您可以嘗試在執行處理中 SSH,然後使用下列命令重新啟動您的 Docker 編寫。
docker compose down docker compose up -d
相關連結
認可
- 作者 - Chetan Soni (雲端解決方案工程師)
其他學習資源
瀏覽 docs.oracle.com/learn 的其他實驗室,或前往 Oracle Learning YouTube 頻道存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Integrate Rocket.Chat with Identity Domains for Single Sign-On
G12062-03
August 2024