JWT和SAML之间的区别?

问题描述 投票:33回答:3

JWT(Json Web Token)和SAML有什么主要区别?请告诉我任何有弹簧安全性的例子。提前致谢。

saml jwt
3个回答
52
投票

SAMLJWT都是安全令牌格式,不依赖于任何编程语言。 SAML是较旧的格式,基于XML。它常用于SAML-P,WS-Trust和WS-Federation等协议(尽管不是严格要求)。

JWT(JSON Web令牌)令牌基于JSON,用于新的身份验证和授权协议,如OpenID Connect和OAuth 2.0。


7
投票

附加信息是SAML是协议和令牌格式,但JWT是唯一的令牌格式。


3
投票

两者都用于在各方之间交换认证和授权数据,但是以不同的格式。 SAML是标记语言(如XML),JWT是JSON。

SAML(安全断言标记语言)是用于在安全域之间交换认证和授权数据的开放标准,即IdP(身份提供商)和SP(服务提供商)。

  • IdP(身份提供商):对用户进行身份验证,如果成功,则向服务提供商提供身份验证断言。身份提供商提供用户身份验证作为服务
  • SP(服务提供商):依靠身份提供商对用户进行身份验证。

SAML in Auth0

JWT(JSON Web Token)是一个开放标准(RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间作为JSON对象安全地传输信息。此信息可以通过数字签名进行验证和信任。 JWT可以使用秘密(使用HMAC算法)或使用RSA的公钥/私钥对进行签名。

JWT in Auth0

Usecase

SAML解决的最重要的一个用例是Web浏览器单点登录(SSO即登录一次并获取令牌而无需登录其他服务)。单点登录在安全域内(例如使用cookie)相对容易实现,但是跨安全域扩展SSO更加困难,并导致非互操作专有技术的激增。 SAML Web浏览器SSO配置文件已指定并标准化,以提高互操作性。 (为了进行比较,最新的OpenID Connect协议是Web浏览器SSO的替代方法。)ID Token(通常在代码示例中称为id_token)是包含用户配置文件信息的JSON Web令牌(JWT)。

© www.soinside.com 2019 - 2024. All rights reserved.