欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

IdentityServer4关于多客户端和API的最佳实践【含多类型客户端和API资源,以及客户端分组实践】【下】

程序员文章站 2022-06-30 22:11:17
经过前两篇文章你已经知道了关于服务器搭建和客户端接入相关的基本资料,本文主要讲述整个授权系统所服务的对象,以ProtectApi资源为演示 目标: 1)实现多资源服务器针对请求的token校验,接入IDSV 2)实现多资源服务器token识别以及user信息获取 3)客户端发起对保护API的直接请求 ......

经过前两篇文章你已经知道了关于服务器搭建和客户端接入相关的基本资料,本文主要讲述整个授权系统所服务的对象,以ProtectApi资源为演示

 

目标:

  1)实现多资源服务器针对请求的token校验,接入IDSV 

  2)实现多资源服务器token识别以及user信息获取

  3)客户端发起对保护API的直接请求   

 

GO:

     1)netcore资源服务器接入

    这部分简直不要太简单,封装的组件就一个字:完美!

    代码截图如下:

    IdentityServer4关于多客户端和API的最佳实践【含多类型客户端和API资源,以及客户端分组实践】【下】

    只需要声明远程授权服务器地址,以及当前API是谁即可,,,其实验证的内部也就是验证当前过来的token所能够请求的Audience是否包含当前API,如果不包含  gg,顺带说一句,这个组件检查的是bearer类型的token数据【jwt格式】。

    待检查完毕之后,cookies组件,自动将当前请求的用户组装成ClaimsPrincipal,这时在任意一处使用User.Claims,即可针对当前用户进行一些秘密操作。


 

 

  2)netfx资源服务器接入

    这部分也就是在全局的API过滤器中进行一个请求检查和UserInfo的获取,这个也不用担心,因为IDSV已经开放了token的检测接口  格式connect/introspect

    代码截图如下:

    IdentityServer4关于多客户端和API的最佳实践【含多类型客户端和API资源,以及客户端分组实践】【下】

    以上就是检测token的过程。

    这地方userinfo调取远程授权服务器connect/userinfo接口即可,截图如下:

    IdentityServer4关于多客户端和API的最佳实践【含多类型客户端和API资源,以及客户端分组实践】【下】

以下为源码:  

    IdentityServer4关于多客户端和API的最佳实践【含多类型客户端和API资源,以及客户端分组实践】【下】

    别的语言直接选择在请求中假如bearer token,然后发起对connect/userinfo接口的请求即可。


  3)在客户端获取到token,服务器搭建完毕,资源服务器已然准备就绪,只剩客户端获取保护API资源了

    IdentityServer4关于多客户端和API的最佳实践【含多类型客户端和API资源,以及客户端分组实践】【下】

    这部分与正常的HTTP请求相同,唯一区别就在于,添加了token的头部请求。

 


 附DEMO源码地址:

到此小白同学,你应该能够完整的搭建一套IDS服务器以及实现客户端和API之间的全套流程。

【如果看完之后有所启发,不要吝啬您的点赞哦~】