为什么不使用 Kerberos 来进行云应用程序的 SSO?

为什么不使用 Kerberos 来进行云应用程序的 SSO?

在比较 Kerberos 与 SAML 时,StackOverflow 网站和互联网上其他网站的一个常见论点是 SAML 适用于互联网/云应用程序,而 Kerberos 适用于企业 LAN。有几种说法支持这种论点:

  • Kerberos 要求客户端和服务加入域。

    然而,据我了解:

    1. Kerberos 需要客户端和 KDC 以及服务和 KDC 之间的信任
    2. 加入域只是在 AD 环境中建立信任的一种方法。应该还有其他方法(例如手动配置)。协议不强制要求加入域。
    3. 另一方面,要使用 SAML,IdP 和 SP 也必须配置为相互信任。
  • Kerberos 要求客户端能够直接访问 KDC

    然而,据我了解:

    1. 确实,在 AD 环境中,KDC(域控制器)通常不会暴露在互联网上。
    2. 但一般来说安全的使 KDC 可公开访问(提供其他安全措施),因为 Kerberos 旨在在不受信任的网络中进行运行。
  • Kerberos对时钟同步有严格的要求

    然而,据我了解:

    1. 如果需要登录云应用程序,大多数机器都可以访问 NTP / Internet
    2. 该协议现在能够处理时钟不同步
    3. SAML(TLS)对时钟也有要求(尽管不那么严格)

除了那些在我看来似乎无效的论点之外,还有软件(例如 ADFS)充当 Kerberos 和 SAML 之间的适配器。所以我的问题是,为什么我们不直接使用 Kerberos 进行云应用程序(如 Salesforce)的 SSO?为什么要发明 SAML 来解决 Kerberos 存在的问题?

相关内容