IdentityServer4 - V4 概念理解及认证授权过程
概念理解
Scope
范围,它的定义比较宽泛,可大可小。
大到可把多个包含相同Scope的站点或服务形成一个虚拟的组,也可以是站点或服务的子级;小到身份所需要包含的信息,以精确出哪种身份。
Client
用户将要使用的客户端;如:PC端、移动端、小程序、商家app、购物app、管理员app等
客户端包含了标识、授权方式、密钥、指定的范围等信息。
客户端请求样例:
[统一认证授权服务]中存放了多种Client,请求[统一认证授权服务]时附带的参数表明是哪个Client的请求,[统一认证授权服务]验证是否存在的Client。
Client.Scope
客户端指定的支持范围(能匹配到的服务 + 可取得的身份信息)
认证授权后的Token = 可访问的服务 + 已认证的用户信息。
Claim
用户信息属性,描述身份信息的元素;
如:姓名的Claim对象、手机的Claim对象,部门角色等的众多对象 存于 IssuedClaims 中。
ApiResource
资源的定义,可认为是一个站点或一个后台服务等,也就是可被授权访问的服务,如:产品服务、订单服务
ApiResource.Scope
Client通过参数Scope可关联到的ApiResource
ApiResource.UserClaims
访问服务时,Token中要求必须有的用户信息(服务的个性化要求)
IdentityResource
认证后的身份信息,主要定义关于身份的描述,身份中的Claim包含了比较完整的用户(身份)信息,数据取自于 IssuedClaims,于Token中附带;如:OpenID、profile(姓名、性别、账号、电话等)、email、地址等,可按情况自定义追加
运行前提
- Client 客户端的数据源
- IdentityResource 身份结构的定义
- ApiResource 的数据源
- Scope 的数据源
- UserClaims 用户信息数据源
运行过程
1、请求认证授权的主要参数:客户端标识、用户凭证、授权方式、密钥Secret、范围Scope
2、验证客户端是否存在
3、验证Scope关联到的身份是否存在
4、验证Scope关联到的ApiResource是否存在
5、验证Scope是否已定义
6、验证账户信息
7、账户信息通过Claim组合成Principal成为Identity合法身份
8、通过Scope参数,关联到的ApiResource + 关联到已认证的身份信息 => 生成Token
符合Scope参数的ApiResource,符合Scope参数的身份,
此Token就可以访问一个或多个服务(范围)及附带的用户信息。
请求参数Scope关联到的ApiResource + 请求参数Scope关联到的Claim => 生成 Token
相当于:要授权的ApiResource + 认证后的Claim信息 => 生成Token
也相当于:Token => 可访问的ApiResource服务 + 取已认证的用户身份信息
授权认证过程示例图

