IdentityServer4 中文文档 -1- (简介)背景
IdentityServer4 中文文档 -1- (简介)背景
原文:http://docs.identityserver.io/en/release/intro/big_picture.html
下一篇:IdentityServer4 中文文档 -2- (简介)相关术语
现代应用程序看上去大都是这样的:

常见的交互方式包括:
- 浏览器 与 Web应用程序 通信;
- Web应用程序 与 Web API 通信(Web应用程序自身 或 代表用户 与 Web API 通信);
- 基于浏览器的应用程序 与 Web API 通信;
- 本地应用程序 与 Web API 通信;
- 基于服务器的应用程序 与 Web API 通信;
- Web API 与 Web API 通信(WebAPI自身 或 代表用户与另一个WebAPI 通信);
将基础安全功能外包给一个安全令牌服务(STS,Security Token Service),能够避免这些应用程序以及端点之间的功能性重复。
重组应用程序以支持一个安全令牌服务,能够导出以下架构和协议:

这样的设计把安全问题分成了两个部分:
身份认证
当一个应用程序需要知道当前用户的身份(Identity)的时候就要用到身份认证(Authentication)。通常情况下这些应用程序托管着代表该用户的数据,并且必须确保该用户只能访问被允许访问的数据。最常见的例子就是传统的web应用程序 —— 但是本地应用程序和基于JS的应用程序也同样需要身份认证。
最常见的身份认证协议是 SAML2p、WS-Federation 和 OpenID Connect——SAML2p 是最受欢迎的,也是部署得最广泛的。
OpenID Connect 是三种协议中最新的一种,但它却被认为是未来的趋势,因为它对于现代应用程序来说最具潜力。它从一开始就是为移动应用场景而构建的,并且被设计成了友好的API。
API访问
应用程序有两种基础的方式与API通信 —— 使用应用程序身份,或者使用代表用户的身份。有时候需要联合使用这两种方式。
OAuth2 是一个通信协议,它允许应用程序向安全令牌服务请求访问令牌,然后通过访问令牌与API通信。这同时减少了客户应用程序和API的复杂性,因为认证和授权可以是集中式的。
OpenID Connect和OAuth2 —— 结合使用更好
OpenID Connect和OAuth2非常相似 —— 实际上前者是后者的顶级扩展。它们把两个基础安全问题(身份认证和 API 访问)合并成了一个单一的协议 —— 通常这只是与安全令牌服务的一个往返交互。
我们坚信,将 OpenID Connect 和 OAuth2 结合以保护现代应用程序,在可预见的未来,肯定会是最佳实践。IdentityServer4 是这两种协议的实现,并且它已经被高度优化以解决当今 移动应用程序、本地应用程序 和 Web应用程序 的典型安全问题。
IdentityServer4 能做什么?
IdentityServer4 是一个中间件 ,它能够将符合规范的 OpenID Connect 和 OAuth2.0 端点添加到任意一个 ASP.NET Core 应用程序中。
通常,在你构建(或者复用)一个包含登录和注销页(或者 授权确认页)的应用程序的时候,IdentityServer 中间件会将需要的协议添加到页面头部,这样一来客户端应用程序就能够使用这些标准协议跟它协商了。

