这篇文章可能你们会以为很空洞,没有实际的实战东西,主要是本身整理出来的IdentityServer4 的一些概念性的东西;若是你对IdentityServer4
有过必定的实战经验,能够跳过不须要阅读该文章,后续我会以一个Demo 来给你们带来IdentityServer4深刻的实战分享 。html
IdentityServer4
是一个用于ASP.Net Core的OpenID Connect
和OAuth 2.0
框架web
OAuth 2.0
是受权的行业标准协议。OAuth 2.0侧重于客户端开发人员的简单性,同时为web应用程序、桌面应用程序、移动应用等提供特定的受权流。该规范及其扩展正在IETF OAuth工做组内开发。api
简单说,OAuth 就是一种受权机制。数据的全部者告诉系统,赞成受权第三方应用进入系统,获取这些数据。系统从而产生一个短时间的进入令牌(token),用来代替密码,供第三方应用使用。服务器
OAuth 2.0 规定了四种得到令牌的流程。你能够选择最适合本身的那一种,向第三方应用颁发令牌。无论哪种受权方式,第三方应用申请令牌以前,都必须先到系统备案,说明本身的身份,而后会拿到两个身份识别码:客户端 ID(client ID)和客户端密钥(client secret)。这是为了防止令牌被滥用,没有备案过的第三方应用,是不会拿到令牌的。下面就是这四种受权方式。框架
OAuth 总体流程图:
ide
具体的OAuth 2.0 四大受权方式请参考 阮一峰 的博客 OAuth 2.0 的四种方式网站
OpenID Connect的
的简称是OIDC
,OIDC=(Identity, Authentication) + OAuth 2.0。它在OAuth2上构建了一个身份层,是一个基于OAuth2协议的身份认证标准协议。咱们都知道OAuth2是一个受权协议,它没法提供完善的身份认证功能,OIDC使用OAuth2的受权服务器来为第三方客户端提供用户的身份认证,并把对应的身份认证信息传递给客户端,且能够适用于各类类型的客户端(好比服务端应用,移动APP,JS应用),且彻底兼容OAuth2,也就是说你搭建了一个OIDC的服务后,也能够看成一个OAuth2的服务来用。应用场景如图:
3d
IdentityServer4
集成到你的应用具备以下功能特色:code
IdentityServer是将规范兼容的OpenID Connect和OAuth 2.0端点添加到任意ASP.NET Core应用程序的中间件。一般,您构建(或从新使用)包含登陆和注销页面的应用程序,IdentityServer中间件会向其添加必要的协议头,以便客户端应用程序能够与其对话 使用这些标准协议。
server
以上若是有错误的地方,请你们积极纠正,谢谢你们的支持!!