Ouath2是怎么实现在第三方应用认证的?

一、前言

Oauth(Open Authorization)是一个关于授权的开放网络标准,它允许用户授权第三方应用访问他们存储在其它服务提供者上的身份信息,而不需要将用户名和密码提供给第三方应用

例如,我们在登录淘宝的时候,可以使用支付宝授权登录,我们不需要在淘宝上输入支付宝的账号密码。现在oauth的使用已经非常广泛了,目前常用的版本是2.0,所以我们经常说oauth2.0。

二、Oauth2的基本概念

Oauth2的作用就是让客户端安全可控的获取用户的授权,与资源服务器进行交互。

1. Oauth2中的几种角色
  • 资源所有者(Resource Owner):能够授权访问受保护资源的实体,通常是指用户。
  • 客户端(Client):请求访问受保护资源的应用程序,可以是web应用(浏览器)、移动应用或其他第三方应用。
  • 授权服务器(Authorization Server):负责验证资源所有者的身份,并颁发访问令牌给客户端。
  • 认证服务器(Authication Server):用于验证客户端的身份,通常与授权服务器合并在一起。
  • 资源服务器(Resource Server):存储受保护的资源,并根据访问令牌来验证和控制对资源的访问。

这些角色在oauth2的授权流程中扮演着不同的角色和功能,共同实现了授权和访问控制机制。

2. Oauth2中的授权模式
  • 授权码模式:客户端通过重定向用户到授权服务器,获取授权码,然后使用授权码换取访问令牌,这也是现在最常用的授权模式。
  • 简化模式:客户端直接通过重定向用户到授权服务器,获取访问令牌。
  • 密码模式:客户端直接使用用户的账号和密码,通过授权服务器获取访问令牌。
  • 客户端模式:客户端使用自己的身份信息,通过授权服务器获取访问令牌。

这些授权模式可以根据不同的应用场景选择使用,以满足不同的安全和授权需求。

三、Oauth2授权第三方应用的流程

我们以浏览器为客户端,keyclock为授权服务器,采用授权码的模式进行授权认证为例。话不多说,先上图,然后再依次解释。

  1. 用户访问我们应用服务器(资源服务器)的登录页面。
  2. 资源服务器向授权服务器发起认证请求并重定向到授权服务器。
  3. 授权服务器给用户返回授权服务器的认证页面。
  4. 用户输入账号密码,授权登录并获取个人部分信息。
  5. 授权服务器重定向回资源服务器,并返回授权码。
  6. 资源服务器拿到授权码,向授权服务器换取访问access_token。
  7. 授权服务器给资源服务器返回access_token。
  8. 资源服务器携带access_token向授权服务器请求用户信息。
  9. 授权服务器对access_token进行校验。
  10. 授权服务器给资源服务器返回用户信息,用户认证成功。
  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ouath2项目战中,可以通过以下步骤来现客户端接入: 1. 首先,需要进行用户授权认证。可以使用Spring Security的Ouath2模块来现用户授权认证的功能。具体可以参考引用中的源码流程图,该图展示了使用password方式获取token的流程,并且包括了自定义查询用户的过程。 2. 在客户端接入方面,可以参考引用中的文章,该文章是SpringCloud微服务战系列的一部分。它提供了一种际场景中的客户端接入写法,并介绍了具体的现步骤和方法。 3. 另外,引用中的文章也提供了关于Ouath2在真场景中的应用之客户端接入的详细内容。可以进一步了解该篇文章,以获取更多关于Ouath2项目战的信息。 综上所述,ouath2项目战中,可以使用Spring Security的Ouath2模块来进行用户授权认证,并参考相关的文章和源码流程图来现客户端接入的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [spring security ouath2获取token(认证)流程图.pdf](https://download.csdn.net/download/weixin_44188300/21588964)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SpringCloud微服务战系列(二十)Ouath2在真场景中的应用之客户端接入(第二种写法)](https://blog.csdn.net/feiyangtianyao/article/details/106207696)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值