用户名和密码只能回答访问问题的一部分。企业还可能需要知道用户是否完成了 MFA,设备是否受管,以及请求是否来自预期位置。

Microsoft Entra 条件访问将这些信号纳入策略决策。当 Odoo 使用 Microsoft Entra 作为身份提供程序时,条件访问可以在用户返回 Odoo 之前评估 Microsoft 登录。

这可以让 Odoo 身份验证更符合 Microsoft 托管环境,但如果部署不慎,也可能把合法用户挡在外面。目标应是制定适度的策略,以匹配 Odoo 的用户群和数据。

条件访问实际做什么

Microsoft 将条件访问描述为其零信任策略引擎。策略的工作方式类似 if-then 语句,当满足定义的条件时,Entra 会应用配置的访问决策。官方条件访问概述列出了常见信号,包括用户和组、IP 位置、设备、应用,以及实时或计算得出的风险。

授予控制可以要求:

  • 多重身份验证。
  • 定义的身份验证强度。
  • 标记为合规的设备。
  • Microsoft Entra 混合加入设备。
  • 已批准的客户端应用或应用保护策略。
  • 更改密码或接受使用条款。

策略也可以阻止访问。多个策略可能适用于同一次登录,Microsoft 说明所有适用的策略要求都必须满足。请参阅条件访问策略的评估方式

Odoo 的实用策略模式

为特权 Odoo 用户要求 MFA

Odoo 管理员、财务人员,以及可以导出敏感记录的用户,都是加强身份验证的合理对象。根据 Microsoft 的MFA 文档,Microsoft Entra MFA 需要来自不同因素类别的两种或更多验证方法。

不要假设每种 MFA 方法都能提供相同的保护。Microsoft 在其身份验证概述中推荐使用抗钓鱼选项,例如通行密钥、FIDO2 安全密钥、Windows Hello for Business 和基于证书的身份验证。

一个可行的推进方式是先要求所有员工用户使用 MFA,然后对特权组要求抗钓鱼的身份验证强度。合适的顺序取决于可用设备、注册准备情况和支持能力。

要求合适的设备

条件访问可以要求合规设备或混合加入设备。当 Odoo 暴露的财务、员工或运营数据不应从未受管端点下载时,这很有用。

应结合真实用户进行测试。承包商、共享工作站和移动用户可能不适合员工笔记本政策。设备合规性也取决于相关的 Microsoft 配置和许可。

把位置作为一个信号,而不是身份凭证

条件访问可以根据定义的位置和 IP 范围阻止或允许访问。当组织只在有限地理范围内运营,或有已知企业出口地址时,这有助于降低暴露面。

位置并不能证明身份。员工会出差,移动连接会变化,攻击者也可以使用允许区域内的基础设施。应将其与强身份验证和设备控制结合起来。

在有许可的情况下应用基于风险的策略

Microsoft Entra ID Protection 可以将用户风险和登录风险纳入条件访问。Microsoft 说明,基于风险的条件访问需要 Entra ID P2。这可以帮助对有风险的登录做出更严格的响应,但该功能并非所有 Entra 许可都包含。

条件访问会评估令牌签发期间可用的信号,它不会检查用户随后在 Odoo 内执行的每一项操作。

条件访问与 Odoo 会话边界

条件访问在 Microsoft 身份验证和令牌签发期间生效。Odoo 验证结果并建立自己的会话之后,Odoo 的会话行为仍然很重要。

例如,将用户从目标组中移除,不会回溯改变已经签发的令牌。Microsoft 的策略文档指出,当新令牌被签发时,新加入的角色或组成员会受到该策略约束。同样,在登录时同步 Odoo 组的集成,也不一定会立即撤销活动的 Odoo 会话。

因此,你的设计应覆盖:

  • Odoo 会话时长和注销行为。
  • Odoo 访问映射更新的速度。
  • 紧急撤销流程。
  • 禁用 Microsoft 账户的影响。
  • 是否适合仅使用 Microsoft 的交互式登录。
  • 身份提供程序中断时管理员如何重新获得访问权限。

在强制执行策略之前先规划推广

Microsoft 的条件访问部署指南建议先进行规划,使用测试用户,沟通变更,并确保用户在强制执行前可以注册 MFA。

对于 Odoo 部署,一个实用的顺序是:

  1. 注册 Odoo 连接,并验证其回调、发现信息和签名密钥。
  2. 使用非管理员账户测试 Microsoft 登录。
  3. 确认 Odoo 账户匹配和访问组结果。
  4. 针对一小组试点用户应用预期的条件访问策略。
  5. 审查登录日志和支持反馈。
  6. 逐步扩大受众范围。
  7. 仅在已记录并测试紧急访问后,才启用仅 Microsoft 的交互式登录。

避免大范围排除。使用所需的最小例外,记录其负责人,并设置复查日期。

了解许可边界

条件访问需要 Microsoft Entra ID P1。Microsoft 365 Business Premium 也包含条件访问功能。基于风险的条件访问需要 Entra ID P2。其他控制可能依赖单独的产品,包括 Microsoft Intune 或 Defender for Cloud Apps。最新详情请参见条件访问许可要求

没有 P1 或 P2 的组织可以使用 Microsoft 的安全默认值作为基础安全基线,但 Microsoft 建议不要将安全默认值与条件访问结合使用。不要在确认许可和租户配置之前,就围绕某项功能制定 Odoo 访问方案。

将策略与 Odoo 授权关联

条件访问决定 Microsoft 是否完成登录。Odoo 组决定用户进入 Odoo 后会发生什么。谨慎连接这些层,可以建立更清晰的模型:Entra 控制身份验证条件,而已批准的组或应用角色映射到特定的 Odoo 访问。

请阅读使用 Microsoft Entra 组和应用角色集中管理 Odoo 访问,了解授权方面的内容。如果你仍在决定 SSO 是否值得,先阅读为什么应该使用 Microsoft SSO 保护你的 Odoo 实例

将 Microsoft 登录控制应用于 Odoo 19

我们的适用于 Odoo 的 Microsoft Entra SSO 模块提供了一个引导式的 Odoo 19 连接到 Microsoft Entra ID 或 External ID 的方案。它会验证 Microsoft 发现信息和签名密钥,支持交互式登录测试,并且在连接已验证后,可以要求交互式用户使用 Microsoft 登录。

该模块用于建立连接。它不会自动创建正确的条件访问策略,也不会免除对 Odoo 会话和权限的测试。如果你希望通过一个受控集成点,让现有的 Entra 策略管理 Odoo 登录,那么可以查看该模块。