概念理解

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 概念理解及认证授权过程的更多相关文章

  1. 基于IdentityServer4 实现.NET Core的认证授权

    IdentityServer4是什么? IdentityServer4是基于ASP.NET Core实现的认证和授权框架,是对OpenID Connect和OAuth 2.0协议的实现. OpenID ...

  2. 一看就懂的IdentityServer4认证授权设计方案

    查阅了大多数相关资料,总结设计一个IdentityServer4认证授权方案,我们先看理论,后设计方案. 1.快速理解认证授权 我们先看一下网站发起QQ认证授权,授权通过后获取用户头像,昵称的流程. ...

  3. jwt、oauth2和oidc等认证授权技术的理解

    前言 jwt.oauth2.oidc等,都是和认证授权相关的规范或者解决方案,因此要理解他们,就需要从业务场景的适用性一步步的分析和认识. 一.认证授权业务场景理解 就个人目前的理解来看,一个好的软件 ...

  4. Spring Cloud Security OAuth2.0 认证授权系列(一) 基础概念

    世界上最快的捷径,就是脚踏实地,本文已收录[架构技术专栏]关注这个喜欢分享的地方. 前序 最近想搞下基于Spring Cloud的认证授权平台,总体想法是可以对服务间授权,想做一个基于Agent 的无 ...

  5. .net core gRPC与IdentityServer4集成认证授权

    前言 随着.net core3.0的正式发布,gRPC服务被集成到了VS2019.本文主要演示如何对gRPC的服务进行认证授权. 分析 目前.net core使用最广的认证授权组件是基于OAuth2. ...

  6. 软件安全概念:认证 & 授权

    认证 证明你是谁,这个过程就是认证 授权 你能干什么

  7. 认证授权:IdentityServer4

    前言 上一篇文章<学习OIDC>介绍了OIDC协议,本篇开始我们就来具体来学习OIDC的具体实现IdentityServer4 学习. 一.IdentityServer4 是什么? Ide ...

  8. Spring Cloud 微服务中搭建 OAuth2.0 认证授权服务

    在使用 Spring Cloud 体系来构建微服务的过程中,用户请求是通过网关(ZUUL 或 Spring APIGateway)以 HTTP 协议来传输信息,API 网关将自己注册为 Eureka ...

  9. SNF快速开发平台2019-角色、权限、账户的概念理解-非常全的理论讲解权限控制

    组织模型   资源模型  操作模型 谁能够执行哪些操作    执行资源的范围 资源概念资源就是想要的到的最终物质,我们可以给每一个资源定义一个权限,也可以给某一类资源定义一个权限 权限概念权限是对资源 ...

  10. [认证授权] 4.OIDC(OpenId Connect)身份认证授权(核心部分)

    0 目录 认证授权系列:http://www.cnblogs.com/linianhui/category/929878.html 1 什么是OIDC? 看一下官方的介绍(http://openid. ...

随机推荐

  1. css3_媒介查询

    !!!做媒介查询页面大小时,一定要加: <meta name="viewport" content="width=device-width, initial-sca ...

  2. 【Spring boot】启动过程源码分析

    启动过程结论 推测web应用类型. spi的方式获取BootstrapRegistryInitializer.ApplicationContextInitializer.ApplicationCont ...

  3. 干货|什么是特性团队/功能团队(FeatureTeam)

    最近一直在思考如何做团队组织能力建设和如何进行决策.执行产品研发策略.因为自己一直在研发效能领域,所以来谈谈什么是特性团队(FeatureTeam), 怎么创建特性团队以及在日常工作中如何结合 Scr ...

  4. 二十四、PV与PVC介绍

    PV 与 PVC介绍 一.概念介绍 ​PersistentVolume (PV) 是由管理员设置的存储,它是群集的一部分.就像节点是集群中的资源一样,PV 也是集群中的资源. PV 是Volume 之 ...

  5. nginx 客户端返回499的错误码

    我们服务器客户端一直有返回错误码499的日志,以前觉得比例不高,就没有仔细查过,最近有领导问这个问题,为什么耗时只有0.0几秒,为啥还499了?最近几天就把这个问题跟踪定位了一下,这里做个记录 网络架 ...

  6. Python--网络编程学习笔记系列01 附实战:udp聊天器

    Python--网络编程学习系列笔记01 网络编程基本目标: 不同的电脑上的软件能够实现数据传输 网络编程基础知识: IP地址: 用来在网络中标记一台电脑  网络号+主机号(按网络号和主机号占位分类A ...

  7. KNN算法之集美大学

     在本篇文章中,我即将以在集美大学收集到的一些数据集为基础,使用KNN算法进行一系列的操作 一.KNN算法 首先,什么是KNN算法呢,这得用到老祖宗说的一句话"近朱者赤近墨者黑", ...

  8. Day1:Markdown文本基础操作

    Markdown学习 标题 一级标题 输入:#+空格+标题名字 :快捷键(Ctrl+1~6) 二级标题 输入:##+空格+标题名字 为二级标题 依次加#(最多六级标题) 三级标题 四级标题 字体 He ...

  9. String常用API

    String常用API 1. 获取字符串长度 int length = str.length(); 2. 根据索引,返回字符串中对应的字符 char c = str.chaeAt(length-1); ...

  10. dp入门30题

    前言:本文章主要记录一些 \(dp\) 入门题,都是我做过的,希望读者能从这些基础题中打好 \(dp\) 扎实的基础,有不足的地方也欢迎指出.大部分是 \(CodeFoces\) 和 \(Atcode ...