概念图

 
apparch

最常见的交互是:
浏览器与web应用程序通信
web应用程序与web APIs进行通信
基于浏览器的应用程序与web APIs通信
原生应用与web APIs通信
基于服务的应用程序与web APIs通信
web APIs与web APIs进行通信

通常,每个层(前端、中间层和后端)都必须保护资源,并实现身份认证和授权.所以它们通常是针对同一个用户进行存储.
将这些基本安全功能外包给安全令牌服务,可以防止在这些应用程序和端点之间复制该功能.
对应用程序进行重构以支持安全令牌服务,这将形成以下体系结构和协议:

 
protocols

这样的设计将安全问题分为两部分:

认证

当应用程序需要知道当前用户的身份时,需要进行身份验证。 通常,这些应用程序代表该用户管理数据,并且需要确保该用户只能访问他被允许的数据。 最常见的例子是(经典)Web应用程序 - 但是基于原生和基于JS的应用程序也需要进行身份验证。
最常见的身份验证协议是SAML2p,WS-Federation和OpenID Connect - SAML2p是最流行和最广泛部署的。
OpenID Connect是三款中最新的,但被认为是未来的趋势,因为它具有现代应用的最大潜力。 它是从一开始就构建用于移动应用场景的,并且被设计为API友好。

API 访问

应用程序有两种基本的方式与API通信:使用应用程序标识或委派用户的身份。 有时候两种方法需要组合使用。
OAuth2是允许应用程序从安全令牌服务请求访问令牌,并使用它们与API进行通信的协议。这种方式减少了客户端应用程序和API的复杂性,因为认证和授权可以集中在了一起。

OpenID Connect和OAuth 2.0:一起食用更佳

OpenID Connect和OAuth 2.0非常相似,实际上OpenID Connect是在OAuth 2.0之上的扩展。两个基本的安全考虑,身份验证和API访问,被组合成了一个单一的协议,通常与安全令牌服务一起单一往返。
我们认为OpenID Connect和OAuth 2.0的组合是在可预见的未来保护现代应用程序的最佳方法。IdentityServer4是这两个协议的实现,并且经过高度优化,可以解决当今移动,原生和Web应用程序的典型安全问题。

术语

 
terminology

IdentityServer

IdentityServer是一个OpenID Connect提供程序,它实现了OpenID Connect和OAuth 2.0协议。
不同的文献对于相同的角色使用不同的术语 - 您可能还会发现安全令牌服务,身份提供者,授权服务器,IP-STS等。
但简而言之,它们都是一样的:一种向客户端发出安全令牌的软件。

IdentityServer有许多工作和功能 - 包括:
1.保护您的资源
2.使用本地帐户商店或通过外部身份提供商对用户进行身份验证
3.提供会话管理和单点登录
4.管理和验证客户端
5.提供身份和访问令牌给客户
6.验证令牌

用户(User)

用户是使用注册的客户端访问资源的人。

客户端(Client)

客户端是从IdentityServer请求令牌的软件,用于验证用户(请求身份令牌)或访问资源(请求访问令牌)。 必须首先向IdentityServer注册客户端才能请求令牌。
客户端的示例是Web应用程序,移动或桌面应用程序,SPA,服务器进程等。

资源(Resources)

资源是要用IdentityServer保护的资源,包括用户的身份信息或API。
每个资源都有一个唯一的名称,客户端使用这个名称来指定他们想要访问的资源。
用户的身份信息,包括名称或电子邮件等。
API资源则是客户端想要调用的功能,它们通常是Web API,但不一定。

身份令牌(Identity Token)

身份令牌表示身份验证过程的结果。它至少包含1.用户的标识,2.用户如何以及何时进行身份验证的信息。它也可以包含其他身份信息。

访问令牌(Access Token)

访问令牌允许用户访问API资源,客户端请求访问令牌并将其转发到API。访问令牌包含有关客户端和用户的信息,API使用该信息来授权用户访问它的数据。
翻译自:https://identityserver4.readthedocs.io/en/release/intro/terminology.html

