跳至主要内容

使用 IDExpert Cloud 串接 Microsoft 365 SAML

本文件說明如何透過 SAML 2.0 協定,整合 IDExpert Cloud 與 Microsoft 365(Office 365)進行單一登入 (SSO)。

1. 前置準備

在開始設定前,請確認滿足以下條件:

1.1 系統需求

  • 授權方案:Microsoft 365 需為企業版或商務進階版以上方案。
  • 帳號權限
    • 需擁有 Microsoft 365 全域管理員權限
    • 需擁有 IDExpert Cloud 系統管理員(Admin)或系統負責人(Root)權限
  • 技術需求
    • Windows PowerShell(用於設定 Microsoft 365 聯合身分驗證)
    • MSOnline PowerShell 模組
    • Active Directory PowerShell 模組(若需從 AD 匯出使用者資料)

1.2 使用者資料準備

Microsoft 365 與 IDExpert Cloud 整合需要使用者資料的正確對應,有以下兩種準備方式:

方式一:手動建立使用者(適合少量使用者)

直接在 IDExpert Cloud 平台建立使用者,並手動設定必要屬性。

方式二:從 Active Directory 匯入(建議)

若組織使用 Active Directory,建議使用 Microsoft AD 範本匯入使用者資料,此方式可自動帶入 Microsoft 365 整合所需的關鍵屬性。

使用者屬性對應關係

IDExpert Cloud 屬性Microsoft 365 屬性說明
UserPrincipalNameUserPrincipalName使用者主體名稱,必須一致
ObjectGUIDImmutableID用於身分對應的唯一識別碼
sAMAccountName-Windows 登入名稱(從 AD 匯入時保留)
mailEmail電子郵件地址

若您計劃整合 Microsoft 365,強烈建議使用 Microsoft AD 範本匯入使用者,以確保包含 ObjectGUID 等必要屬性。手動建立的使用者若缺少這些屬性,後續需要額外設定才能正常使用 SSO。

若您的組織不需要使用自訂網域,可以跳過「設定網域同盟認證」的步驟。但請注意,未設定網域同盟的情況下,使用者可以透過 Microsoft 365 原生登入頁面或 IDExpert Cloud SSO 入口兩種方式登入。

2. 使用者資料匯入(建議先完成)

在設定 SAML 應用程式前,建議先將使用者資料匯入 IDExpert Cloud。這樣可以確保使用者屬性正確設定,避免後續需要重新設定。

2.1 從 Active Directory 匯出使用者資料

步驟 1:準備 PowerShell 環境

  1. 在 Active Directory 網域控制器或已安裝 AD 管理工具的電腦上,以系統管理員身分開啟 Windows PowerShell

  2. 確認已安裝 Active Directory PowerShell 模組:

    Get-Module -ListAvailable ActiveDirectory
    
  3. 如未安裝,請執行以下指令安裝:

    Import-Module ActiveDirectory
    

步驟 2:匯出使用者資料

執行以下指令將 AD 使用者資料匯出為 CSV 檔案:

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
  • -Filter *:查詢所有使用者
  • -Properties mail, ObjectGUID:額外取得 mail 和 ObjectGUID 屬性
  • Select-Object:選擇要匯出的屬性欄位
  • -Path:指定輸出檔案路徑(請依實際需求修改)
  • -Encoding UTF8:使用 UTF-8 編碼以支援中文字元

