Web API 身份验证基本与承载

问题描述 投票:0回答:2

我在我的 Web API 应用程序中创建了基于 JWT 的身份验证。 我无法弄清楚之间的区别

  1. 基础代币
  2. 不记名代币

有人可以帮助我吗?

basic-authentication jwt bearer-token
2个回答
158
投票

基本和摘要式身份验证方案专用于使用用户名和密码进行身份验证(请参阅RFC7616RFC7617)。

承载身份验证方案专用于使用令牌进行身份验证,并由 RFC6750 进行描述。即使此方案来自 OAuth2 规范,您仍然可以在客户端和服务器之间交换令牌的任何其他上下文中使用它。

关于 JWT 身份验证,由于它是令牌,因此最好的选择是 Bearer 身份验证方案。 尽管如此,没有什么可以阻止您使用适合您的要求的自定义方案。但自定义方案可能会被应用程序误解。


123
投票

基本身份验证以用户 ID/密码对的形式传输凭据,并使用 base64 进行编码。客户端发送带有

Authorization
标头的 HTTP 请求,其中包含单词
Basic
单词,后跟一个空格和
base64-encoded
字符串 username:password。

授权:基本ZGVtbzpwQDU1dzByZA==

注意:对于基本身份验证,由于用户 ID 和密码以明文形式在网络上传递(它是 Base64 编码的,但 Base64 是可逆编码),因此基本身份验证方案并不安全。 HTTPS / TLS 应与基本身份验证结合使用。


不记名身份验证(也称为令牌身份验证)具有称为不记名令牌的安全令牌。 “承载身份验证”这个名称可以理解为“授予此令牌的承载者访问权限”。不记名令牌是一个神秘的字符串,通常由服务器响应登录请求而生成。向受保护资源发出请求时,客户端必须在 Authorization 标头中发送此令牌:

授权:不记名 < token >

注意: 与基本身份验证类似,承载身份验证只能通过 HTTPS (SSL) 使用

了解更多信息link1link2

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