Azure ACS 2.0 安全功能与 ADFS 2.0 相比如何?

信息安全 应用安全 验证 联邦 adfs 山姆
2021-09-03 18:30:23

我正在将我的依赖方(一个网站)配置为使用 ADFS 或 Azure ACS 2.0。

ADFS 2.0 有一些有趣的功能,例如令牌重放预防(在 SQL 版本中),并且可能还有其他 SAML安全功能(我可能不明白)

有人可以提炼 ADFS 和 ACS 安全风险之间的区别吗?

例如:

  • 每个令牌重放的处理方式不同吗?
  • 协议支持的差异会增加还是降低安全性?
  • 什么是更安全的 OpenID、OAuth、SAML1 或 SAML2 等...
  • 加密和散列是否类似完成?
  • 密钥更新是如何完成的?(例如,ADFS 将定期刷新)
  • 可以禁用主页领域发现页面,定制为不泄漏 IDP 吗?
  • ...?
2个回答

这是一个很好的问题。但是,从风险角度来看,ACS v2 和 ADFS v2 之间存在相当多的差异。

  1. ACS 没有 IdP,因此它不进行任何身份验证,而 ADFS 则有。
  2. 据我了解,ACS 不会尝试阻止令牌重放。它将由提供原始令牌的 IdP 和 RP 决定。我不能肯定地说这是 100% 正确,因为我找不到任何关于它的文档,但我正在做一个项目来测试这个......将更新结果。
  3. ACS 支持 3 种令牌类型和协议(WS-Fed、SAML 1.1/2.0 和 SWT),而 ADFS 仅支持 2 种类型(WS-Fed. SAML 1.1/2.0)。
  4. ADFS 支持自定义属性存储。ACS 将仅在收到的令牌中使用声明。

综上所述,我认为 ACS 和 ADFS 比任何东西都更互补。ACS 作为 Azure/云托管应用程序的端点可以很好地工作,因为它可以相对容易地修改以接受其他 IdP。ADFS 在内部运行良好,但添加 IdP 信任有点麻烦。这在应用程序、环境(云等)和内部组织之间提供了安全边界。

编辑:跟进问题:

默认情况下,令牌可以在 ACS 中重放,除非开发人员采取措施防范它。

请参阅此Microsoft 发布的安全问题列表使用 ACS 时安全部署应牢记的内容