专栏首页嘿dotNetAsp.net Core IdentityServer4 入门教程(一):概念解析

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系列文章

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C# 的sql server like 的参数

    乔达摩@嘿
  • redis运维的一些知识点

    原文地址 http://hi.baidu.com/ywdblog/item/1a8c6ed42edf01866dce3fe3

    乔达摩@嘿
  • xtraReprot 动态绑定数据 数据列动态

    我要做的报表模板要求是传入一个DataTble,不管datatable的列数多少,计算列宽后显示报表

    乔达摩@嘿
  • 一步一步教你PowerBI数据分析:制作客户RFM数据分析

    客户分析就是根据客户信息数据来分析客户特征,评估客户价值,从而为客户制订相应的营销策略与资源配置。通过合理、系统的客户分析,企业可以知道不同的客户有着什么样的需...

    黄昏前黎明后
  • 史上最强 PowerBI 全动态 RFM 模型 2.2 版 完美得无懈可击

    本文蕴藏杀机,PowerBI DAX 设计的诸多精华尽在一个模型,推荐仔细阅读。上篇文章写得少得可怜,很多战友提出严重抗议,要求继续揭示这其中的奥秘,好吧,你吩...

    BI佐罗
  • JS基础测试: 下列使用不是输出的是​?

    而 createElement() 方法通过指定名称创建一个元素,需要进行加载才可以使用;

    舒克
  • Parallels Desktop里体验一下Ubuntu18.04LTS

    sean_yang
  • Go 语言并发编程系列(一)—— 多进程、多线程与协程的引入

    在原生 PHP 中并没有并发的概念,所有的操作都是串行执行的、同步阻塞的,这也是很多人诟病 PHP 性能的原因,但是不支持并发编程的好处也是显而易见的:保证了 ...

    学院君
  • Java:并发不易,先学会用

    我的脑袋没有被如来佛祖开过光,所以喜欢一件事接着一件事的想,做不到“一脑两用”。但有些大佬就不一样,比如说诸葛亮,就能够一边想着琴谱一边谈着弹着琴,还能夹带着盘...

    java架构师
  • Thread类弃用的方法

    Thread 类除了有一些有用的方法之外,还有一些危险的方法,开发者不应该使用。这些方法是 Java 线程 API 原来提供的,但很快就发现不适合开发者使用。可...

    宇宙之一粟

扫码关注云+社区

领取腾讯云代金券