IdentityServer流程图与相关术语的更多相关文章

  1. IdentityServer4 中文文档 -2- (简介)相关术语

    IdentityServer4 中文文档 -2- (简介)相关术语 原文:http://docs.identityserver.io/en/release/intro/terminology.html ...

  2. 软件测试相关术语(测试策略 && 测试方案 ....)

    软件测试有几种不同的定义方法: a.软件测试是为了发现程序中的错误而执行程序的过程. b.软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并运用这些测试用例运行程序,以 ...

  3. NUI相关术语

    分享一下微软资深企业架构师.应用开发专家余涛先生书中所谈到的相关术语,以便查阅,部分术语根据个人理解加入了细化内容: 1.波束形成算法(BeamformingAlgorithm) 基于现行阵列的阵列信 ...

  4. 3.数据库操作相关术语,Oracle认证,insert into,批量插入,update tablename set,delete和truncate的差别,sql文件导入

     1相关术语 语句 含义 操作 DML语句 (Data Manipulation Language) 数据库操作语言 insert update delete select DDL语言 (Date ...

  5. 前端入门7-JavaScript语法之相关术语

    声明 本系列文章内容全部梳理自以下几个来源: <JavaScript权威指南> MDN web docs Github:smyhvae/web Github:goddyZhao/Trans ...

  6. Spring的AOP开发的相关术语

    转载自 https://www.cnblogs.com/ltfxy/p/9873618.html SpringAOP简介: AOP思想最早是由AOP联盟组织提出的.Spring使用这种思想最好的框架. ...

  7. Spring框架学习05——AOP相关术语详解

    1.Spring AOP 的基本概述 AOP(Aspect Oriented Programing)面向切面编程,AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视.事务管理.安全检查 ...

  8. Spring AOP相关术语

    ---------------------siwuxie095                                 Spring AOP 相关术语         (1)Joinpoint ...

  9. Java 并发,相关术语

    Java 并发,相关术语: 术语 作用 synchronize 可修饰方法.代码块.类:介绍:https://www.cnblogs.com/zyxiaohuihui/p/9096882.html L ...

随机推荐

  1. ConcurrentLinkedQueue的实现原理分析

    1.    引言 在并发编程中我们有时候需要使用线程安全的队列.如果我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法.使用阻塞算法的队列可以用一个锁(入队和出队用同 ...

  2. React Native 开发环境安装和配置使用报错: -bash: react-native: command not found

    [React  Native 开发环境安装和配置:-bash: react-native: command not found 报错: 前提是安装homebrew,node.js ,npm ,watc ...

  3. erlang 游戏服务器开发

    http://blog.csdn.net/slmeng2002/article/details/5532771 最近关注erlang游戏服务器开发  erlang大牛写的游戏服务器值得参考 介绍本文以 ...

  4. 【9005】最短网络agrinet

    Time Limit: 1 second Memory Limit: 256 MB 问题描述 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要你的 ...

  5. 解决Request method 'GET' not supported问题

    博主最近遇到了这个问题,解决情况如下 第一种情况:前台页面的表单在一些情况下没有指定POST方法: Ajax没有指定POST方法: 后台方法在一定情况下需要指定POST方法: 第二种情况:前端参数类型 ...

  6. 【matlab】安装 webcam 支持

    打开 matlab 命令行,输入 webcam,如果提示: 尚未安装 MATLAB Support Package for USB Webcams.打开支持包安装程序即可安装 Webcam Suppo ...

  7. Mac下新安装的MySQL无法登陆root用户(安装时没有设置密码)

    1.也不知是何原因,新安装好的MySQL,如果尝试用mysql -u root -p登陆就会出现这样的错误,但是root用户根本就没有设置密码. $ cd /usr/local$ cd mysql $ ...

  8. NOIP 模拟 box - 费用流 / 匈牙利

    题目大意: 给出n(\(\le 200\))个盒子,第i个盒子长\(x_i\),宽\(y_i\),一个盒子可以放入长宽都大于等于它的盒子里,并且每个盒子里只能放入一个盒子(可以嵌套),嵌套的盒子的占地 ...

  9. HDU 3605Escape(缩点+网络流之最大流)

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3605 本来打算昨天写两道题的,结果这个题卡住了,最后才发现是最后的推断条件出错了,推断满流的条件应该是 ...

  10. nextSibling.focus()报错的问题

    <body> <div> <input type="button" tabindex="-1" value="点点点点点 ...