使用 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 屬性 | 說明 |
|---|---|---|
| UserPrincipalName | UserPrincipalName | 使用者主體名稱,必須一致 |
| ObjectGUID | ImmutableID | 用於身分對應的唯一識別碼 |
| sAMAccountName | - | Windows 登入名稱(從 AD 匯入時保留) |
| 電子郵件地址 |
若您計劃整合 Microsoft 365,強烈建議使用 Microsoft AD 範本匯入使用者,以確保包含 ObjectGUID 等必要屬性。手動建立的使用者若缺少這些屬性,後續需要額外設定才能正常使用 SSO。
若您的組織不需要使用自訂網域,可以跳過「設定網域同盟認證」的步驟。但請注意,未設定網域同盟的情況下,使用者可以透過 Microsoft 365 原生登入頁面或 IDExpert Cloud SSO 入口兩種方式登入。
2. 使用者資料匯入(建議先完成)
在設定 SAML 應用程式前,建議先將使用者資料匯入 IDExpert Cloud。這樣可以確保使用者屬性正確設定,避免後續需要重新設定。
2.1 從 Active Directory 匯出使用者資料
步驟 1:準備 PowerShell 環境
-
在 Active Directory 網域控制器或已安裝 AD 管理工具的電腦上,以系統管理員身分開啟 Windows PowerShell
-
確認已安裝 Active Directory PowerShell 模組:
Get-Module -ListAvailable ActiveDirectory -
如未安裝,請執行以下指令安裝:
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:檢查匯出結果
-
開啟
C:\temp\AD_Users_Export.csv檔案 -
確認檔案包含以下欄位:
sAMAccountName:SAM 帳戶名稱UserPrincipalName:使用者主體名稱mail:電子郵件地址ObjectGUID:物件的全域唯一識別碼(Microsoft 365 整合必需)DistinguishedName:辨別名稱
-
檢查資料正確性,移除不需要匯入的測試帳號或系統帳號
- 如果 AD 中有大量使用者,執行時間可能較長
- 建議先使用
-Filter "Name -like '*test*'"測試小範圍查詢 - 確保目標資料夾存在且有足夠磁碟空間
2.2 匯入使用者到 IDExpert Cloud
步驟 1:下載並準備範本
-
登入 IDExpert Cloud 管理控制台
-
前往 使用者 > 匯入
-
點擊 下載範本 按鈕
-
選擇範本類型:Microsoft AD
若後續需要建立 Microsoft 365 SAML 整合,必須選用 Microsoft AD 範本,此範本包含 ObjectGUID 等 Microsoft 365 整合所需的特殊屬性欄位。
-
下載範本後,將從 AD 匯出的使用者資料複製到範本中,或依照範本格式調整您的 CSV 檔案
步驟 2:設定匯入選項
-
上傳準備好的 CSV 檔案
-
選擇 重複處理方式:
- 忽略:遇到重複或已存在的使用者時跳過,不進行任何修改
- 僅更新 AD 相關參數:僅更新 AD 相關屬性(如 ObjectGUID、DistinguishedName),不影響使用者的基本帳號設定
- 首次匯入:選擇「忽略」以避免意外覆蓋現有資料
- 更新 AD 屬性:選擇「僅更新 AD 相關參數」以補充或更新 Microsoft 365 整合所需的屬性
-
點擊 匯入 開始處理
步驟 3:驗證匯入結果
-
匯入完成後,前往 使用者 > 使用者管理
-
使用搜尋功能確認使用者已成功匯入
-
點選使用者查看詳細資訊,確認以下屬性是否正確:
- UserPrincipalName
- ObjectGUID(在 AD 相關屬性中)
-
若發現問題,可使用「僅更新 AD 相關參數」選項重新匯入修正
2.3 使用者角色與權限設定(選用)
匯入的使用者預設為「一般使用者(User)」角色。若需要指派管理權限:
-
前往 使用者 > 使用者管理
-
搜尋並點選要修改的使用者
-
在使用者詳細資訊頁面修改 角色權限:
- 一般使用者(User):僅能使用 SSO 登入服務和管理個人載具
- 系統管理員(Admin):可管理使用者、群組、政策、應用程式等系統功能
- 系統負責人(Root):擁有所有系統功能的完整權限
-
儲存變更
完整的角色權限對照表請參考 使用者管理及權限 文件。
3. IDExpert Cloud SAML 設定
3.1 建立 SAML 應用程式
-
登入 IDExpert Cloud 管理控制台。
-
前往 應用程式 > 建立應用程式。
-
選擇 SAML 類型,並搜尋/選擇 Microsoft 365 範本。
-
填寫基本資訊:
- 應用程式名稱:例如「Microsoft 365」或「Office 365」
- 圖示:(可選)上傳自訂圖示或使用預設圖示
-
Service Provider 設定:
欄位 設定值 ACS URL https://login.microsoftonline.com/login.srfEntity ID urn:federation:MicrosoftOnlineName ID 格式 Persistent簽章項目 只簽 Assertion簽章演算法 SHA-1Name ID 格式必須選擇 Persistent,否則會導致驗證失敗。
-
SSO Portal 設定:
- 若需要將此應用程式顯示在使用者 SSO 入口網站,請勾選此選項
-
點擊 建立 並進入 建立結果 頁面。
3.2 取得 IdP 資訊
建立完成後,請記錄以下資訊供後續 Microsoft 365 設定使用:
-
身分提供者登入 URL(SSO URL):
- 格式:
https://your-idexpert-domain/SAMLServlet/saml - 請複製完整的 URL
- 格式:
-
發行者(Issuer):
- 此為 IDExpert Cloud 的唯一識別碼
- 位於應用程式詳細資訊頁面
-
X.509 憑證:
- 點擊 下載憑證 按鈕下載
.cer或.pem格式憑證 - 或使用文字編輯器開啟憑證並複製內容(不含
-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----標頭)
- 點擊 下載憑證 按鈕下載
3.3 設定使用者屬性對應
-
在應用程式設定頁面,確認 Name ID 對應設定:
- Name ID 格式:Persistent
- Name ID 來源:objectGUID 或其他與 Microsoft 365 ImmutableID 對應的唯一識別碼
-
若使用者是透過 Microsoft AD 範本匯入,系統會自動使用 ObjectGUID 作為 Name ID
-
確認設定後儲存
4. Microsoft 365 設定
4.1 使用 PowerShell 設定 SAML 聯合驗證
步驟 1:安裝並連線 MSOnline 模組
-
以系統管理員身分開啟 Windows PowerShell
-
安裝 MSOnline 模組(如尚未安裝):
Install-Module MSOnline -
連線至 Microsoft 365:
Connect-MsolService -
在彈出的登入視窗中,使用具有全域管理員權限的帳號登入
步驟 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 設定使用者屬性對應
-
回到 IDExpert Cloud 應用程式設定頁面
-
確認 Name ID 對應到正確的使用者屬性:
- 若使用 Microsoft AD 範本匯入,系統會自動使用
objectGUID - 此屬性值必須與 Microsoft 365 使用者的 ImmutableID 相符
- 若使用 Microsoft AD 範本匯入,系統會自動使用
-
驗證對應關係:
- 在 IDExpert Cloud 中查看使用者的 ObjectGUID
- 在 Microsoft 365 中查看對應使用者的 ImmutableID
- 確認兩者的 Base64 編碼值一致
5.2 設定存取政策
-
前往 設定政策
-
建立或選擇一條存取政策
-
將需要存取 Microsoft 365 的 使用者群組 加入政策中
-
設定適當的驗證方式(密碼、多因素驗證等)
-
儲存政策設定
6. 測試驗證
6.1 從 IDExpert Cloud 登入
-
登入 IDExpert Cloud 使用者入口網站
-
在應用程式清單中找到 Microsoft 365 圖示並點擊
-
系統應自動完成身分驗證並導向 Microsoft 365
-
確認能成功登入並存取服務
6.2 從 Microsoft 365 登入(需設定網域同盟)
-
輸入使用者的電子郵件地址(使用已設定聯合驗證的網域)
-
系統應自動導向 IDExpert Cloud 登入頁面
-
完成身分驗證後,應導回 Microsoft 365
-
確認能成功登入並存取服務
在正式啟用前,建議:
- 使用測試帳號進行完整的登入流程測試
- 確認不同驗證方式(密碼、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 相關文件
- 使用者管理及權限 - 了解角色權限與使用者管理功能
- Active Directory 使用者導出指令說明 - 詳細的 AD 使用者匯出步驟
- SAML 參數說明 - SAML 設定參數詳細說明