AAD 中服务帐户和服务主体的优缺点

AAD 中服务帐户和服务主体的优缺点

Microsoft 官方文档强烈反对将用户帐户用作服务帐户的做法。相反,他们建议使用服务主体或托管身份。

暂时不考虑 MI,我只是对此有一个疑问。为什么在 AAD 中强烈反对将用户帐户用作服务帐户?考虑服务主体的替代方案:

  • 两者都需要某种秘密来进行身份验证,无论是用户密码还是客户端秘密。由于这是一个不会进行交互使用的服务帐户,因此我们可以为其生成一个强大的随机密码,因此安全级别应该相同。

  • 服务主体需要 AAD 中的应用程序权限,由于不与特定身份相关联,因此权限非常强。例如,如果我授予我的应用程序 Files.ReadWrite 权限,我就可以干扰我组织中所有用户的 OneDrive。另一方面,具有委派权限的服务帐户只能接触其有权访问的资源,因此数据泄露/破坏的风险应该较小。

  • 服务帐户使用资源所有者密码流程进行身份验证,并非所有身份验证提供商都支持该流程。不过,如果我只使用纯 AAD,这不会有问题。

为什么服务帐号被认为是有害的?

答案1

我同意你的观点。我自己也做过这种研究,得出了同样的结论:目前,服务帐户比服务主体更安全。

服务主体的主要问题有:

  • 缺乏权限粒度
  • 缺乏 Azure AD 条件访问规则支持
  • 弱动作记录

我发现使用服务主体的唯一真正好处是,您不需要许可证即可访问 Office 365 数据(如文件或电子邮件)。但这与安全性无关。

公平地说,我猜证书身份验证场景是 AAD 服务帐户无法使用的独特安全功能的有效案例。但同样,没有办法进一步保护服务主体

相关内容