首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OAuth 2 - "用户名和密码流"与"客户端凭据流"之间的区别是什么

OAuth 2 是一种授权框架,用于在不同的应用程序之间传递访问权限。在 OAuth 2 中,有两种主要的授权方式,即"用户名和密码流"(Resource Owner Password Credentials Grant)和"客户端凭据流"(Client Credentials Grant)。下面是它们之间的主要区别:

  1. 用途:
  2. "用户名和密码流"主要用于用户向客户端应用授权,客户端应用可以使用用户的用户名和密码向授权服务器请求访问令牌。
  3. "客户端凭据流"主要用于客户端应用之间的互相授权,即一个客户端应用向另一个客户端应用请求访问令牌。
  4. 授权过程:
  5. 在"用户名和密码流"中,用户需要向客户端应用提供用户名和密码,客户端应用将这些凭据发送到授权服务器,以换取访问令牌。
  6. 在"客户端凭据流"中,客户端应用需要向授权服务器提供其客户端 ID 和客户端密钥,以获取访问令牌。
  7. 适用场景:
  8. "用户名和密码流"适用于用户与客户端应用之间的授权场景。
  9. "客户端凭据流"适用于客户端应用与其他客户端应用之间的授权场景。

总之,"用户名和密码流"和"客户端凭据流"都是 OAuth 2 中的授权方式,它们之间的主要区别在于用途、授权过程和适用场景。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

8种至关重要OAuth API授权流与能力

一、OAuth是什么?什么是“流”? 虽然可能无需赘言,但我们最好还是先了解一下OAuth的基本概念。确切地说,OAuth是基于互联网的代理和授权的开放标准。...白小白: OAuth是一个关于授权的开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。...代码流客户端由浏览器和后端两部分组成。 2.隐式流 隐式流(Implicit Flow)不像代码流那么复杂。它以与代码流相同的方式开始,客户端向OAuth服务器发出授权请求。...客户端收集用户的凭据(用户名和密码),并将它们与自己的客户端凭据一起传递。服务器以令牌和可选的刷新令牌来进行响应。很简单对吧?但是有一个“但是”,而且很重要。...白小白: 听起来提供用户名和密码来获得令牌和客户凭证流的提供APPID和SECRET获得令牌没什么区别。

1.7K10

OAuth 详解 什么是 OAuth?

基本身份验证仍然用作服务器端应用程序 API 身份验证的原始形式:用户发送 API 密钥 ID 和密码,而不是在每次请求时向服务器发送用户名和密码。...在 OAuth 出现之前,网站会提示您直接在表单中输入用户名和密码,然后他们会以您的身份登录到您的数据(例如您的 Gmail 帐户)。这通常称为密码反模式....资源所有者是一个可以随着不同凭证而改变的角色。它可以是最终用户,也可以是公司。 客户可以是公开的和保密的。两者在 OAuth 命名法上有显着区别。可以信任机密客户端来存储秘密。...它是本地用户名/密码应用程序(例如桌面应用程序)的传统授权类型。在此流程中,您向客户端应用程序发送用户名和密码,然后它从授权服务器返回访问令牌。...所有不同的流程之间都有很多可用的粒度。 安全与企业 OAuth 的应用范围很广。使用隐式流,有很多重定向和很多错误空间。

