gpt4 book ai didi

authentication - 如何获得智威汤逊?

转载 作者:行者123 更新时间:2023-12-04 03:37:42 29 4
gpt4 key购买 nike

在阅读有关使用 JWT 保护应用程序的信息时,通常会说客户端最初从服务器获取 token ,然后将此 token 与每个请求一起发送到 API。

一旦你有一个 token ,这种方法效果很好。据我所知,传输 token 的默认方式是使用 HTTP header ,即 Authentication with Bearer 作为 token 的前缀作为值。

但是 - 是否还有一种默认方式来初始获取 token ?在示例中,您经常会看到这只是对 HTTP 端点的简单请求,然后返回 JSON。但我想知道是否有更多的标准工作流程,例如描述此端点的名称应该是什么,如在 OAuth2 中?

有什么提示吗?

最佳答案

JWT是一种 token 格式,用于安全协议(protocol),如 OAuth2OpenID Connect .
如何从授权服务器获取 token 取决于您使用的授权流程。
OAuth 2.0 中定义了 4 个授权流,用于不同的客户端和用途。

  • 授权码授予

  • 此赠款旨在用于 Web 应用程序。用户的浏览器被重定向(HTTP 302)到授权服务器。授权服务器负责对用户进行身份验证(通过用户名/密码、智能卡、2 因素身份验证等)。
    然后,授权服务器使用代码将浏览器重定向回 Web 应用程序中预先注册的端点。然后,Web 应用程序使用它自己的凭据(客户端 ID 和客户端密码)和授权代码从授权服务器请求访问 token 。
    授权服务器向 Web 应用程序返回访问 token 和刷新 token 。请注意,浏览器(不受信任)永远不会看到访问 token 。只有 Web 应用程序(受信任)可以访问访问 token 和刷新 token 。
    由于它基于 HTTP 重定向,因此很难从 Web 应用程序以外的其他客户端使用此授权。
  • 隐式授权

  • 此授权用于不受信任的客户端,例如 JavaScript 应用程序或第 3 方移动客户端(您从应用商店下载的客户端)。
    它还将浏览器(或浏览器控件)重定向到授权服务器,但不是在成功验证后向浏览器返回代码,而是直接返回访问 token 。由于客户端不受信任,因此授权不会返回刷新 token 。访问 token 需要存储在某个地方,并且容易受到 XSS 攻击。
    即使您没有获得刷新 token ,但某些实现确实提供了一种通过与隐藏 IFRAME 中的授权服务器通信并使用 cookie 与授权服务器本身进行身份验证来获取新访问 token 的方法。
  • 资源所有者密码凭证授予

  • 此授权适用于受信任的客户端,例如具有安全存储功能的桌面应用程序或第一方移动应用程序。客户端应用程序向用户(资源所有者)询问他们的用户名/密码,然后将其发送到授权服务器以获取访问 token 和刷新 token 。
    一旦客户端拥有访问 token ,它就可以丢弃密码,因为它可以使用刷新 token 来获取新的访问 token 。这使得它比基本身份验证更安全。
    此授权不依赖于浏览器重定向,并且可以在任何可以执行 HTTP 请求的应用程序中轻松使用。
  • 客户凭证授予

  • 此授权旨在验证客户端(应用程序)而不是客户端的用户。
    在这种情况下,客户端将其客户端 ID 和 secret 直接提交给授权服务器以获取访问和刷新 token 。
    所以基本上前两个授权依赖于类似浏览器的功能(HTTP 重定向、HTML 登录页面),而其他两个授权只需要一个 HTTP 堆栈来与授权服务器通信。

    关于authentication - 如何获得智威汤逊?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31637852/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com