Asp.net Core IdentityServer4 入门教程(一):概念解析
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 入门教程(一):概念解析的更多相关文章
- 观看杨老师(杨旭)Asp.Net Core MVC入门教程记录
观看杨老师(杨旭)Asp.Net Core MVC入门教程记录 ASP.NET Core MVC入门 Asp.Net Core启动和配置 Program类,Main方法 Startup类 依赖注入,I ...
- Asp.Net Core IdentityServer4 中的基本概念
一.前言 这篇文章可能大家会觉得很空洞,没有实际的实战东西,主要是自己整理出来的IdentityServer4 的一些概念性的东西:如果你对IdentityServer4有过一定的实战经验,可以跳过不 ...
- 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 分钟阅读时长 本文 ...
- .NET Core 快速入门教程
.NET Core 快速学习.入门系列教程.这个入门系列教程主要跟大家聊聊.NET Core的前世今生,以及Windows.Linux(CentOS.Ubuntu)基础开发环境的搭建.第一个.NET ...
- .NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)
一.前言 本篇开发环境?1.操作系统: Windows 10 X642.SDK: .NET Core 2.0 Preview 二.安装 .NET Core SDK 1.下载 .NET Core下载地址 ...
- .NET Core快速入门教程 3、我的第一个.NET Core App (CentOS篇)
一.前言 本篇开发环境?1.操作系统:CentOS7(因为ken比较偏爱CentOS7)2.SDK版本:.NET Core 2.0 Preview 你可能需要的前置知识1.了解如何通过Hyper-V安 ...
- ASP.NET Core Web API 教程 - Project Configuration
ASP.NET Core Web API 教程 本系列文章主要参考了<Ultimate ASP.NET Core 3 Web API>一书,我对原文进行了翻译,同时适当删减.修改了一部分内 ...
- 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 入门教 ...
- 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 ...
随机推荐
- 随机生成UserAgent包之fake-useragent
一.安装 pip install fake-usragent 二.使用 .导包 from fake-useragent import UserAgent .实例化 ua = UserAgent() . ...
- rhel 7安装Mysql
rhel7安装mysql服务 环境: 1)rhel 7虚拟机 2)配置完163网络yum源,并且保证网络通畅 安装过程: 1) 安装Mysql和Mysql-devel 命令:yum install m ...
- Makefile自学
MakeFile的规则 如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接. 如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序. 如果这个工程的头文件被改变了, ...
- data parameter is nil 异常处理
似乎是NSData的问题,用排除法分析了一下 NSString *urlStr = [NSString stringWithFormat:@"%@/config/AppConfig.json ...
- 上传插件webupload之调用拍照兼容问题
在项目中,移动端用到了webupload插件来实现上传功能(我觉得这个插件挺好用的,所以无论pc还是移动端我都使用了这个插件来做上传功能) 在移动端要调起拍照功能,实现上传,须得在webuploade ...
- MVC Ajax上传文件
前台:首先要导入jQuery <html><head> <meta name="viewport" content="width=devic ...
- python批量提取eml附件
从批量eml文件中提取附件,使用方式如下 代码如下 import email import os import sys #获取eml附件信息 def Get_Annex_Message(FilePat ...
- JDK、JRE
JRE: java Runtime environment (java运行环境) JVM:java virtual machine (java 虚拟机) java程序就在jvm中运行. JDK: ja ...
- SSIS - 3.变量
跟其他变成语言一样,SSIS包中的变量是用来存储临时值的,变量使得整个SSIS包使用起来更加灵活.比如,我们可以遍历一个文件夹来获取文件夹下的所有文件的名称并把名称存储到一个变量中以便进一步处理.在S ...
- NumPy库实现矩阵计算
随着机器学习技术越来越向着整个社会进行推广,因此学好线性代数和Python当中的numpy库就相当重要了.我们应该知道numpy库的使用是sklearn库和opencv库的基础.主要用于矩阵的计算.当 ...