Spring Cloud OAuth2和JWT保护微服务.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
采用 Spring Security AOuth2 和 JWT 的方式,避免每次请求都需要远程调度Uaa 服务。采用 Spring Security OAuth2 和 JWT 的方式,Uaa 服务只验证一次,返回 JWT。返回的 JWT 包含了用户的所有信息,包括权限信息。 什么是JWT? JSON Web Token(JWT)是一种开放的标准(RFC 7519),JWT 定义了一种紧凑且自包含的标准,该标准旨在将各个主体的信息包装为 JSON 对象。主体信息是通过数字签名进行加密和验证的。常使用 HMAC 算法或 RSA(公钥/ 私钥的非对称性加密)算法对 JWT 进行签名,安全性很高。 JWT 特点: 紧凑型:数据体积小,可通过 POST 请求参数或 HTTP 请求头发送。 自包含:JWT 包含了主体的所有信息,避免了每个请求都需要向 Uaa 服务验证身份,降低了服务器的负载。 JWT 的结构 JWT 结构: Header(头) Payload(有效载荷) Signature(签名) 因此,JWT 的通常格式是:xxxxx.yyyyy.zzzzz Header Header 通常是由两部分组成:令牌的类型(即JWT)和使用的算法类型,如HMAC、SHA256 和 RSA。例如: { { typ: JWT, alg: HS256 } 将 Header 用 Base64 编码作为 JWT 的第一部分。 Payload 这是 JWT 的第二部分,包含了用户的一些信息和Claim(声明、权利)。有 3 类型的 Claim:保留、公开和私人。 { { sub: 123456789, name: John Doe, admin: true } 将 Payload 用 Base64 编码作为 JWT 的第一部分。 Signature 要创建签名部分,需要将 Base64 编码后的 Header、Payload 和秘钥进行签名,一个典型的格式如下: HMACSHA256 HMACSHA256( base64UrlEncode(header) + . + base64UrlEncode(payload), secret ) 如何使用JWT 认证流程图如下,客户端获取 JWT 后,以后每次请求都不需要再通过 Uaa 服务来判断该请求的用户以及该用户的权限。在微服务中,可以利用 JWT 实现单点登录。 案例工程架构 三个工程: eureka-server:注册服务中心,端口 8761。这里不再演示搭建。 auth-service:负责授权,授权需要用户提供客户端的 clientId 和 password, 以及授权用户的 username 和password。这些信息准备无误之后, auth-service 返回 JWT,该 JWT 包含了用户的基本信息和权限点信息,并通过 RSA 加密。 user-service:作为资源服务,它的资源以及被保护起来了,需要相应的权限才能访问。user-service 服务得到用户请求的 JWT 后,先通过公钥解密 JWT, 得到该 JWT 对应的用户的信息和用户的权限信息,再判断该用户是否有权限访问该资源。 工程架构图: 构建 auth-service 工程 新建 Spring Boot 工程,取名为 auth-service,其完整 pom.xml 文件为. ? ?xml version=1.0 encoding=UTF-8? project xmlns= /POM/4.0.0 xmlns:xsi= /2001/XMLSchema-instance xsi:schemaLocation= /POM/4.0.0 /xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version1.5.3.RELEASE/version relativePath/ !-- lookup parent from repository -- /parent groupIdcom.example/groupId artifactIdauth-service/artifactId version0.0.1-SNAPSHOT/version nameauth-service/name descriptionDemo project for Spring Boot/description properties java.version1.8/java.version spring-clou

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档