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

  • 相关阅读:
    Haskell语言学习笔记(76)Data.Tree
    C++17尝鲜:编译期 if 语句
    C++17尝鲜:variant
    Haskell语言学习笔记(75)Conduit
    C++17尝鲜:string_view
    Haskell语言学习笔记(74)GADTs
    Haskell语言学习笔记(73)Existentials
    Haskell语言学习笔记(72)Free Monad
    sum of powers
    「2017 山东一轮集训 Day7」逆序对
  • 原文地址:https://www.cnblogs.com/xiaxiaolu/p/9721526.html
Copyright © 2020-2023  润新知