Odoo 往往承載著攸關整個組織的重要資訊,包括客戶記錄、銷售活動、發票、員工資料、專案、庫存,以及營運文件。對這些資訊的存取,理應與電子郵件、檔案及其他核心業務系統的存取一樣受到重視。

然而,Odoo 也可能變成身分孤島。員工可能為 Microsoft 365 使用一組密碼,為 Odoo 使用另一組密碼。管理員也可能需要在不同位置管理存取權。當某人調職或離職時,整個流程可能取決於每個應用程式都正確完成檢查清單。

Microsoft 單一登入為組織提供了另一種選擇。將 Odoo 連結至 Microsoft Entra ID 後,使用者可以透過其 Microsoft 帳戶驗證,而企業也能把既有的 Microsoft 身分控制套用到 Odoo 的登入流程中。

你的 Microsoft 身分基礎可能早已存在

如果你的組織使用 Microsoft 365,通常已經擁有 Microsoft Entra 工作負載租戶。Microsoft 說明,當企業註冊 Microsoft 365 等 Microsoft 雲端服務時,系統會為員工、內部應用程式與組織資源建立工作負載租戶。這使得 Entra 成為 Odoo 值得優先考慮的身分提供者,而不是再引入另一套獨立的帳戶系統。請參考 Microsoft 對 工作負載與外部租戶設定的說明。

Odoo 也認可這個使用情境。官方的 Odoo 19 Microsoft Azure 登入文件 說明了 Odoo 使用者如何使用 Microsoft 帳戶登入。文件也清楚指出,整合的兩端都需要進行設定。

更大的好處在於,Microsoft 可以成為組織在 Odoo 工作階段開始之前套用驗證原則的地方。

為 Odoo 登入流程加入更強的驗證

Microsoft Entra 多重要素驗證可以要求兩種或以上的驗證方式。這些要素可以包含使用者知道的資訊、使用者持有的物品,或使用者本身的特徵。Microsoft 在其 MFA 總覽 中說明了這個挑戰如何作為 Entra 登入流程的一部分處理。

當 Odoo 將登入委派給 Entra 時,組織可以要求使用核准的 MFA 方法。也可以逐步讓特定使用者轉向具備防釣魚能力的方法,例如 passkey、FIDO2 安全金鑰、Windows Hello for Business 或憑證式驗證。Microsoft 在其 驗證指引 中推薦這些方法。

這個區別很重要。傳統 MFA 通常比只用密碼更安全,但並非所有 MFA 方法都具備防釣魚能力。NIST 指出,密碼不具備防釣魚能力,而手動輸入的一次性代碼也不具備防釣魚能力,因為攻擊者可以轉送這些代碼。NIST 將 WebAuthn,亦即 FIDO2 驗證器所使用的技術,視為透過網域繫結實現防釣魚能力的範例。詳細內容可參見 NIST SP 800-63B-4

SSO 整合讓企業能以 Entra 功能保護 Odoo,但企業仍必須啟用並強制執行適當的政策。

用更多脈絡做出存取決策

Microsoft Entra 條件式存取可以評估使用者、群組、應用程式、位置、裝置狀態與登入風險等訊號,然後封鎖存取或要求 MFA、特定驗證強度,或相容裝置。Microsoft 將條件式存取稱為其 Zero Trust 政策引擎,並在 條件式存取總覽 中說明可用的訊號與決策。

對 Odoo 部署而言,這可支援如下政策:

  • 要求 Odoo 管理員與財務使用者使用 MFA。
  • 對特權角色要求具備防釣魚能力的驗證強度。
  • 封鎖來自企業不提供服務之地點的 Odoo 登入。
  • 對敏感的內部存取要求相容或受管理的裝置。
  • 對外部或風險較高的登入套用更嚴格的政策。

這些只是範例,不是通用設定。適用於內部財務團隊的政策,未必適合客戶入口網站。請先閱讀 條件式存取如何強化 Odoo 登入,再決定要採用哪些控制。

條件式存取也有授權需求。使用條件式存取需要 Microsoft Entra ID P1,風險型政策則需要 P2。Microsoft 365 Business Premium 包含條件式存取功能。授權與目前的功能可用性應以 Microsoft 官方文件 為準進行確認。

讓身分與 Odoo 存取更緊密結合

驗證回答的是使用者是誰。Odoo 授權則決定該使用者能做什麼。

設計良好的整合可以將已核准的 Microsoft 身分對應到既有的 Odoo 帳戶、在首次登入時建立已核准帳戶,並將特定 Entra 群組或應用程式角色對應到 Odoo 存取群組。這可以減少重複管理,並讓存取決策更容易審核。

必須維持身分與授權之間的界線。將某人從 Entra 群組移除,應依整合文件所述的同步行為影響 Odoo 對應,但不一定會立即終止現有的 Odoo 工作階段。若存取是在登入時同步,除非另有工作階段控制介入,否則變更會在使用者下次登入時生效。

電子郵件比對也需要謹慎處理。Microsoft 提醒,電子郵件地址與使用者主體名稱可能會變更或重複使用。其 ID 權杖宣告指引 建議使用 sub 或 oid 等不可變更識別碼,並在需要時加入租戶脈絡,以確保身分可長期維持。電子郵件可用於受控的首次連結,但不應作為永久的身分鍵。

若要更深入了解存取設計,請參閱 使用 Entra 群組與應用程式角色集中管理 Odoo 存取權

Microsoft SSO 無法取代什麼

Microsoft SSO 不能取代 Odoo 更新、最小權限角色、記錄規則、安全託管、備份、監控、工作階段控制或事件回應。Odoo 官方文件也警告,若使用其文件所述的 OAuth 流程,Odoo.com 託管資料庫的資料庫擁有者或管理員可能會受到入口網站管理影響。上線前請先確認擁有者與緊急管理方式。

將 Microsoft 登入導入的更安全方式

先從一個小型測試群組開始。驗證 Microsoft 探索中繼資料與簽署金鑰,確認回呼 URL,測試帳戶比對,並檢查新使用者與未授權使用者的結果。在整個流程端到端完成測試之前,請保留緊急管理路徑。

接著記錄適用於 Odoo 的政策、它們所需的 Entra 授權、群組或角色變更如何傳送到 Odoo,以及當 Microsoft 登入無法使用時支援團隊將如何回應。如果客戶與合作夥伴需要存取,請考慮採用獨立的客戶身分設計,而不是將他們視為員工。我們關於 適用於 Odoo 客戶與合作夥伴的 Microsoft Entra External ID 的指南說明了這項區別。

為 Odoo 19 導入 Microsoft SSO 引導式整合

我們的 適用於 Odoo 的 Microsoft Entra SSO 模組 為 Odoo 19 提供引導式連線,包括員工與外部使用者、受控的首次登入、群組與應用程式角色對應、登入測試,以及驗證後僅限 Microsoft 的互動式登入。它使用帶有 PKCE 的 OpenID Connect 授權碼流程。

此模組不會替您決定安全性政策。您的組織仍需負責 Entra 設定、Odoo 存取設計與部署。