目前大多数的应用程序或多或少看起来是上图所示这样的,最常见的交互场景有(浏览器与Web应用程序、Web应用程序与WebApi通讯、本地应用程序狱WebApi通讯、基于浏览器的应用程序与WebApi 通讯、基本服务器的应用程序与WebApi通讯、WebApi与WebApi通讯)。
前端、中间层、后端各个层级为了保护资源经常要针对相同的用户仓储区实现身份认证和授权,但是如果我们把这些基本的安全功能统一颁发给一个安全令牌服务,就可以不必再让这些应用和端点之间重复实现这些基础安全功能,重组应用程序以支持安全令牌服务将会引导出以下体系结构和协议,这样的设计将会把安全问题分为两个部分:(身份验证和API访问),而这些,依靠IdentityServer4(简称ID4)可以轻松做到。
IdentityServer4是什么?
ID4是ASP.NET Core 2的OpenID Connect和OAuth 2.0框架,可以做的功能有SSO(单点登陆)、Api 控制、身份认证服务等。它是一个开源的项目,最重要的是ID4可以由你自己定制来适应你的解决方案,这非常的友好。为什么要有它?在现在杂七杂八的的框架和语言来说,是配一套完美的应用是非常困难,每个模块由很难统一,所以IdentityServer4就给我们带来了糖果。它将规范兼容的OpenID Connect和OAuth 2.0端点添加到任意ASP.NET Core应用程序的中间件。通常,您构建(或重新使用)包含登录和注销页面的应用程序,IdentityServer中间件会向其添加必要的协议头,以便客户端应用程序可以与其对话 使用这些标准协议。
identityserver4的特点
- 认证服务:可以为你的应用(如网站、本地应用、移动端、服务)做集中式的登录逻辑和工作流控制。IdentityServer是完全实现了OpenID Connect协议标准。
- 单点登录登出(SSO):在各种类型的应用上实现单点登录登出。
- API访问控制:为各种各样的客户端颁发access token令牌,如服务与服务之间的通讯、网站应用、SPAS和本地应用或者移动应用。
- 联合网关:支持来自Azure Active Directory, Google, Facebook这些知名应用的身份认证,可以不必关心连接到这些应用的细节就可以保护你的应用。
- 专注于定制:最重要的是identityserver可以根据需求自行开发来适应应用程序的变化。identityserver不是一个框架、也不是一个盒装产品或一个saas系统,您可以编写代码来适应各种场景。
- 成熟的开源系统:IdentityServer拥有apache 2 授权许可,允许构建商业化的应用,也是.net基金会组织的成员之一,并未其提供法律支持。
- 免费和商业支持:如果您在构建和运行你的身份认证平台时需要帮助,我们可以通过几种方法帮助您。