2
这个楼主还没有留下简介。
当前还没有回复,欢迎成为第一个参与讨论的人。
第 10 篇介绍了用设备状态限制服务访问。本篇继续使用 local-web,为它增加 MFA 要求:Windows 客户端先注册 TOTP 身份验证器,随后只有通过 MFA 检查的身份才能访问服务。
OpenZiti 有两种常见的 MFA 强制方式:
本篇使用第二种方式,只保护 local-web。更多区别见官方 MFA TOTP 文档。
在 Windows 上打开 Ziti Desktop Edge,选择 windows-laptop 身份并进入详情页面,启用 MFA。客户端会显示二维码;用手机上的 TOTP 验证器应用扫描,然后把应用生成的当前验证码输入客户端,完成注册。
注册完成后,客户端会显示一组恢复码。请安全保存:恢复码是一次性的,可在无法使用验证器时替代 TOTP 验证码。Windows MFA 注册指南介绍了客户端上的操作流程。
在 ZAC 的 Posture Checks 页面新建检查:
text名称:local-web-mfa 角色属性:mfa-required 类型:Multi Factor Authentication
如需在设备唤醒、解锁或经过一段时间后重新验证,可按团队要求设置对应选项。首次配置建议先验证基本的 MFA 访问流程,再决定是否开启重新验证。
也可以使用 ziti CLI 创建检查:
bashziti edge create posture-check mfa local-web-mfa \ -a mfa-required
编辑第 9 篇创建的 local-web-dial 策略,在 Posture Check Attributes 中加入:
text#mfa-required
策略仍应对应原来的服务、客户端身份和 Dial 类型:
textService:@local-web Identity:#windows-client Posture Check:#mfa-required Type:Dial
CLI 配置方式:
bashziti edge update service-policy local-web-dial \
--posture-check-roles "#mfa-required"
如果该策略已有其他 Posture Check 属性,更新时要一并保留。也要确认没有另一条同样允许这些身份访问 local-web、但没有 MFA 条件的 Dial 策略;同一服务有多条匹配策略时,只要其中一条通过,访问就可能获准。详见官方 Posture Check 概览。
确认 Windows 上的 windows-laptop 已启用 MFA,并且 Ziti Desktop Edge 显示身份已通过验证。
从客户端访问服务:
powershellcurl.exe -v http://hello.ziti/
等 TOTP 验证状态失效或按策略触发重新验证时,使用验证器生成的验证码完成验证,再确认服务恢复访问。
如果客户端未注册 MFA,或者当前验证状态不满足检查要求,身份仍可能完成网络认证,但不能使用要求 MFA 的 local-web。
local-web-dial 是否包含 #mfa-required,并确认 Posture Check 本身也使用了 mfa-required 属性。这样,local-web 的访问条件就从“身份获准”增加为“身份获准且 MFA 状态通过”。下一篇可以继续介绍如何用 Windows 域或指定进程 Posture Check 限制服务访问。