使用 IDExpert Cloud 串接 Slack SAML
本文件說明如何透過 SAML 2.0 協定,整合 IDExpert Cloud 與 Slack 進行單一登入 (SSO)。
1. 前置準備
在開始設定前,請確認滿足以下條件:
1.1 系統需求
-
Slack 授權方案:您的 Slack 工作區必須為以下方案之一:
- Business+ 方案
- Enterprise Grid 方案
免費版和標準版 Slack 不支援 SAML SSO 功能。若不確定您的方案,請前往 Slack 工作區設定 > 計費 (Billing) 查看。
-
帳號權限:
- 需擁有 Slack 工作區擁有者 (Workspace Owner) 或管理員 (Admin) 權限
- 需擁有 IDExpert Cloud 系統管理員(Admin)或系統負責人(Root)權限
1.2 使用者屬性需求
Slack SAML 整合需要使用者具備 Persistence ID(內部部署固定 ID) 屬性。
重要設定方式:
-
必須使用 Microsoft AD 範本匯入使用者
- 前往 IDExpert Cloud 使用者 > 匯入
- 下載 Microsoft AD 範本
- 使用 Active Directory PowerShell 匯出使用者資料
-
從 Active Directory 匯出使用者資料
執行以下 PowerShell 指令:
Get-ADUser -Filter * -Properties mail, ObjectGUID | Select-Object sAMAccountName, UserPrincipalName, mail, ObjectGUID, DistinguishedName | Export-Csv -Path "C:\temp\AD_Users_Export.csv" -NoTypeInformation -Encoding UTF8CSV 檔案必須包含以下欄位:
sAMAccountName:SAM 帳戶名稱UserPrincipalName:使用者主體名稱mail:電子郵件地址ObjectGUID:物件 GUID(用於產生 Persistence ID)DistinguishedName:辨別名稱
-
匯入到 IDExpert Cloud
- 使用下載的 Microsoft AD 範本格式
- 將 AD 匯出的資料填入範本
- 上傳並匯入使用者
-
驗證 Persistence ID
- 匯入完成後,前往 使用者管理
- 點選任一使用者查看詳細資訊
- 確認顯示 內部部署固定 ID 欄位
若使用者沒有 Persistence ID,將無法透過 SAML 登入 Slack。手動建立的使用者預設不具備此屬性,必須透過 AD 匯入。
1.3 使用者電子郵件對應
- Slack 使用者的電子郵件地址必須與 IDExpert Cloud 使用者的電子郵件地址一致
- 建議在匯入使用者前,先確認 Slack 工作區中已存在對應的使用者帳號
2. IDExpert Cloud 設定(初次配置)
2.1 建立 SAML 應用程式
-
登入 IDExpert Cloud 管理控制台
-
前往 應用程式 > 建立應用程式
-
選擇 SAML 類型,並搜尋/選擇 Slack 範本
-
填寫基本資訊:
- 應用程式名稱:例如「Slack」
- 圖示:(可選)上傳 Slack 圖示或使用預設圖示
-
Service Provider 設定:
請先確認您的 Slack 工作區網址,格式為:
https://your-workspace.slack.com例如:如果您的工作區網址是
https://idexpertcloud.slack.com,則工作區名稱為idexpertcloud欄位 設定值 範例 ACS URL https://your-workspace.slack.com/sso/samlhttps://idexpertcloud.slack.com/sso/samlEntity ID https://your-workspace.slack.comhttps://idexpertcloud.slack.comName ID 格式 Persistent必須選擇 Persistent 簽章項目 只簽 Assertion建議設定 簽章演算法 SHA-256或SHA-1依 Slack 支援選擇 - 請將
your-workspace替換為您實際的 Slack 工作區名稱 - Name ID 格式必須設定為 Persistent
- 請將
-
SSO Portal 設定:
- 若需要將此應用程式顯示在使用者 SSO 入口網站,請勾選此選項
-
點擊 建立 並進入 建立結果 頁面
2.2 取得 IdP 資訊
建立完成後,請記錄以下資訊供 Slack 設定使用:
-
身分提供者登入 URL(SSO URL / SAML 2.0 Endpoint):
- 格式:
https://your-idexpert-domain/SAMLServlet/saml - 請複製完整的 URL
- 格式:
-
發行者(Identity Provider Issuer):
- 此為 IDExpert Cloud 的唯一識別碼
- 位於應用程式詳細資訊頁面
-
X.509 憑證(Public Certificate):
- 點擊 下載憑證 按鈕下載憑證檔案(通常為
.crt或.pem格式) - 使用文字編輯器開啟憑證檔案,複製完整內容(包含 BEGIN 和 END 標記)
-----BEGIN CERTIFICATE----- MIIDXTCCAkWgAwIBAgIJAKHD... (中間省略) ...vXz8kQw== -----END CERTIFICATE-----需要複製包含 BEGIN 和 END 在內的完整內容。
- 點擊 下載憑證 按鈕下載憑證檔案(通常為
3. Slack 設定
3.1 進入 Slack 管理後台
-
登入您的 Slack 工作區
-
進入管理設定:
- Desktop App:點選左上角的 工作區名稱 > Tools & settings > Manage members
- Web App:點選右側的 More > Administration > Manage members
-
在管理後台中,點選左側選單的 Authentication 或 Settings & permissions > Authentication
3.2 設定 SAML SSO
-
在 Authentication 頁面中,找到 SAML authentication 區域
-
點擊 Configure 或 Change Settings(若已有設定)
-
填入 SAML 設定資訊:
Slack 欄位 IDExpert Cloud 對應值 說明 SAML 2.0 Endpoint (HTTP) 身分提供者登入 URL 從 IDExpert Cloud 複製 Identity Provider Issuer 發行者 URL 從 IDExpert Cloud 複製 Public Certificate X.509 憑證完整內容 包含 BEGIN 和 END 標記 -
Service Provider Issuer 欄位會自動填入您的 Slack 工作區 URL,確認正確即可
3.3 進階選項設定(Advanced Options)
展開 Advanced Options 區域,建議進行以下設定:
-
AuthnContextClassRef:
- 保持預設值或選擇適合的驗證等級
-
Sign AuthnRequest:
- 建議勾選此選項以提升安全性
- 若 IDExpert Cloud 支援,可啟用此功能
-
Settings for multiple workspaces:
- 若使用 Enterprise Grid 管理多個工作區,可在此設定
- 測試階段建議保持較寬鬆的設定
- 確認功能正常後再啟用額外的安全選項
3.4 儲存設定
完成設定後,點擊 Save Configuration(尚未啟用)或繼續下一步進行測試。
4. IDExpert Cloud 設定(完成配置)
4.1 設定存取政策
在測試 SAML 連線前,必須先設定 IDExpert Cloud 的存取政策:
-
回到 IDExpert Cloud 管理控制台
-
前往 政策 > 建立政策 或編輯現有政策
-
設定政策內容:
基本設定:
- 政策名稱:例如「Slack SSO 政策」
- 描述:說明此政策的用途
驗證方式:
- 選擇允許的驗證方式,例如:
- 密碼
- OTP(一次性密碼)
- 生物辨識
- 多因素驗證
使用者群組:
- 重要:必須將包含您自己(管理員)的使用者群組加入此政策
- 建議先加入測試用的小群組,確認無誤後再擴大範圍
-
儲存政策設定
-
將此政策指派給 Slack 應用程式:
- 回到 應用程式 > 找到剛建立的 Slack 應用程式
- 點擊進入詳細設定
- 在 存取政策 區域選擇剛才建立的政策
在進行測試前,請確認:
- 您的測試帳號已匯入 IDExpert Cloud 且具備 Persistence ID
- 測試帳號所屬的群組已加入存取政策
- 測試帳號的電子郵件與 Slack 帳號一致
4.2 驗證使用者設定
-
前往 使用者 > 使用者管理
-
搜尋並點選要測試的使用者
-
確認以下資訊:
- 內部部署固定 ID:必須有值(來自 ObjectGUID)
- 電子郵件:與 Slack 帳號一致
- 狀態:啟用
- 所屬群組:已加入存取政策的群組
5. 測試驗證
5.1 測試 SAML 連線
-
回到 Slack 的 SAML 設定頁面
-
點擊 Test Configuration 按鈕
-
系統會開啟新視窗或分頁,導向 IDExpert Cloud 登入頁面
-
輸入測試帳號的使用者名稱和密碼
-
完成必要的多因素驗證(如有設定)
-
驗證成功後:
- Slack 會顯示 Success! 或類似的成功訊息
- 頁面會自動導回 Slack 管理後台
如果測試失敗,請參考本文件的「疑難排解」章節,常見原因包括:
- 憑證設定錯誤
- 使用者缺少 Persistence ID
- 使用者未加入存取政策
- URL 設定錯誤
5.2 啟用 SAML SSO
測試成功後,可以啟用 SAML SSO:
-
在 Slack SAML 設定頁面,會出現 Enable SSO 選項
-
選擇 SSO 模式:
選項 A:選用模式(建議初期使用)
- 使用者可以選擇使用 SAML SSO 或原生密碼登入
- 適合測試階段或部分使用者先行採用
選項 B:必要模式(正式環境)
- 所有使用者必須透過 SAML SSO 登入
- 僅保留工作區擁有者可使用密碼登入(緊急備援)
強烈建議先使用「選用模式」測試至少一週,確認所有使用者都能正常登入後,再切換為「必要模式」。
-
點擊 Save Configuration 儲存設定
-
Slack 可能會要求您重新驗證管理員身分
5.3 使用者登入測試
-
從 Slack 登入:
- 前往
https://your-workspace.slack.com - 點擊 Sign in with SAML SSO
- 輸入電子郵件地址
- 系統會導向 IDExpert Cloud 進行驗證
- 驗證成功後自動登入 Slack
- 前往
-
從 IDExpert Cloud SSO 入口(若已啟用):
- 登入 IDExpert Cloud 使用者入口網站
- 點擊 Slack 應用程式圖示
- 系統自動完成驗證並開啟 Slack
6. 疑難排解
常見問題
Q1: 測試時顯示「User not found」或「Invalid user」
原因:使用者缺少 Persistence ID 或 ID 不匹配
解決方式:
- 確認使用者是透過 Microsoft AD 範本匯入
- 檢查使用者詳細資訊中是否有「內部部署固定 ID」欄位
- 如果沒有,需要重新使用 AD 範本匯入該使用者
- 確認電子郵件地址與 Slack 帳號完全一致
Q2: 測試時顯示憑證錯誤
原因:X.509 憑證格式錯誤或不完整
解決方式:
- 重新下載 IDExpert Cloud 的憑證
- 使用文字編輯器(如記事本)開啟憑證檔案
- 確認包含完整的內容:
-----BEGIN CERTIFICATE----- (憑證內容) -----END CERTIFICATE----- - 複製全部內容(包含開頭和結尾)貼到 Slack
- 確保沒有多餘的空格或換行
Q3: 測試時導向 IDExpert Cloud 但顯示 404 錯誤
原因:SAML 2.0 Endpoint URL 設定錯誤
解決方式:
- 確認 Slack 中設定的 SAML 2.0 Endpoint 與 IDExpert Cloud 提供的完全一致
- 檢查 URL 中是否有多餘的空格
- 確認 URL 使用 HTTPS 而非 HTTP
Q4: 驗證成功但 Slack 顯示「Account not found」
原因:Slack 工作區中不存在對應的使用者帳號
解決方式:
- 確認使用者已被邀請加入 Slack 工作區
- 檢查 Slack 使用者的電子郵件是否與 IDExpert Cloud 完全一致
- 使用者需要先在 Slack 中建立帳號(可以先用密碼登入一次)
Q5: 部分使用者可以登入,部分使用者無法登入
原因:存取政策設定問題或使用者群組設定不正確
解決方式:
- 檢查 IDExpert Cloud 中該使用者是否屬於正確的群組
- 確認該群組已加入 Slack 應用程式的存取政策
- 檢查使用者帳號狀態是否為「啟用」
- 確認所有使用者都具備 Persistence ID
Q6: Enterprise Grid 環境下多個工作區的設定
原因:Enterprise Grid 需要特殊設定
解決方式:
- 在 IDExpert Cloud 中為每個工作區建立獨立的 SAML 應用程式
- 或使用單一應用程式配合 Slack 的組織層級設定
- 參考 Slack Enterprise Grid 官方文件進行設定
- 確認每個工作區的 Entity ID 設定正確
7. 參考資源
Slack 官方文件
- Slack - Custom SAML single sign-on
- Slack Enterprise Grid - SAML SSO
- Slack - Manage authentication policies