我在Web API应用程序中创建了基于JWT的身份验证。 我无法弄清楚
之间的区别有人可以帮帮我吗?
答案 0 :(得分:69)
基本和摘要式身份验证方案专门用于使用用户名和密码进行身份验证(请参阅RFC7616和RFC7617)。
承载认证方案专用于使用令牌进行认证,由RFC6750描述。即使此方案来自OAuth2规范,您仍然可以在客户端和服务器之间交换令牌的任何其他上下文中使用它。
关于JWT身份验证,因为它是令牌,最好的选择是承载身份验证方案。 然而,没有什么能阻止您使用符合您要求的自定义方案。
答案 1 :(得分:41)
基本身份验证 将凭据作为用户ID /密码对传输,并使用base64进行编码。客户端发送带有Authorization
标头的HTTP请求,该标头包含单词Basic
和一个空格以及一个base64-encoded
字符串username:password。
授权:基本ZGVtbzpwQDU1dzByZA ==
注意:对于基本身份验证,由于用户ID和密码以明文形式(通过base64编码,但是base64是可逆编码)通过网络传递,因此基本身份验证方案并不安全。 HTTPS / TLS应该与基本身份验证结合使用。
承载者身份验证 (也称为令牌身份验证)具有称为承载者令牌的安全性令牌。名称“承载者身份验证”可以理解为“ 允许访问此令牌的承载者”。承载令牌是一个秘密字符串,通常由服务器响应登录请求生成。向受保护资源提出请求时,客户端必须在Authorization标头中发送此令牌:
授权:不记名<令牌>
注意:与基本身份验证类似,承载身份验证只能用于HTTPS(SSL)。