1、IdentityServer4 是什么

IdentityServer4 是使用 ASP.NET Core实现了OpenID和OAuth 2.0协议的身份认证框架;重复一遍,它是一个框架;框架决定它不是一个开箱即用的产品,需要根据自己的需求进行定制;同时也意味着更高的灵活性;

2、什么是OpenID和OAuth 2.0协议

对很多初学者来说(包括我自己),这个问题比较抽象,我还特定去搜索、了解、理解过,如果看完以下解析还是看不懂的话可以继续看这里

按我的理解来说,他们的区别是:

OpenID
直接引用以上链接问答里的话“OpenID是Authentication,OAuth是Authorization”,Authentication就是鉴权;就是用一条url来证明这条url就是我;这句话怎么理解呢,比如:
A网站是提供OpenID的网站,你在A网站注册了OpenID;
B、C、D等是支持OpenID登录的网站;
现在你要登录B、C、D网站,你只需要在B、C或D网站填写A网站注册的OpenID,然后统一跳到A网站去验证;
验证成功后,会跳转回B、C、D网站,成功登录;

如果是用用户名登录的B、C、D网站的话,要分别准备3套用户名和密码;使用以上OpenID登录的方式、只需要注册A网站得到OpenID;

OAuth 2.0
OAuth是Authorization,就是授权;一字之差;比如:
我在A网站拥有一些资源(头像啊、照片啊都算资源),B网站要用他,然后我们不想给B网站账号密码,那怎么给他资源呢?OAuth就是做这个的,资源的授权;
打个比方,我的(用户)微信的微信头像存在微信 weixin.qq.com(服务提供方),然后京东(客户端)想要获取我的微信头像(资源);
那么京东会引导用户打开微信的授权页面:
用户点击授权,京东得到一个授权token,然后京东通过授权token获取我的微信头像;授权页面如下图。
以上就是一个典型的OAuth过程

OAuth 2.0是OAuth 1.0出现安全漏洞后修补了协议(2.0具体协议RC 6749)的一个版本,与概念是什么无关;
OAuth 2.0和OAuth 1.0不兼容;

3、IdentityServer4 可以用来做什么

这个对于我们初学者来说很重要,总体来说它可以:
(1)单点登录
web/app/wap等多种应用上的单点登录、退出;

(2)保护你的api接口
比如你们公司有多个部门,每个部门都会有多个自己业务系统的接口,这些业务的接口又分别给不同的部门调用,不同的部门对调用同一个业务的权限又不一样;这个时候IdentityServer4就很容易实现以上需求了;

(3)支持OpenID登录
IdentityServer4是支持OpenID登录的框架,比如谷歌是OpenID的提供者,登录谷歌就直接使用第二点提到的使用谷歌 OpenID登录就可以登录了;

(4)统一的登录处理逻辑
比如你们公司有有多个业务后台系统需要登录,每个后台单独使用一套用户名和密码将非常麻烦,这个使用IdentityServer4亦可轻松使用一套用户名密码登录各个业务系统;

(5)高度自由的定制
还用更多的使用场景,可自行发掘;

其他

官方文档
源码地址
Demo地址
晓晨大神IdentityServer4系列文章

