概念理解

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. 2022美团Java后端开发春招实习面经

    2022美团Java后端开发春招实习面经 一面 1.讲一下计算机网络的五层架构,每层分别有什么协议 ​ 五层架构:应用层.运输层.网络层.数据链路层.物理层 ​ 2.什么是 Http 协议,各种 Ht ...

  2. 欢迎来到ktq_cpp的cnblog

    欢迎来到ktq_cpp的cnblog 初学html,可能排版有一些问题,望指教 我的洛谷博客 我的AtCoder账号

  3. 洛谷P4408 [NOI2003] 逃学的小孩 (树的直径)

    本题就是从c到a/b再到b/a距离的最大值,显然,a和b分别是树的直径的两个端点,先用两次dfs求出树的直径,再用一次dfs求出每个点到a的距离,最后再用一次dfs求出每个点到距离它较近的a/b的距离 ...

  4. Java中的多线程的创建方式

    首先理清几个基本概念: 程序:为完成特定任务,用某种语言编写的一组指令的集合.即一段静态的代码(还没运行起来) 进程:是程序的一次执行过程,也就是说程序运行起来了,加载到了内存中,并占用了cpu的资源 ...

  5. Spring bean装配流程和三级缓存

    马士兵 源码方法论 不要忽略源码中的注释 先梳理脉络,再深入细节 大胆猜测.小心求证 见名知意 hold on 对源码有兴趣的都是变态 为了钱! Spring IoC Spring容器帮助管理对象,不 ...

  6. ubuntu安装及使用

    ubuntu教程 一. Ubuntu简介 Ubuntu(乌班图)是一个基于Debian的以桌面应用为主的Linux操作系统,据说其名称来自非洲南部祖鲁语或科萨语的"ubuntu"一 ...

  7. Linux 文件操作接口

    目录 Linux 文件操作接口 C语言文件操作接口 C语言文件描述 fopen() r模式打开文件 w模式打开文件 a模式打开文件 其他模式类似 fclose() fwrite() fread() 系 ...

  8. 【.NET 6】RabbitMQ延迟消费指南

    背景 最近遇到一个比较特殊需求,需要修改一个的RabbitMQ消费者,以实现在消费某种特定的类型消息时,延迟1小时再处理,几个需要注意的点: 延迟是以小时为单位 不是所有消息都延迟消费,只延迟特定类型 ...

  9. maven 重复依赖不同版本 选择规则

    maven 重复依赖不同版本 选择规则 本篇主要来看看 maven 对于 重复依赖的jar的不同版本时候 它内部的选择规则, 很多时候我们在搭建环境的时候 不注意就会存在依赖冲突等问题 那依赖冲突的时 ...

  10. 关于Object.keys()和Object.values()的使用

    关于Object.keys()和Object.values()的使用 1. 关于Object.keys() 1) 处理对象,返回可枚举的所有可枚举属性的字符串数组 let person ={ name ...