IdentityServer4 - V4 概念理解及认证授权过程的更多相关文章
- 基于IdentityServer4 实现.NET Core的认证授权
IdentityServer4是什么? IdentityServer4是基于ASP.NET Core实现的认证和授权框架,是对OpenID Connect和OAuth 2.0协议的实现. OpenID ...
- 一看就懂的IdentityServer4认证授权设计方案
查阅了大多数相关资料,总结设计一个IdentityServer4认证授权方案,我们先看理论,后设计方案. 1.快速理解认证授权 我们先看一下网站发起QQ认证授权,授权通过后获取用户头像,昵称的流程. ...
- jwt、oauth2和oidc等认证授权技术的理解
前言 jwt.oauth2.oidc等,都是和认证授权相关的规范或者解决方案,因此要理解他们,就需要从业务场景的适用性一步步的分析和认识. 一.认证授权业务场景理解 就个人目前的理解来看,一个好的软件 ...
- Spring Cloud Security OAuth2.0 认证授权系列(一) 基础概念
世界上最快的捷径,就是脚踏实地,本文已收录[架构技术专栏]关注这个喜欢分享的地方. 前序 最近想搞下基于Spring Cloud的认证授权平台,总体想法是可以对服务间授权,想做一个基于Agent 的无 ...
- .net core gRPC与IdentityServer4集成认证授权
前言 随着.net core3.0的正式发布,gRPC服务被集成到了VS2019.本文主要演示如何对gRPC的服务进行认证授权. 分析 目前.net core使用最广的认证授权组件是基于OAuth2. ...
- 软件安全概念:认证 & 授权
认证 证明你是谁,这个过程就是认证 授权 你能干什么
- 认证授权:IdentityServer4
前言 上一篇文章<学习OIDC>介绍了OIDC协议,本篇开始我们就来具体来学习OIDC的具体实现IdentityServer4 学习. 一.IdentityServer4 是什么? Ide ...
- Spring Cloud 微服务中搭建 OAuth2.0 认证授权服务
在使用 Spring Cloud 体系来构建微服务的过程中,用户请求是通过网关(ZUUL 或 Spring APIGateway)以 HTTP 协议来传输信息,API 网关将自己注册为 Eureka ...
- SNF快速开发平台2019-角色、权限、账户的概念理解-非常全的理论讲解权限控制
组织模型 资源模型 操作模型 谁能够执行哪些操作 执行资源的范围 资源概念资源就是想要的到的最终物质,我们可以给每一个资源定义一个权限,也可以给某一类资源定义一个权限 权限概念权限是对资源 ...
- [认证授权] 4.OIDC(OpenId Connect)身份认证授权(核心部分)
0 目录 认证授权系列:http://www.cnblogs.com/linianhui/category/929878.html 1 什么是OIDC? 看一下官方的介绍(http://openid. ...
随机推荐
- Oh My Life~
作者:HChan 链接:https://zhuanlan.zhihu.com/p/47084162 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. Part 1 那年 ...
- Upscayl,免费开源的 AI 图像增强软件
有的时候我们找遍了全网却难以找到一张模糊图片的原图,这时候我们想如果能够一键将图片变成高清的就好了.其实这正是计算机视觉的一大研究反向--图形增强,通过AI计算将模糊的图片增强,将几百kb的低像素图片 ...
- TWS耳机蓝牙建连过程_HCI版本
TWS耳机信息:Enco Air2 手机信息:onePlus8 ColorOS V12.1 其他准备工作:手机进入开发者模式,打开本地日志开关.可参考上一篇文章 https://www.cnblog ...
- 路径分析—QGIS+PostgreSQL+PostGIS+pgRouting(一)
前言 因业务需求,需要做最短路径分析.最近几天查询资料,并自己动手,实现了简单的路径分析. 下面就介绍具体的实现过程. 本篇文章最终结果是在 PostgreSQL 数据库中实现的,后续的可视化展示会继 ...
- 1.MongoDB之服务启动
1. 编写docker-compose.yaml文件 version: "3" services: mongo: image: mongo:4.2.6 ports: - 27017 ...
- C++ lower_bound/upper_bound用法解析
1. 作用 lower_bound和upper_bound都是C++的STL库中的函数,作用差不多,lower_bound所返回的是第一个大于或等于目标元素的元素地址,而upper ...
- 网络安全(一):信息收集之玩转nmap(理论篇)
更新时间 2022年09月06日16:20:10 完成nmap介绍,目标选择,主机发现部分 2022年10月28日21:19:20 完成最基本的内容,端口扫描,版本和系统探测,安全其他等 打算的更新计 ...
- SpringBoot3.x原生镜像-Native Image尝鲜
前提 Spring团队致力于为Spring应用程序提供原生映像支持已经有一段时间了.在SpringBoo2.x的Spring Native实验项目中酝酿了3年多之后,随着Spring Framewor ...
- Day16异常1
package com.exception.demo01;public class demo01 { public static void main(String[] args) { try{new ...
- Optional用法与争议点
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 要说Java中什么异常最容易出现,我想NullPointerException一定当仁不让,为了解决这种null值 ...