前言
互联网时代,对信息和资源的保护越发苛刻,在所有应用中授权和认证是必不可少缺少的一部分。如果一个应用没有授权和认证那么这个应用就是不完整或者说不安全的应用。在.Net平台给我们提供了一套完整的授权认证框架,那就是IdentityServer4。它实现了OpenId Connect和OAuth2.0协议的认证授权。
授权认证
很多人喜欢把授权和认证混为一谈,但是其实授权(Authorization)和认证(Authentication)是有区别的。
Authorization(授权) - 侧重点是用户能干嘛,而不关心用户是谁。
Authentication(认证) - 侧重点是用户是谁,而不是用户能干嘛。
OpenId
OpenID 是一个以用户为中心的数字身份识别框架,是一个以URL为身份标识的分散式身份验证解决方案,它具有开放、分散、自由等特性。
OpenID相关基本术语:
用户 - 想要向某个网站表明身份的人。
标识 - 用户用以标识其身份的URL。
身份提供者 - 提供OpenID URL注册和验证服务的服务提供者。
依赖方 - 想要对最终用户的openId进行验证的网站应用。
举个例子, 我使用QQ(身份提供者)登陆京东(依赖方),我打开京东主页点击QQ登陆并不会要我输入我的QQ账号和密码,会先跳转到QQ授权登陆页面,当你扫码或者密码登陆的时候QQ会返回给京东一个OpenId,京东就会拿着这个OpenId来问QQ你这里是不是有这么一个用户。