JWT(Json Web Token)和SAML有什么主要区别?请告诉我任何有弹簧安全性的例子。提前致谢。
附加信息是SAML是协议和令牌格式,但JWT是唯一的令牌格式。
两者都用于在各方之间交换认证和授权数据,但是以不同的格式。 SAML是标记语言(如XML),JWT是JSON。
SAML(安全断言标记语言)是用于在安全域之间交换认证和授权数据的开放标准,即IdP(身份提供商)和SP(服务提供商)。
JWT(JSON Web Token)是一个开放标准(RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间作为JSON对象安全地传输信息。此信息可以通过数字签名进行验证和信任。 JWT可以使用秘密(使用HMAC算法)或使用RSA的公钥/私钥对进行签名。
SAML解决的最重要的一个用例是Web浏览器单点登录(SSO即登录一次并获取令牌而无需登录其他服务)。单点登录在安全域内(例如使用cookie)相对容易实现,但是跨安全域扩展SSO更加困难,并导致非互操作专有技术的激增。 SAML Web浏览器SSO配置文件已指定并标准化,以提高互操作性。 (为了进行比较,最新的OpenID Connect协议是Web浏览器SSO的替代方法。)ID Token(通常在代码示例中称为
id_token
)是包含用户配置文件信息的JSON Web令牌(JWT)。