使用Springboot搭建OAuth2.0服务器的方法示例

  

OAuth是一个关于授权(授权)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。

本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。

<强> OAuth简介

OAuth是由布莱恩做饭,Chris Messina,拉里·哈尔及大卫。瑞克丹共同发起的,目的在于为API访问授权提供一个安全,开放的标准。

<>强基于OAuth认证授权具有以下特点:

<李>

安全.OAuth与别的授权方式不同之处在于:OAuth的授权不会使消费方(消费者)触及到用户的帐号信息(如用户名与密码),也是是说,消费方无需使用用户的用户名与密码就可以申请获得该用户资源的授权。

<李>

开放。任何消费方都可以使用OAuth认证服务,任何服务提供方(服务提供者)都可以实现自身的OAuth认证服务。

<李>

简单。不管是消费方还是服务提供方,都很容易于理解与使用。

OAuth的解决方案如下图所示。

图1所示。OAuth解

使用Springboot搭建OAuth2.0服务器的方法示例

如图1所示OAuth解决方案中用户,消费方及其服务提供方之间的三角关系:当用户需要消费者为其提供某种服务时,该服务涉及到需要从服务提供方那里获取该用户的保护资源.OAuth保证:只有在用户显式授权的情况下(步骤4),消费方才可以获取该用户的资源,并用来服务于该用户。

从宏观层次来看,OAuth按以下方式工作:

<李>

消费方与不同的服务提供方建立了关系。

<李>

消费方共享一个密码短语或者是公钥给服务提供方,服务提供方使用该公钥来确认消费方的身份。

<李>

消费方根据服务提供方将用户重定向到登录页面。

<李>

该用户登录后告诉服务提供方该消费方访问他的保护资源是没问题的。前提

<强>阅读本文之前,你需要了解:

<李>

春季启动

<李> Spring MVC

<李>

Spring Security

<李>

谷歌浏览器插件邮差

<强>砰的一声。xml文件如下

& lt; ? xml  version=?.0“,编码=癠TF-8" ?比;   & lt; project  xmlns=癶ttp://maven.apache.org/POM/4.0.0", xmlns: xsi=癶ttp://www.w3.org/2001/XMLSchema-instance"   ,xsi: schemaLocation=癶ttp://maven.apache.org/POM/4.0.0 , http://maven.apache.org/xsd/maven-4.0.0.xsd"比;   ,& lt; modelVersion> 4.0.0      ,& lt; groupId> cn.iigrowing.study.oauth3   ,& lt; artifactId> demo01   ,& lt; version> 0.0.1-SNAPSHOT   ,& lt; packaging> jar      ,& lt; name> my.oauth01   ,& lt; description> Demo  project  for  Spring  Boot      ,& lt; parent>   ,& lt; groupId> org.springframework.boot   ,& lt; artifactId> spring-boot-starter-parent   ,& lt; version> 1.5.2.RELEASE   ,& lt; relativePath /祝辞,& lt; !——, lookup  parent 得到repository ——比;   ,& lt;/parent>      ,& lt; properties>   ,& lt; project.build.sourceEncoding> UTF-8   ,& lt; project.reporting.outputEncoding> UTF-8   ,& lt; java.version> 1.8 & lt;/java.version>   ,& lt;/properties>      ,& lt; dependencies>   ,& lt; dependency>   ,& lt; groupId> org.springframework.boot   ,& lt; artifactId> spring-boot-starter   ,& lt;/dependency>      ,& lt; dependency>   ,& lt; groupId> org.springframework.boot   ,& lt; artifactId> spring-boot-starter-test   ,& lt; scope> test   ,& lt;/dependency>         ,& lt; dependency>   ,& lt; groupId> org.springframework.boot   ,& lt; artifactId> spring-boot-starter-web   ,& lt;/dependency>      ,& lt; dependency>   ,& lt; groupId> org.springframework.security.oauth   ,& lt; artifactId> spring-security-oauth3   ,& lt;/dependency>      ,& lt;/dependencies>      ,& lt; build>   ,& lt; plugins>   ,& lt; plugin>   ,& lt; groupId> org.springframework.boot   ,& lt; artifactId> spring-boot-maven-plugin   ,& lt;/plugin>   ,& lt;/plugins>   ,& lt;/build>         & lt;/project>

使用Springboot搭建OAuth2.0服务器的方法示例