OAuth2——角色、使用场景以及授权模式介绍

OAuth2是一种授权框架,用于授权第三方应用程序访问受保护资源,而无需将用户凭据暴露给第三方。它允许用户提供对其受保护资源的有限访问权限,而不会泄露其凭据。

一、角色

OAuth2定义了四种角色:资源所有者(即最终用户)客户端(第三方应用程序)授权服务器(验证资源所有者身份并颁发访问令牌)资源服务器(托管受保护资源)

二、使用场景

OAuth2的使用场景包括用户授权第三方应用程序访问受保护API单点登录等。OAuth2是一种灵活的授权机制,被广泛用于互联网服务和应用程序中。

三、授权模式

OAuth2定义了四种授权模式,包括授权码模式、隐藏模式、密码模式和凭证式模式。

1. 授权码模式(Authorization Code Grant):
  • 用户将被重定向到授权服务器,授权服务器将发回授权码给客户端,然后客户端使用授权码获取访问令牌,在Web应用程序中集成第三方登录,建议使用。
GET /authorize?response_type=code&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=SCOPE
POST /token?grant_type=authorization_code&code=AUTHORIZATION_CODE&redirect_uri=REDIRECT_URI&client_id=CLIENT_ID&client_secret=CLIENT_SECRET
2. 隐藏模式(Implicit Grant):
  • 客户端直接从授权服务器获取访问令牌,跳过授权码这一步,单页应用(SPA)或移动应用建议使用,这种模式适合前端应用,不需要客户端存储敏感信息。
GET /authorize?response_type=token&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=SCOPE
3. 密码模式(Resource Owner Password Credentials Grant):
  • 用户将其用户名和密码直接提供给客户端,客户端使用这些凭据获取访问令牌,如果需要用户使用其用户名和密码直接登录,可以选择密码模式。
POST /token?grant_type=password&username=USERNAME&password=PASSWORD&client_id=CLIENT_ID&client_secret=CLIENT_SECRET
4. 凭证式模式(Client Credentials Grant):
  • 客户端使用自己的凭证直接从授权服务器获取访问令牌,适用于客户端自身需要访问资源的情况,如果是机器对机器的通信,可以使用凭证式模式,这种模式适合后端服务之间的通信,不涉及用户交互。
POST /token?grant_type=client_credentials&client_id=CLIENT_ID&client_secret=CLIENT_SECRET
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值