跳至主要内容

使用 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) 屬性。

重要設定方式

  1. 必須使用 Microsoft AD 範本匯入使用者

    • 前往 IDExpert Cloud 使用者 > 匯入
    • 下載 Microsoft AD 範本
    • 使用 Active Directory PowerShell 匯出使用者資料
  2. 從 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 UTF8
    

    CSV 檔案必須包含以下欄位:

    • sAMAccountName:SAM 帳戶名稱
    • UserPrincipalName:使用者主體名稱
    • mail:電子郵件地址
    • ObjectGUID:物件 GUID(用於產生 Persistence ID)
    • DistinguishedName:辨別名稱
  3. 匯入到 IDExpert Cloud

    • 使用下載的 Microsoft AD 範本格式
    • 將 AD 匯出的資料填入範本
    • 上傳並匯入使用者
  4. 驗證 Persistence ID

    • 匯入完成後,前往 使用者管理
    • 點選任一使用者查看詳細資訊
    • 確認顯示 內部部署固定 ID 欄位

    若使用者沒有 Persistence ID,將無法透過 SAML 登入 Slack。手動建立的使用者預設不具備此屬性,必須透過 AD 匯入。

1.3 使用者電子郵件對應

  • Slack 使用者的電子郵件地址必須與 IDExpert Cloud 使用者的電子郵件地址一致
  • 建議在匯入使用者前,先確認 Slack 工作區中已存在對應的使用者帳號

2. IDExpert Cloud 設定(初次配置)

2.1 建立 SAML 應用程式

  1. 登入 IDExpert Cloud 管理控制台

  2. 前往 應用程式 > 建立應用程式

  3. 選擇 SAML 類型,並搜尋/選擇 Slack 範本

  4. 填寫基本資訊:

    • 應用程式名稱:例如「Slack」
    • 圖示:(可選)上傳 Slack 圖示或使用預設圖示
  5. Service Provider 設定

    請先確認您的 Slack 工作區網址,格式為:https://your-workspace.slack.com

    例如:如果您的工作區網址是 https://idexpertcloud.slack.com,則工作區名稱為 idexpertcloud

    欄位設定值範例
    ACS URLhttps://your-workspace.slack.com/sso/samlhttps://idexpertcloud.slack.com/sso/saml
    Entity IDhttps://your-workspace.slack.comhttps://idexpertcloud.slack.com
    Name ID 格式Persistent必須選擇 Persistent
    簽章項目只簽 Assertion建議設定
    簽章演算法SHA-256SHA-1依 Slack 支援選擇
    • 請將 your-workspace 替換為您實際的 Slack 工作區名稱
    • Name ID 格式必須設定為 Persistent
  6. SSO Portal 設定

    • 若需要將此應用程式顯示在使用者 SSO 入口網站,請勾選此選項
  7. 點擊 建立 並進入 建立結果 頁面

2.2 取得 IdP 資訊

建立完成後,請記錄以下資訊供 Slack 設定使用:

  1. 身分提供者登入 URL(SSO URL / SAML 2.0 Endpoint)

    • 格式:https://your-idexpert-domain/SAMLServlet/saml
    • 請複製完整的 URL
  2. 發行者(Identity Provider Issuer)

    • 此為 IDExpert Cloud 的唯一識別碼
    • 位於應用程式詳細資訊頁面
  3. X.509 憑證(Public Certificate)

    • 點擊 下載憑證 按鈕下載憑證檔案(通常為 .crt.pem 格式)
    • 使用文字編輯器開啟憑證檔案,複製完整內容(包含 BEGIN 和 END 標記)
    -----BEGIN CERTIFICATE-----
    MIIDXTCCAkWgAwIBAgIJAKHD...
    (中間省略)
    ...vXz8kQw==
    -----END CERTIFICATE-----
    

    需要複製包含 BEGIN 和 END 在內的完整內容。

3. Slack 設定

3.1 進入 Slack 管理後台

  1. 登入您的 Slack 工作區

  2. 進入管理設定:

    • Desktop App:點選左上角的 工作區名稱 > Tools & settings > Manage members
    • Web App:點選右側的 More > Administration > Manage members
  3. 在管理後台中,點選左側選單的 AuthenticationSettings & permissions > Authentication

3.2 設定 SAML SSO

  1. 在 Authentication 頁面中,找到 SAML authentication 區域

  2. 點擊 ConfigureChange Settings(若已有設定)

  3. 填入 SAML 設定資訊:

    Slack 欄位IDExpert Cloud 對應值說明
    SAML 2.0 Endpoint (HTTP)身分提供者登入 URL從 IDExpert Cloud 複製
    Identity Provider Issuer發行者 URL從 IDExpert Cloud 複製
    Public CertificateX.509 憑證完整內容包含 BEGIN 和 END 標記
  4. 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 的存取政策:

  1. 回到 IDExpert Cloud 管理控制台

  2. 前往 政策 > 建立政策 或編輯現有政策

  3. 設定政策內容:

    基本設定

    • 政策名稱:例如「Slack SSO 政策」
    • 描述:說明此政策的用途

    驗證方式

    • 選擇允許的驗證方式,例如:
      • 密碼
      • OTP(一次性密碼)
      • 生物辨識
      • 多因素驗證

    使用者群組

    • 重要:必須將包含您自己(管理員)的使用者群組加入此政策
    • 建議先加入測試用的小群組,確認無誤後再擴大範圍
  4. 儲存政策設定

  5. 將此政策指派給 Slack 應用程式:

    • 回到 應用程式 > 找到剛建立的 Slack 應用程式
    • 點擊進入詳細設定
    • 存取政策 區域選擇剛才建立的政策