4.5K20
  • 开发中需要知道的相关知识点:什么是 OAuth?

    基本身份验证仍然用作服务器端应用程序 API 身份验证的原始形式:用户发送 API 密钥 ID 和密码,而不是在每次请求时向服务器发送用户名和密码。...在 OAuth 出现之前,网站会提示您直接在表单中输入用户名和密码,然后他们会以您的身份登录到您的数据(例如您的 Gmail 帐户)。这通常称为密码反模式....客户可以是公开的和保密的。两者在 OAuth 命名法上有显着区别。可以信任机密客户端来存储秘密。它们不在桌面上运行或通过应用程序商店分发。人们无法对它们进行逆向工程并获得密钥。...它是本地用户名/密码应用程序(例如桌面应用程序)的传统授权类型。在此流程中,您向客户端应用程序发送用户名和密码,然后它从授权服务器返回访问令牌。...所有不同的流程之间都有很多可用的粒度。 安全与企业 OAuth 的应用范围很广。使用隐式流,有很多重定向和很多错误空间。

    29140

    关于Web验证的几种方法

    ", response="89549b93e13d438cd0946c6d93321c52" 服务器使用用户名获取密码,将其与随机数一起哈希,然后验证哈希是否相同 2.png 优点 由于密码不是以纯文本形式发送的...流程 实现 OTP 的传统方式: 客户端发送用户名和密码 经过凭据验证后,服务器会生成一个随机代码,将其存储在服务端,然后将代码发送到受信任的系统 用户在受信任的系统上获取代码,然后在 Web 应用上重新输入它...服务器对照存储的代码验证输入的代码,并相应地授予访问权限 TOTP 如何工作: 客户端发送用户名和密码 经过凭据验证后,服务器会使用随机生成的种子生成随机代码,并将种子存储在服务端,然后将代码发送到受信任的系统...因此通常需要一个备用设备,这个设备会引入一个额外的攻击媒介。 ** OAuth 和 OpenID** OAuth/OAuth2 和 OpenID 分别是授权和身份验证的流行形式。...一些基本的经验法则: 对于利用服务端模板的 Web 应用程序,通过用户名和密码进行基于会话的身份验证通常是最合适的。你也可以添加 OAuth 和 OpenID。

    3.9K30

    六种Web身份验证方法比较和Flask示例代码

    流程 实施OTP的传统方式: 客户端发送用户名和密码 凭据验证后,服务器生成随机代码,将其存储在服务器端,并将代码发送到受信任的系统 用户在受信任的系统上获取代码,然后将其输入回 Web 应用 服务器根据存储的代码验证代码...,并相应地授予访问权限 TOTP的工作原理: 客户端发送用户名和密码 凭据验证后,服务器使用随机生成的种子生成随机代码,将种子存储在服务器端,并将代码发送到受信任的系统 用户在受信任的系统上获取代码,然后将其输入回...IETF:一次性密码系统 实现2FA:基于时间的一次性密码实际工作原理(使用Python示例) OAuth 和 OpenID OAuth/OAuth2 和 OpenID 分别是授权和身份验证的流行形式...:带密码(和哈希)的 OAuth2,带 JWT 令牌的持有者 代码 您可以使用 Flask-Dance 实现 GitHub 社交身份验证。...基本经验法则: 对于利用服务器端模板的 Web 应用程序,通过用户名和密码进行基于会话的身份验证通常是最合适的。您也可以添加OAuth和OpenID。

    7.5K40

    OAuth 2.0初学者指南

    OAuth2根据其与授权服务器安全身份验证的能力(即,维护其客户端凭据机密性的能力)定义了两种客户端类型: a)机密:客户能够保持其凭证的机密性。...旧方式:用户与FunApp共享他/她的Facebook凭据(用户名,密码)。这种方法存在一些挑战:信任,不受限制的访问,用户对Facebook密码的更改等。...4.注册客户端(FunApp)和获取客户端凭据: OAuth要求客户端向授权服务器注册。...OAuth2定义了四种标准授权类型:授权代码,隐式,资源所有者密码凭据和客户端凭据。它还提供了一种用于定义其他授权类型的扩展机制。...iii)资源所有者密码凭证:资源所有者密码凭证授权类型适用于资源所有者与客户端具有信任关系并且资源所有者同意与客户端共享他/她的凭证(用户名,密码)的情况。

    2.5K30

    UAA 概念

    授权码隐含式) Resource owner password credentials:资源所有者密码凭据 Client credentials:客户端凭据 UAA 用户是 OAuth2 协议的资源所有者...* OIDC1.0 / OAuth2: UAA 从 OpenID Connect 和 OAuth2 提供程序的 id_token、用户信息端点或访问令牌中获取用户名。...授予类型决定了您的客户如何与 UAA 进行交互。每种授权类型都对应于 OAuth2 2.0 授权框架中定义的四种不同的授权流之一。...用户将其用户名和密码提供给客户端应用程序,然后客户端应用程序可以使用它们来获取 access_token。...在授予密码期间,用户与客户端应用共享他们的密码。客户端应用假定此共享是对客户端要在访问令牌中填充的范围的隐式批准。

    6.4K22

    Token令牌不是后端万能解药!8个漏洞,有1个你就得爬起来加班了

    OAuth应用程序凭据是否也存储在仓库里,特别是客户端密码?这可是当今头号凭据泄漏来源。 如果那些凭证被窃取了,任何人都可以冒充你。如果你察觉凭据可能已被破坏,请立即重新生成。...2 - 不要在应用程序中硬编码令牌 为了长时间使令牌有效,并直接写在应用程序中,用于简化代码可能很有诱惑力。 但,千万不要这么做! 3 - 对待令牌就像对待密码一样 token就是门钥匙!...令牌和API密钥允许任何拥有它们的人访问资源。 因此,令牌和密码一样重要。以同样的方式重视它们!...如果你使用JWTs来携带一些精简必要的信息,则可以采用不同的方法: 在客户端和后端之间,使用不透明字符串或基本的JWT。 在后端,验证请求,并使用请求参数注入新的JWT。...你还应该确保在所有涉及发布和验证令牌的参与者之间,只使用TLS 1.2/1.3和最安全的密码套件。 写在最后 令牌访问是现代应用程序实现的基础,但是必须小心处理。

    1.8K40

    Spring Security 系列(2) —— Spring Security OAuth2

    Spring Security OAuth2.0 OAuth2 介绍 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用...由于这是一个基于重定向的流,因此客户端必须能够与资源所有者的用户代理(通常是 Web 浏览器)进行交互,并且能够(通过重定向)从授权服务器接收传入的请求。...密码模式 资源所有者密码凭据授予类型适用于资源所有者与客户端(如设备操作系统或特权应用程序)建立信任关系的情况。 授权服务器在启用此授权类型时应特别小心,并且仅在其他流不可行时才允许它。...此授权类型适用于能够获取资源所有者凭据(用户名和密码,通常使用交互式表单)的客户端。 它还用于使用直接身份验证方案(如 HTTP 基本或摘要)迁移现有客户端。...的用户名和密码 contextAttributes.put(OAuth2AuthorizationContext.USERNAME_ATTRIBUTE_NAME, username

    6.1K20

    图文+代码讲解带你攻克OAuth 2.0授权流程的三座大山

    为保护这种场景下的 API,OAuth 2.0 提供了资源拥有者凭据许可类型。 资源拥有者的凭据,即用户的凭据:用户名和密码。这么简陋方案,咋敢用的?...但若每次xx都拿我的用户名和密码来通过调用 API 访问我号里的文章数据,甚至其他敏感信息,无疑增加用户名和密码被攻击风险。...索要用户名和密码,就是资源拥有者凭据许可类型的特点 这里的grant_type的值为password,告诉授权服务使用资源拥有者凭据许可凭据的方式去请求访问。 ?...2 客户端凭据许可 若无明确资源拥有者,即xx访问了一个无需用户me授权的数据,比如 获取公众号LOGO的地址,该数据不属任何第三方用户 三方软件访问平台提供的省份信息,省份信息也不属任何一个第三方用户...OAuth2 RFC6749中文翻译

    46220

    SaaS攻击面到底有多大?如何防御常见SaaS攻击技术?

    可以说,SaaS攻击面已经扩展到了组织中使用的每个SaaS应用程序、帐户、用户凭据、OAuth授权、API和SaaS供应商(托管或非托管)。...要解决“其他哪些应用程序可以访问我的数据”这一基本问题,了解应用程序之间存在哪些OAuth授权和作用域非常重要。...OAuth令牌:攻击者滥用OAuth令牌来代表合法用户进行操作。 客户端应用程序欺骗:恶意客户端应用程序用于欺骗用户并执行未经授权的活动。...缓解策略 审查和审计工作流:确保只有经过批准的工作流是有效的。 OAuth监控:定期审查和验证给予OAuth令牌访问的第三方应用程序。 软件防护:采用能够识别和阻止恶意客户端应用程序的解决方案。...本节重点介绍攻击者用于破坏凭据和数据的一些最常用方法。 常见的技术 密码抓取:这是一种最直接却又非常有效的方法。攻击者会使用各种工具来抓取可能存储在不太安全位置的密码,例如文本文件甚至电子邮件。

    21610

    区分清楚Authentication,Authorization以及Cookie、Session、Token

    认证 (Authentication) 和授权 (Authorization)的区别是什么? 这是一个绝大多数人都会混淆的问题。...稍微正式点(啰嗦点)的说法就是: Authentication(认证) 是验证您的身份的凭据(例如用户名/用户ID和密码),通过这个凭据,系统得以知道你就是你,也就是说系统存在你这个用户。...Cookie 和 Session 有什么区别?如何使用Session进行身份验证? Session 的主要作用就是通过服务端记录用户的状态。...关于这种认证方式更详细的过程如下: ? Session Based Authentication flow 用户向服务器发送用户名和密码用于登陆系统。...Token Based Authentication flow 用户向服务器发送用户名和密码用于登陆系统。 身份验证服务响应并返回了签名的 JWT,上面包含了用户是谁的内容。

    4.5K20

    图文+代码带你攻克OAuth 2.0三大核心授权类型

    为保护这种场景下的 API,OAuth 2.0 提供了资源拥有者凭据许可类型。 资源拥有者的凭据,即用户的凭据:用户名和密码。这么简陋方案,咋敢用的?...但若每次xx都拿我的用户名和密码来通过调用 API 访问我号里的文章数据,甚至其他敏感信息,无疑增加用户名和密码被攻击风险。...索要用户名和密码,就是资源拥有者凭据许可类型的特点 这里的grant_type的值为password,告诉授权服务使用资源拥有者凭据许可凭据的方式去请求访问。 ?...2 客户端凭据许可 若无明确资源拥有者,即xx访问了一个无需用户me授权的数据,比如 获取公众号LOGO的地址,该数据不属任何第三方用户 三方软件访问平台提供的省份信息,省份信息也不属任何一个第三方用户...OAuth2 RFC6749中文翻译

    51200

    收藏备用 | 关于OAuth2的一些常见问题总结

    它适用于单点登录(SSO)、微服务之间的授权鉴权、API开放平台等场景。 ❝Q: 什么是OAuth2客户端?...❝Q:OAuth2 客户端为什么分为public和confidential两种类型,分别是什么场景?...A:很多开发者不希望点击授权的时候被302重定向到授权服务器提供的登录页面,但是你得明白一个道理, OAuth2客户端和授权服务器之间并不是一个完全信任的关系。...❝**Q:OAuth2 **客户端能否做用户认证? A:OAuth2本身并没有定义用户如何向OAuth2客户端认证身份,这里要和授权服务器上的用户认证区别开来。...OIDC 1.0补充定义了OAuth2客户端对用户进行认证的细节流程。 ❝Q:OAuth2客户端认证是什么?

    66520

    OAuth 2.0身份验证

    OAuth 2.0如何工作 OAuth 2.0最初是作为一种在应用程序之间共享对特定数据的访问的方式而开发的,它通过定义三个不同方(即客户端应用程序,资源所有者和OAuth服务提供者)之间的一系列交互来工作...image.png 1、Authorization request  implicit flow的启动方式与授权码流大致相同,唯一的主要区别是response类型参数必须设置为token GET /authorization...接收访问令牌后,客户端应用程序通常从专用/userinfo端点向资源服务器请求此数据 接收到数据后,客户端应用程序将使用它代替用户名来登录用户,从授权服务器接收到的访问令牌通常用于代替传统密码 在下面的实验中...,但是在这种情况下,服务器没有任何机密或密码与提交的数据进行比较,这意味着它是隐式信任的。...理想情况下,state参数应该包含一个不可使用的值,比如在用户第一次启动OAuth流时绑定到用户会话的哈希值,然后该值作为客户机应用程序的CSRF令牌形式在客户机应用程序和OAuth服务之间来回传递,因此如果您注意到授权请求没有发送状态参数

    3.5K10

    硬核总结 9 个关于认证授权的常见问题!看看自己能回答几个!

    什么是OAuth 2.0? 什么是 SSO? 1. 认证 (Authentication) 和授权 (Authorization)的区别是什么? 这是一个绝大多数人都会混淆的问题。...[couar6n0zm.png] 稍微正式点(啰嗦点)的说法就是: Authentication(认证) 是验证您的身份的凭据(例如用户名/用户ID和密码),通过这个凭据,系统得以知道你就是你,也就是说系统存在你这个用户...关于这种认证方式更详细的过程如下: [okp0q3sz82.png] Session Based Authentication flow 用户向服务器发送用户名和密码用于登陆系统。...[0f4wggf4bd.png] Token Based Authentication flow 用户向服务器发送用户名和密码用于登陆系统。...9.SSO与OAuth2.0的区别 OAuth 是一个行业的标准授权协议,主要用来授权第三方应用获取有限的权限。

    88821

    从0开始构建一个Oauth2Server服务 移动和本机应用程序

    移动和本机应用程序 与单页应用程序一样,移动应用程序也无法维护客户机密。因此,移动应用程序还必须使用不需要客户端密码的 OAuth 流程。...它意味着能够与任何实现规范的 OAuth 2.0 服务器一起工作。...如果服务不提供自己的抽象,而您必须直接使用它们的 OAuth 2.0 端点,本节介绍如何使用授权代码流和 PKCE 来与 API 交互。...通过使用与系统浏览器共享 cookie 的平台安全浏览器 API,您的优势在于用户可能已经登录到该服务,并且不需要每次都输入他们的凭据。...Attack者可以轻松创建一个看起来像授权网页的网页并将其嵌入到他们自己的恶意应用程序中,从而使他们能够窃取用户名和密码。

    20830

    理解OAuth2.0认证

    与以往的授权方式不同之处是 OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 OAuth是安全的。...,但不愿意把自已在服务方的密码交给第三方; 在oauth2.0的流程中,用户登录了第三方的系统后,会先跳去服务方获取一次性用户授权凭据,再跳回来把它交给第三方,第三方的服务器会把授权凭据以及服务方给它的的身份凭据一起交给服务方...从上面的流程中可以看出,oauth2.0完整地解决掉了用户、服务方、第三方 在某次服务时这三者之间的信任问题。...这一步是在客户端的后台的服务器上完成的,对用户不可见。 认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)。...该码的有效期应该很短,通常设为10分钟,客户端只能使用该码一次,否则会被授权服务器拒绝。该码与客户端ID和重定向URI,是一一对应关系。

    71011

    5步实现军用级API安全

    步骤 2:加强 API 凭据 OAuth 可以使用强安全配置文件,例如 FAPI 2.0 提供的配置文件。在某些行业(例如银行和医疗保健)中,实施此类配置文件可能是强制性的。...这可以帮助您在多个 API 之间共享此类逻辑,同时保持 API 代码以业务为中心。 步骤 3:加强客户端安全性 在评估客户端安全性时,您必须解决特定于环境的威胁。...现在由主流桌面和移动操作系统提供 Passkeys,因此没有困难的用户先决条件。 Passkeys 还可以使用与密码相同的帐户恢复行为。...目前的一个担忧是,它们通常无法安全地存储客户端凭据,因此它们通过遵循 RFC 8252 中发布的 OAuth for Native Apps 作为 OAuth 公共客户端运行。...此 JWT 可以在代码流开始时发送到授权服务器,以启用 强化的移动流。 身份验证将继续需要随着时间的推移而强化。虽然通行密钥提高了密码的安全性,并且适用于许多数字服务,但您并不知道用户是谁。

    14410

    认证和授权中不得不提及的 OAuth、SSO、CAS、JWT

    ),而无需将用户名和密码提供给第三方应用。...OAuth 允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。...与以往的授权方式不同之处是 OAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 OAuth 是安全的。...(图片引用 OAuth 2.0 in Action) 通过使用 Resource Owner 的用户名和密码来换取令牌,这种方式一般是不提倡使用的,原因是当用户名和密码暴露出来的时候,就自然会导致攻击面变的更大...面试题 OAuth 2.0 是不是身份认证协议 OAuth 2.0 有哪几种授权类型 授权码授权与隐式授权类型之间的区别 CAS 与 SSO 之间存在什么样的关系 对于这几个问题,在上述内容中均能够找到答案

    1.6K30
    领券