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服务 + 取已认证的用户身份信息
授权认证过程示例图
最新文章
- Python 之旅
- 从输入 URL 到浏览器接收的过程中发生了什么事情
- AngularJS快速入门指南03:表达式
- 2015年9月28日html基础了解学习
- mysql 分区和集群
- java枚举类型举例(基础)
- latex 双引号 “
- SharePoint PowerShell 启动工作流
- (转载)intellj idea 如何设置类头注释和方法注释
- Asp.net core 学习笔记 ( Smtp and Razor template 电子邮件和 Razor 模板 )
- java中字符串的排序(1)
- MT【229】最小值函数
- 版本视图找不到数据 EDITIONING VIEW
- VMware下centos桥接模式静态ip配置
- fdisk mkfs blkid fstab
- kubeadm源码修改证书时间 -1.13
- java 证书体系及应用,自已做https证书
- 利用pushState开发无刷页面切换(转)
- <;NET CLR via c# 第4版>;笔记 第9章 参数
- javascript中Function与Object