在進行測試前,請確認:

  • 您的測試帳號已匯入 IDExpert Cloud 且具備 Persistence ID
  • 測試帳號所屬的群組已加入存取政策
  • 測試帳號的電子郵件與 Slack 帳號一致

4.2 驗證使用者設定

  1. 前往 使用者 > 使用者管理

  2. 搜尋並點選要測試的使用者

  3. 確認以下資訊:

    • 內部部署固定 ID:必須有值(來自 ObjectGUID)
    • 電子郵件:與 Slack 帳號一致
    • 狀態:啟用
    • 所屬群組:已加入存取政策的群組

5. 測試驗證

5.1 測試 SAML 連線

  1. 回到 Slack 的 SAML 設定頁面

  2. 點擊 Test Configuration 按鈕

  3. 系統會開啟新視窗或分頁,導向 IDExpert Cloud 登入頁面

  4. 輸入測試帳號的使用者名稱和密碼

  5. 完成必要的多因素驗證(如有設定)

  6. 驗證成功後:

    • Slack 會顯示 Success! 或類似的成功訊息
    • 頁面會自動導回 Slack 管理後台

如果測試失敗,請參考本文件的「疑難排解」章節,常見原因包括:

  • 憑證設定錯誤
  • 使用者缺少 Persistence ID
  • 使用者未加入存取政策
  • URL 設定錯誤

5.2 啟用 SAML SSO

測試成功後,可以啟用 SAML SSO:

  1. 在 Slack SAML 設定頁面,會出現 Enable SSO 選項

  2. 選擇 SSO 模式:

    選項 A:選用模式(建議初期使用)

    • 使用者可以選擇使用 SAML SSO 或原生密碼登入
    • 適合測試階段或部分使用者先行採用

    選項 B:必要模式(正式環境)

    • 所有使用者必須透過 SAML SSO 登入
    • 僅保留工作區擁有者可使用密碼登入(緊急備援)

    強烈建議先使用「選用模式」測試至少一週,確認所有使用者都能正常登入後,再切換為「必要模式」。

  3. 點擊 Save Configuration 儲存設定

  4. Slack 可能會要求您重新驗證管理員身分

5.3 使用者登入測試

  1. 從 Slack 登入

    • 前往 https://your-workspace.slack.com
    • 點擊 Sign in with SAML SSO
    • 輸入電子郵件地址
    • 系統會導向 IDExpert Cloud 進行驗證
    • 驗證成功後自動登入 Slack
  2. 從 IDExpert Cloud SSO 入口(若已啟用):

    • 登入 IDExpert Cloud 使用者入口網站
    • 點擊 Slack 應用程式圖示
    • 系統自動完成驗證並開啟 Slack

6. 疑難排解

常見問題

Q1: 測試時顯示「User not found」或「Invalid user」

原因:使用者缺少 Persistence ID 或 ID 不匹配

解決方式

  1. 確認使用者是透過 Microsoft AD 範本匯入
  2. 檢查使用者詳細資訊中是否有「內部部署固定 ID」欄位
  3. 如果沒有,需要重新使用 AD 範本匯入該使用者
  4. 確認電子郵件地址與 Slack 帳號完全一致

Q2: 測試時顯示憑證錯誤

原因:X.509 憑證格式錯誤或不完整

解決方式

  1. 重新下載 IDExpert Cloud 的憑證
  2. 使用文字編輯器(如記事本)開啟憑證檔案
  3. 確認包含完整的內容:
    -----BEGIN CERTIFICATE-----
    (憑證內容)
    -----END CERTIFICATE-----
    
  4. 複製全部內容(包含開頭和結尾)貼到 Slack
  5. 確保沒有多餘的空格或換行

Q3: 測試時導向 IDExpert Cloud 但顯示 404 錯誤

原因:SAML 2.0 Endpoint URL 設定錯誤

解決方式

  1. 確認 Slack 中設定的 SAML 2.0 Endpoint 與 IDExpert Cloud 提供的完全一致
  2. 檢查 URL 中是否有多餘的空格
  3. 確認 URL 使用 HTTPS 而非 HTTP

Q4: 驗證成功但 Slack 顯示「Account not found」

原因:Slack 工作區中不存在對應的使用者帳號

解決方式

  1. 確認使用者已被邀請加入 Slack 工作區
  2. 檢查 Slack 使用者的電子郵件是否與 IDExpert Cloud 完全一致
  3. 使用者需要先在 Slack 中建立帳號(可以先用密碼登入一次)

Q5: 部分使用者可以登入,部分使用者無法登入

原因:存取政策設定問題或使用者群組設定不正確

解決方式

  1. 檢查 IDExpert Cloud 中該使用者是否屬於正確的群組
  2. 確認該群組已加入 Slack 應用程式的存取政策
  3. 檢查使用者帳號狀態是否為「啟用」
  4. 確認所有使用者都具備 Persistence ID

Q6: Enterprise Grid 環境下多個工作區的設定

原因:Enterprise Grid 需要特殊設定

解決方式

  1. 在 IDExpert Cloud 中為每個工作區建立獨立的 SAML 應用程式
  2. 或使用單一應用程式配合 Slack 的組織層級設定
  3. 參考 Slack Enterprise Grid 官方文件進行設定
  4. 確認每個工作區的 Entity ID 設定正確

7. 參考資源

Slack 官方文件

IDExpert Cloud 相關文件

SAML 技術規範