Web API身份验证基本与承载

Sha*_*tar 63 basic-authentication jwt bearer-token

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

  1. 基本令牌
  2. 持票人令牌

有人可以帮帮我吗?

Flo*_*lli 87

Basic和Digest身份验证方案专用于使用用户名和密码进行身份验证(请参阅RFC7616RFC7617).

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

关于JWT认证并且因为它是令牌,最好的选择是承载认证方案.然而,没有什么能阻止您使用符合您要求的自定义方案.


fgu*_*gul 64

基本身份验证以用户 ID/密码对的形式传输凭据,使用 base64 进行编码。客户端发送 HTTP 请求,Authorization头部包含单词Basicword 后跟一个空格和base64-encoded字符串 username:password。

授权:基本 ZGVtbzpwQDU1dzByZA==

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


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

授权:不记名<令牌>

在此处输入图片说明

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

欲了解更多信息链接1链接2

  • 与用户名/密码相比,传递令牌有什么优势? (11认同)
  • 给我最好的答案。只是想在某些场景中添加,例如支付网关,您需要两种类型的身份验证,一步使用基本信息进行身份验证,然后从那里开始下一次通信将使用 Brear ...Jwt.. 令牌。后面的 jwt 令牌来自第一个返回的 access_key 令牌。 (4认同)
  • @MuhammadUmer,您可以撤销令牌并授予它们细粒度访问权限(即仅读取访问权限)。 (2认同)
  • 我找到了答案,那就是您不必使用令牌进行数据库读取,您可以使用加密来验证令牌,最适合没有共享会话状态的微服务,尽管有负载均衡器可以修复一个用户一项服务,但它仍然是高性能的。 (2认同)