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 ...
随机推荐
- 通过JDBC进行简单的增删改查(以MySQL为例) 目录
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- string所在头文件
使用string.wstring 头文件:#include <string> 命名空间:std
- hdu-1878(欧拉回路)
题目链接:传送门 思路:就是判断无向图的欧拉回路的两个条件:(1)连通性(2)点的度数是偶数 注意:两个条件一同时满足才行. #include<iostream> #include< ...
- 位图法bitmap
1.概念 1)所谓bitmap,就是用每一位(bit)来标记某个元素对应的value, 而key即是该元素,通常bitmap是一个int数组,用每一个int数的每一个bit来映射某个数据 2)由于采用 ...
- qhfl-3 Course模块
课程模块,包括免费课程以及专题课程两个,主要是课程的展示,点击课程进入课程详细页面 根据功能设计表结构 为了方便,每张表在数据库中添加了中文名 from django.db import models ...
- 网络编程—端口分类调研和netstat命令
运输层的端口: 1.什么是端口?为甚要使用用端口? 进程的创建和撤销都是动态的,通信的一方几乎无法识别对方机器上的进程,我们需要利用目的主机提供的功能来识别终点. 所以为了解决上述问题,我们就在运输层 ...
- CentOS配置多公网
最终目标是同一台服务器可以多个IP地址共同访问,在这个前提下又有如下两种方式: 多个公网IP使用同一个网关 多个公网IP使用不同网关 这两种方式区别所在:1.多个公网IP使用同一个网关,我们只 ...
- [算法专题] LinkedList
前段时间在看一本01年出的旧书<effective Tcp/Ip programming>,这个算法专题中断了几天,现在继续写下去. Introduction 对于单向链表(singly ...
- React-Native 问题随记2: com.android.builder.testing.api.DeviceException
错误详细: Execution failed for task ':app:installDebug'.> com.android.builder.testing.api.DeviceExcep ...
- Baidu WebUploader 前端文件上传组件的使用
简介 WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流I ...