首页
学习
活动
专区
工具
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服务器发出授权请求。...客户端收集用户凭据用户名密码),并将它们自己客户端凭据一起传递。服务器以令牌可选刷新令牌来进行响应。很简单对吧?但是有一个“但是”,而且很重要。...白小白: 听起来提供用户名密码来获得令牌客户凭证提供APPIDSECRET获得令牌没什么区别

1.6K10

OAuth 详解 什么是 OAuth?

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

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

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

    27640

    关于Web验证几种方法

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

    3.8K30

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

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

    7.4K40

    OAuth 2.0初学者指南

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

    2.4K30

    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.3K22

    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

    6K20

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

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

    44920

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

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

    20110

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

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

    3.9K20

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

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

    51100

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

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

    63420

    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.4K10

    硬核总结 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.SSOOAuth2.0区别 OAuth 是一个行业标准授权协议,主要用来授权第三方应用获取有限权限。

    87921

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

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

    20230

    5步实现军用级API安全

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

    13310

    理解OAuth2.0认证

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

    70111

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

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

    1.5K30
    领券