Asp.net Core IdentityServer4 入门教程(一):概念解析的更多相关文章

  1. 观看杨老师(杨旭)Asp.Net Core MVC入门教程记录

    观看杨老师(杨旭)Asp.Net Core MVC入门教程记录 ASP.NET Core MVC入门 Asp.Net Core启动和配置 Program类,Main方法 Startup类 依赖注入,I ...

  2. Asp.Net Core IdentityServer4 中的基本概念

    一.前言 这篇文章可能大家会觉得很空洞,没有实际的实战东西,主要是自己整理出来的IdentityServer4 的一些概念性的东西:如果你对IdentityServer4有过一定的实战经验,可以跳过不 ...

  3. 005.Getting started with ASP.NET Core MVC and Visual Studio -- 【VS开发asp.net core mvc 入门】

    Getting started with ASP.NET Core MVC and Visual Studio VS开发asp.net core mvc 入门 2017-3-7 2 分钟阅读时长 本文 ...

  4. .NET Core 快速入门教程

    .NET Core 快速学习.入门系列教程.这个入门系列教程主要跟大家聊聊.NET Core的前世今生,以及Windows.Linux(CentOS.Ubuntu)基础开发环境的搭建.第一个.NET ...

  5. .NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)

    一.前言 本篇开发环境?1.操作系统: Windows 10 X642.SDK: .NET Core 2.0 Preview 二.安装 .NET Core SDK 1.下载 .NET Core下载地址 ...

  6. .NET Core快速入门教程 3、我的第一个.NET Core App (CentOS篇)

    一.前言 本篇开发环境?1.操作系统:CentOS7(因为ken比较偏爱CentOS7)2.SDK版本:.NET Core 2.0 Preview 你可能需要的前置知识1.了解如何通过Hyper-V安 ...

  7. ASP.NET Core Web API 教程 - Project Configuration

    ASP.NET Core Web API 教程 本系列文章主要参考了<Ultimate ASP.NET Core 3 Web API>一书,我对原文进行了翻译,同时适当删减.修改了一部分内 ...

  8. ASP.NET MVC 5 入门教程 (4) View和ViewBag

    文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-get-started-view.html 上一节:ASP.NET MVC 5 入门教 ...

  9. ASP.NET MVC5 + EF6 入门教程 (6) View中的Razor使用

    文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-ef-6-get-started-model.html 上一节:ASP.NET MVC ...

随机推荐

  1. 04flask_scripts使用

    1,flask_script作用 flask_script的作用是可以通过命令行的实行来操作Flask,例如通过命令跑一个开发版本的服务器,设置数据库,定时任务等, 我们把脚本命令代码放在一个叫做ma ...

  2. vue实现二级联动效果

    你如城市与省份间的二级联动效果 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...

  3. using Sysyem.Net.Http命名空间引用不了的解决方案

    1.查看.Net Framework的框架是否是在4.5之上,如果不是要下载4.5之上的目标框架. 2.在引用器里面添加using System.Net.Http命名空间 选择项目列表中的“引用”-- ...

  4. SPA 单页面应用程序。

    看到这个问题,先说下自己的理解到的程度,再去参考做修正,争取这一次弄懂搞清楚 自己的理解: 单页面应用程序,解决浏览器获取数据刷新页面的尴尬,通过ajax请求获取数据达到异步更新视图的按钮,原理的实现 ...

  5. Linux 结构化命令

    if -then 语句 if -then 语句有如下格式 if command then commands f i bash shell 的if语句会先运行if后面的那个命令,如果改命令的退出状态码是 ...

  6. nvidia-smi GPU异常消失 程序中断

    GPU型号为NVIDIA的1080Ti,最近出现的状况的是某一个GPU突然就出问题了,如果在该GPU上有运行程序的话则程序中断,nvidia-smi显示出来的GPU则少了这一个. 1.一开始怀疑是温度 ...

  7. python print 中文重定向失败

    一直以来认为解决python字符集编码,不一定需要通过sys.setdefaultencoding.因为既然python实现过程中,默认禁用了该操作,说明是不推荐的. 通过不断的字符转换,也cover ...

  8. conda 查看已有环境

    conda info -e # conda environments: # dlcv /Users/enzhao/suanec/libs/anaconda2/envs/dlcv py36 /Users ...

  9. activiti数据库表结构剖析

    1.结构设计 1.1.    逻辑结构设计 Activiti使用到的表都是ACT_开头的. ACT_RE_*: ’RE’表示repository(存储),RepositoryService接口所操作的 ...

  10. 算法与数据结构(七) AOV网的拓扑排序(Swift版)

    今天博客的内容依然与图有关,今天博客的主题是关于拓扑排序的.拓扑排序是基于AOV网的,关于AOV网的概念,我想引用下方这句话来介绍: AOV网:在现代化管理中,人们常用有向图来描述和分析一项工程的计划 ...