你可以根据你的需要使用尽可能复杂的宿主应用程序。但是,为了保持受攻击面尽可能小, 我们一般建议你只将认证相关的UI包含进来。
下一篇:IdentityServer4 中文文档 -2- (简介)相关术语
IdentityServer4 中文文档 -1- (简介)背景的更多相关文章
- IdentityServer4 中文文档 -2- (简介)相关术语
IdentityServer4 中文文档 -2- (简介)相关术语 原文:http://docs.identityserver.io/en/release/intro/terminology.html ...
- IdentityServer4 中文文档 -3- (简介)已支持的规范
IdentityServer4 中文文档 -3- (简介)已支持的规范 原文:http://docs.identityserver.io/en/release/intro/specs.html 目 录 ...
- IdentityServer4 中文文档 -4- (简介)打包和构建
IdentityServer4 中文文档 -4- (简介)打包和构建 原文:http://docs.identityserver.io/en/release/intro/packaging.html ...
- IdentityServer4 中文文档 -5- (简介)支持和咨询选项
IdentityServer4 中文文档 -5- (简介)支持和咨询选项 原文:http://docs.identityserver.io/en/release/intro/support.html ...
- IdentityServer4 中文文档 -6- (简介)示例服务器和测试
IdentityServer4 中文文档 -6- (简介)示例服务器和测试 原文:http://docs.identityserver.io/en/release/intro/test.html 目 ...
- IdentityServer4 中文文档 -7- (简介)贡献
IdentityServer4 中文文档 -7- (简介)贡献 原文:http://docs.identityserver.io/en/release/intro/contributing.html ...
- IdentityServer4 中文文档 -8- (快速入门)设置和概览
IdentityServer4 中文文档 -8- (快速入门)设置和概览 原文:http://docs.identityserver.io/en/release/quickstarts/0_overv ...
- IdentityServer4 中文文档 -16- (快速入门)使用 EntityFramework Core 存储配置数据
IdentityServer4 中文文档 -16- (快速入门)使用 EntityFramework Core 存储配置数据 原文:http://docs.identityserver.io/en/r ...
- IdentityServer4 中文文档 -15- (快速入门)添加 JavaScript 客户端
IdentityServer4 中文文档 -15- (快速入门)添加 JavaScript 客户端 原文:http://docs.identityserver.io/en/release/quicks ...
随机推荐
- 1.4eigen中的块运算
1.4 块运算 块是矩阵或数组的一个矩形部分.块表达式既可以做左值也可以作右值.和矩阵表达式一样,块分解具有零运行时间成本,对你的程序进行优化. 1.使用块运算 最常用的块运算是.block()成员函 ...
- nigx
1.反向代理 2.负载均衡(weight:设置权重) 3.高可用(场景:当主服务器死掉后 拥有备用服务器承接后续的访问) 安装 Keepalived实现
- ActiveMQ_3Java实现
Java实现 添加相应的jar包 <dependency> <groupId>org.apache.activemq</groupId> <artifactI ...
- ABP框架系列之十三:(Authorization-授权)
Introduction Almost all enterprise applications use authorization in some level. Authorization is us ...
- IPC,Hz(Hertz) and Clock Speed
How do we measure a CPU's work? Whether it's fast or not depends on three factors: IPC, Hz, Clock sp ...
- ZZNU 2098 Drink coffee(差分+树状数组)
题目链接:http://acm.hi-54.com/problem.php?pid=2098 2098 : Drink coffee 时间限制:1 Sec 内存限制:256 MiB 提交:32 答案正 ...
- js生成随机固定长度字符串的简便方法
概述 碰到一个需求:用js生成固定长度的字符串.在网上查了很多资料,网上的方法都比较麻烦.我自己灵光一现,实现了一个比较简单的方法.记录下来,供以后开发时参考,相信对其他人也有用. js生成随机字符串 ...
- 解决SpringBoot jar包太大的问题
转载 2017年09月18日 09:21:53 577 SpringBoot的web应用一般都添加了spring-boot-maven-plugin插件. Maven xml代码 <buil ...
- 恭喜"微微软"喜当爹,Github嫁入豪门。
今天是 Github 嫁入豪门的第 2 天,炒得沸沸扬扬的微软 Github 收购事件于昨天(06月04日)尘埃落定,微软最终以 75 亿美元正式收购 Github. 随后,Gitlab 趁势带了一波 ...
- 【2019北京集训测试赛(十三)】数据(sj) 冷静分析
题目大意:给你一个代表区间$[1,n]$的线段树,问你随机访问区间$[1,n]$中的一个子区间,覆盖到的线段树节点个数的期望(需要乘上$\frac{n(n-1)}{2}$后输出). 数据范围:$n≤1 ...