Asp.Net Core IdentityServer4 中的基本概念

1、前言

这篇文章可能你们会以为很空洞,没有实际的实战东西,主要是本身整理出来的IdentityServer4 的一些概念性的东西;若是你对IdentityServer4有过必定的实战经验,能够跳过不须要阅读该文章,后续我会以一个Demo 来给你们带来IdentityServer4深刻的实战分享 。html

2、概述

IdentityServer4是一个用于ASP.Net Core的OpenID ConnectOAuth 2.0框架web

2.1 什么是OAuth 2.0?

OAuth 2.0是受权的行业标准协议。OAuth 2.0侧重于客户端开发人员的简单性,同时为web应用程序、桌面应用程序、移动应用等提供特定的受权流。该规范及其扩展正在IETF OAuth工做组内开发。api

简单说,OAuth 就是一种受权机制。数据的全部者告诉系统,赞成受权第三方应用进入系统,获取这些数据。系统从而产生一个短时间的进入令牌(token),用来代替密码,供第三方应用使用。服务器

OAuth 2.0 规定了四种得到令牌的流程。你能够选择最适合本身的那一种,向第三方应用颁发令牌。无论哪种受权方式,第三方应用申请令牌以前,都必须先到系统备案,说明本身的身份,而后会拿到两个身份识别码:客户端 ID(client ID)和客户端密钥(client secret)。这是为了防止令牌被滥用,没有备案过的第三方应用,是不会拿到令牌的。下面就是这四种受权方式。框架

  • authorization code(受权码模式)
  • implicit(简化模式)
  • resource owner password credentials(密码模式)
  • client credentials(客户端模式)

OAuth 总体流程图:
ide

具体的OAuth 2.0 四大受权方式请参考 阮一峰 的博客 OAuth 2.0 的四种方式网站

2.2 什么是OpenId Connect

OpenID Connect的 的简称是OIDC,OIDC=(Identity, Authentication) + OAuth 2.0。它在OAuth2上构建了一个身份层,是一个基于OAuth2协议的身份认证标准协议。咱们都知道OAuth2是一个受权协议,它没法提供完善的身份认证功能,OIDC使用OAuth2的受权服务器来为第三方客户端提供用户的身份认证,并把对应的身份认证信息传递给客户端,且能够适用于各类类型的客户端(好比服务端应用,移动APP,JS应用),且彻底兼容OAuth2,也就是说你搭建了一个OIDC的服务后,也能够看成一个OAuth2的服务来用。应用场景如图:
3d

2.3 IdentityServer4功能特性

IdentityServer4集成到你的应用具备以下功能特色:code

  • Authentication as a Service:能够为你的应用(如网站、本地应用、移动端、服务)作集中式的登陆逻辑和工做流控制。IdentityServer是彻底实现了OpenID Connect协议标准
  • Single Sign-on / Sign-out:在多个应用程序类型上进行单点登陆(和单点退出)。
  • Access Control for APIs:为不一样类型的客户端,例如服务器到服务器、web应用程序、SPAs和本地/移动应用程序,发出api的访问令牌。
  • Federation Gateway:支持来自Azure Active Directory, Google, Facebook这些知名应用的身份认证,能够没必要关心链接到这些应用的细节就能够保护你的应用。
  • Focus on Customization:最重要的是identityserver能够根据需求自行开发来适应应用程序的变化。identityserver不是一个框架、也不是一个盒装产品或一个saas系统,您能够编写代码来适应各类场景。

2.4 IdentityServer4 能够帮助咱们作什么?

IdentityServer是将规范兼容的OpenID Connect和OAuth 2.0端点添加到任意ASP.NET Core应用程序的中间件。一般,您构建(或从新使用)包含登陆和注销页面的应用程序,IdentityServer中间件会向其添加必要的协议头,以便客户端应用程序能够与其对话 使用这些标准协议。
server

以上若是有错误的地方,请你们积极纠正,谢谢你们的支持!!

相关文章
相关标签/搜索