概念理解

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. css 悬停图片改变图片的样式

    <style> #div{ text-align: center; } .img{ width: 200px; clip-path: polygon(50% 0,100% 50%,50% ...

  2. Springboot 之 Mybatis-plus 多数据源

    简介 Mybatis-puls 多数据源的使用,采用的是官方提供的dynamic-datasource-spring-boot-starter包的 @DS 注解,具体可以参考官网: https://g ...

  3. 用深度强化学习玩FlappyBird

    摘要:学习玩游戏一直是当今AI研究的热门话题之一.使用博弈论/搜索算法来解决这些问题需要特别地进行周密的特性定义,使得其扩展性不强.使用深度学习算法训练的卷积神经网络模型(CNN)自提出以来在图像处理 ...

  4. 把train数据集生成txt(test同理)

    import cv2 import numpy as np import os import sys import pickle data_dir = os.path.join("./&qu ...

  5. 使用Pytorch进行多卡训练

    当一块GPU不够用时,我们就需要使用多卡进行并行训练.其中多卡并行可分为数据并行和模型并行.具体区别如下图所示: 由于模型并行比较少用,这里只对数据并行进行记录.对于pytorch,有两种方式可以进行 ...

  6. 方法的重写(override / overwrite)

    1.重写:子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作 2.应用:重写以后,当创建子类对象以后,通过子类对象调用子父类中的同名同参数的方法时,实际执行的是子类重写父类的方法. 重写的规 ...

  7. 知识图谱顶会论文(ACL-2022) PKGC:预训练模型是否有利于KGC?可靠的评估和合理的方法

    PKGC:预训练模型是否有利于KGC?可靠的评估和合理的方法 论文地址:Do Pre-trained Models Benefit Knowledge Graph Completion? A Reli ...

  8. 13.内建函数eval()

      eval函数 eval()函数十分强大 -- 将字符串当成有效的表达式来求值并返回计算结果 例如下图,eval会将字符串的引号去掉并且计算返回结果  

  9. 「MySQL高级篇」explain分析SQL,索引失效&&常见优化场景

    大家好,我是melo,一名大三后台练习生 专栏回顾 索引的原理&&设计原则 欢迎关注本专栏:MySQL高级篇 本篇速览 在我们上一篇文章中,讲到了索引的原理&&设计原则 ...

  10. 第2-1-2章 传统方式安装FastDFS-附FastDFS常用命令

    目录 3 安装配置 3.1 安装GCC 3.2 安装libevent 3.3 安装libfastcommon 3.4 安装FastDFS 3.5 安装fastdfs-nginx-module 3.5 ...