为什么我应该信任 JSON Web 令牌 (JWT)?

信息安全 身份 山姆 kerberos 身份管理 jwt
2021-08-28 03:33:45

在 SAML 和 Kerberos 身份验证模型中,可以明确了解哪些机构已对用户进行身份验证并颁发了受下游系统信任的凭证。出于身份传播的目的,可以在解决方案架构和相关的身份域内严格控制下游系统模拟用户的权利。

据我所知,SAML 和 Kerberos 模型的完整性并不是 JWT 方法的一部分。JWT 似乎是一种提供与 Kerberos 非常相似的功能的机制,但没有定义的 KDE 的支持功能。

我错过了什么吗?JWT 是基于“信任网络”还是每个 JWT 实现都负责定义自己的可信任身份验证机制等等?

1个回答

因此,JWT 只是一个令牌。这不是协议。因此,您真的无法将 SAML 协议与 JWT 进行比较,因为这就像将苹果与鸭子进行比较。

JWT 只是一堆由加密密钥签名的识别信息。您实际放入的内容取决于协议。有一些正式的要求可以将 JWT 与 JWS 对象(如发行者和受众信息)区分开来,但这些信息仍然是任意的。相比之下,SAML 令牌和 Kerberos 票证确实具有更多的结构,但这并不是说您不能将相同的信息添加到 JWT。

另一方面,比较协议有点棘手。

人们普遍想到的两个协议是 OAuth2 和 OpenID Connect。两者都可以并且确实使用 JWT 作为其令牌。OAuth2 经常使用 JWT 作为授权机制——JWT 的存在和 JWT 中的声明决定了调用者对受保护资源的权限类型。它与识别用户无关。相反,像 WS-Federation 这样的协议默认使用 SAML 令牌来提供有关用户的识别信息,可以使用 JWT 作为替代品(只要所有各方都了解格式),因为您可以将相同的信息放入 JWT 正文中。