步驟 3:檢查匯出結果

  1. 開啟 C:\temp\AD_Users_Export.csv 檔案

  2. 確認檔案包含以下欄位:

    • sAMAccountName:SAM 帳戶名稱
    • UserPrincipalName:使用者主體名稱
    • mail:電子郵件地址
    • ObjectGUID:物件的全域唯一識別碼(Microsoft 365 整合必需
    • DistinguishedName:辨別名稱
  3. 檢查資料正確性,移除不需要匯入的測試帳號或系統帳號

  • 如果 AD 中有大量使用者,執行時間可能較長
  • 建議先使用 -Filter "Name -like '*test*'" 測試小範圍查詢
  • 確保目標資料夾存在且有足夠磁碟空間

2.2 匯入使用者到 IDExpert Cloud

步驟 1:下載並準備範本

  1. 登入 IDExpert Cloud 管理控制台

  2. 前往 使用者 > 匯入

  3. 點擊 下載範本 按鈕

  4. 選擇範本類型:Microsoft AD

    若後續需要建立 Microsoft 365 SAML 整合,必須選用 Microsoft AD 範本,此範本包含 ObjectGUID 等 Microsoft 365 整合所需的特殊屬性欄位。

  5. 下載範本後,將從 AD 匯出的使用者資料複製到範本中,或依照範本格式調整您的 CSV 檔案

步驟 2:設定匯入選項

  1. 上傳準備好的 CSV 檔案

  2. 選擇 重複處理方式

    • 忽略:遇到重複或已存在的使用者時跳過,不進行任何修改
    • 僅更新 AD 相關參數:僅更新 AD 相關屬性(如 ObjectGUID、DistinguishedName),不影響使用者的基本帳號設定
    • 首次匯入:選擇「忽略」以避免意外覆蓋現有資料
    • 更新 AD 屬性:選擇「僅更新 AD 相關參數」以補充或更新 Microsoft 365 整合所需的屬性
  3. 點擊 匯入 開始處理

步驟 3:驗證匯入結果

  1. 匯入完成後,前往 使用者 > 使用者管理

  2. 使用搜尋功能確認使用者已成功匯入

  3. 點選使用者查看詳細資訊,確認以下屬性是否正確:

    • UserPrincipalName
    • Email
    • ObjectGUID(在 AD 相關屬性中)
  4. 若發現問題,可使用「僅更新 AD 相關參數」選項重新匯入修正

2.3 使用者角色與權限設定(選用)

匯入的使用者預設為「一般使用者(User)」角色。若需要指派管理權限:

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

  2. 搜尋並點選要修改的使用者

  3. 在使用者詳細資訊頁面修改 角色權限

    • 一般使用者(User):僅能使用 SSO 登入服務和管理個人載具
    • 系統管理員(Admin):可管理使用者、群組、政策、應用程式等系統功能
    • 系統負責人(Root):擁有所有系統功能的完整權限
  4. 儲存變更

完整的角色權限對照表請參考 使用者管理及權限 文件。

3. IDExpert Cloud SAML 設定

3.1 建立 SAML 應用程式

  1. 登入 IDExpert Cloud 管理控制台。

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

  3. 選擇 SAML 類型,並搜尋/選擇 Microsoft 365 範本。

  4. 填寫基本資訊:

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

    欄位設定值
    ACS URLhttps://login.microsoftonline.com/login.srf
    Entity IDurn:federation:MicrosoftOnline
    Name ID 格式Persistent
    簽章項目只簽 Assertion
    簽章演算法SHA-1

    Name ID 格式必須選擇 Persistent,否則會導致驗證失敗。

  6. SSO Portal 設定

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

3.2 取得 IdP 資訊

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

  1. 身分提供者登入 URL(SSO URL)

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

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

    • 點擊 下載憑證 按鈕下載 .cer.pem 格式憑證
    • 或使用文字編輯器開啟憑證並複製內容(不含 -----BEGIN CERTIFICATE----------END CERTIFICATE----- 標頭)

3.3 設定使用者屬性對應

  1. 在應用程式設定頁面,確認 Name ID 對應設定:

    • Name ID 格式:Persistent
    • Name ID 來源:objectGUID 或其他與 Microsoft 365 ImmutableID 對應的唯一識別碼
  2. 若使用者是透過 Microsoft AD 範本匯入,系統會自動使用 ObjectGUID 作為 Name ID

  3. 確認設定後儲存

4. Microsoft 365 設定

4.1 使用 PowerShell 設定 SAML 聯合驗證

步驟 1:安裝並連線 MSOnline 模組

  1. 以系統管理員身分開啟 Windows PowerShell

  2. 安裝 MSOnline 模組(如尚未安裝):

    Install-Module MSOnline
    
  3. 連線至 Microsoft 365:

    Connect-MsolService
    
  4. 在彈出的登入視窗中,使用具有全域管理員權限的帳號登入

步驟 2:設定聯合驗證參數

在 PowerShell 中執行以下指令:

# 設定變數
$dom = "your-domain.com"  # 您的自訂網域,或使用 *.onmicrosoft.com
$url = "https://your-idexpert-domain/SAMLServlet/saml"
$uri = "https://your-idexpert-domain/SAMLServlet/saml"
$logouturl = "https://your-idexpert-domain/SAMLServlet/saml"
$cert = "MIIDhzCCAm+gAwIBAgIJAK..."  # IDExpert Cloud 憑證內容(移除開頭結尾和換行)

# 設定聯合驗證
Set-MsolDomainAuthentication `
  -DomainName $dom `
  -FederationBrandName $dom `
  -Authentication Federated `
  -PassiveLogOnUri $url `
  -SigningCertificate $cert `
  -IssuerUri $uri `
  -LogOffUri $logouturl `
  -PreferredAuthenticationProtocol SAMLP
  • 憑證內容不需要包含 -----BEGIN CERTIFICATE----------END CERTIFICATE-----
  • 憑證內容必須移除所有換行符號,成為單行字串
  • 如果憑證是 .cer 格式,可以更改副檔名為 .pem 並用文字編輯器開啟查看內容

步驟 3:驗證設定

執行以下指令檢查聯合驗證設定:

Get-MsolDomainFederationSettings -DomainName "your-domain.com" | Format-List *

5. IDExpert Cloud 完成配置

5.1 設定使用者屬性對應

  1. 回到 IDExpert Cloud 應用程式設定頁面

  2. 確認 Name ID 對應到正確的使用者屬性:

    • 若使用 Microsoft AD 範本匯入,系統會自動使用 objectGUID
    • 此屬性值必須與 Microsoft 365 使用者的 ImmutableID 相符
  3. 驗證對應關係:

    • 在 IDExpert Cloud 中查看使用者的 ObjectGUID
    • 在 Microsoft 365 中查看對應使用者的 ImmutableID
    • 確認兩者的 Base64 編碼值一致

5.2 設定存取政策

  1. 前往 設定政策

  2. 建立或選擇一條存取政策

  3. 將需要存取 Microsoft 365 的 使用者群組 加入政策中

  4. 設定適當的驗證方式(密碼、多因素驗證等)

  5. 儲存政策設定

6. 測試驗證

6.1 從 IDExpert Cloud 登入

  1. 登入 IDExpert Cloud 使用者入口網站

  2. 在應用程式清單中找到 Microsoft 365 圖示並點擊

  3. 系統應自動完成身分驗證並導向 Microsoft 365

  4. 確認能成功登入並存取服務

6.2 從 Microsoft 365 登入(需設定網域同盟)

  1. 前往 Microsoft 365 登入頁面

  2. 輸入使用者的電子郵件地址(使用已設定聯合驗證的網域)

  3. 系統應自動導向 IDExpert Cloud 登入頁面

  4. 完成身分驗證後,應導回 Microsoft 365

  5. 確認能成功登入並存取服務

在正式啟用前,建議:

  • 使用測試帳號進行完整的登入流程測試
  • 確認不同驗證方式(密碼、MFA)都能正常運作
  • 測試登出功能是否正確執行
  • 保留至少一個全域管理員帳號使用 Microsoft 原生驗證,以防 SSO 設定錯誤時無法登入

7. 疑難排解

常見問題

Q1: 使用者匯入失敗或部分使用者未匯入

原因:CSV 檔案格式錯誤、必要欄位缺失或資料格式不正確

解決方式

  • 確認使用 UTF-8 編碼儲存 CSV 檔案
  • 檢查是否使用正確的範本(Microsoft AD 範本)
  • 確認必要欄位(UserPrincipalName、Email)已填寫
  • 查看匯入結果報告中的錯誤訊息

Q2: 登入時顯示「無法識別的使用者」

原因:Name ID 格式設定錯誤或 ImmutableID 不匹配

解決方式

  • 確認 IDExpert Cloud 應用程式設定中 Name ID 格式為 Persistent
  • 檢查使用者的 ImmutableID 是否正確設定
  • 確認 SAML 回應中的 NameID 值與 Microsoft 365 使用者的 ImmutableID 一致

Q3: 使用者的 ObjectGUID 遺失或不正確

原因:未使用 Microsoft AD 範本匯入,或匯入時未包含 ObjectGUID 欄位

解決方式

  • 重新從 AD 匯出使用者資料,確認包含 ObjectGUID 欄位
  • 使用「僅更新 AD 相關參數」選項重新匯入
  • 檢查 PowerShell 匯出指令是否包含 -Properties ObjectGUID

Q4: 簽章驗證失敗

原因:憑證設定錯誤或簽章演算法不匹配

解決方式

  • 確認使用正確的憑證內容(無開頭結尾、無換行)
  • 檢查 IDExpert Cloud 中簽章演算法設定為 SHA-1
  • 確認簽章項目設定為「只簽 Assertion」

Q5: 無法導向 IDExpert Cloud 登入頁

原因:網域聯合驗證設定未生效

解決方式

  • 使用 PowerShell 指令確認網域的聯合驗證狀態
  • 檢查 PassiveLogOnUri 是否設定正確
  • 確認網域已完成驗證並啟用聯合驗證

Q6: 驗證成功但無法存取 Microsoft 365 服務

原因:使用者授權或權限問題

解決方式

  • 確認使用者在 Microsoft 365 中已分配適當的授權
  • 檢查使用者帳號狀態是否為啟用
  • 確認使用者在 IDExpert Cloud 政策中有存取權限

PowerShell 檢查指令

# 檢查網域聯合設定
Get-MsolDomainFederationSettings -DomainName "your-domain.com" | Format-List *

# 檢查所有網域狀態
Get-MsolDomain

# 檢查使用者 ImmutableID
Get-MsolUser | Select DisplayName, UserPrincipalName, ImmutableID

# 檢查特定使用者詳細資訊
Get-MsolUser -UserPrincipalName "user@your-domain.com" | Format-List *

8. 參考資源

官方文件

IDExpert Cloud 相關文件