ASP.NET Core身份认证服务框架IdentityServer4 介绍
IdentityServer4是ASP.NET Core 2的OpenID Connect和OAuth 2.0框架。它可以在您的应用程序中提供以下功能:
它使你的应用程序具有如下特点:
认证即服务
适用于所有应用程序(web, native, mobile, services)的集中登录逻辑和工作流程。IdentityServer是OpenID Connect的官方认证实现。
单点登录/注销
多个类型的应用程序在一个点进行登录和注销操作。
API 访问控制
为各种类型的客户端颁发API的访问令牌,例如 服务器到服务器、Web应用程序,SPA、本地应用和移动应用程序。
联合网关
支持Azure Active Directory,Google,Facebook等外部身份提供商。这可以保护您的应用程序免受如何连接到这些外部提供商的详细信息的影响。
专注于定制
最重要的部分 - IdentityServer的许多方面都可以根据您的需求进行定制。由于IdentityServer是一个框架而不是现成的产品或SaaS,因此您可以编写代码以使系统适应您的方案。
成熟的开源
IdentityServer使用的Apache 2开源协议,允许在其上构建商业产品。它也是.NET Foundation的一部分,它提供治理和法律支持。
免费和商业支持
如果您需要帮助构建或运行您的身份平台,请告知IdentityServer官方。 他们可以通过多种方式为您提供帮助。
一.整体介绍
现代应用程序看起来更像这个:

最常见的相互作用:
- 浏览器与Web应用程序的通信 Browser -> Web App
- Web应用程序与Web API通信
- 基于浏览器的应用程序与Web API
- 本机应用程序与Web API进行沟通
- 基于服务器的应用程序与Web API
- Web API与Web API通信
通常,每个层(前端、中间层和后端)必须保护资源并实现身份验证或授权——通常针对同一个用户存储区。
将这些基本安全功能外包给安全令牌服务可以防止在这些应用程序和端点上复制该功能。
应用支持安全令牌服务将引起下面的体系结构和协议:

这样的设计将安全问题分为两部分:
二.认证(Authentication)
认证可以让一个应用程序知道当前用户的身份。 通常,这些应用程序代表该用户管理数据,并且需要确保该用户只能访问允许他访问的数据。最常见的示例是Web应用程序,但基于本地和基于js的应用程序也需要进行身份验证。
最常用的认证协议saml2p、WS-Federation和OpenID,saml2p协议是最流行和实际应用最多的。
OpenID Connect对于现在应用来说是被认为是未来最有潜力的,这是专为移动应用场景设计的,一开始就被设计成对移动应用场景友好。
三.API访问
应用程序有两种基本方式与API进行通信,一种是使用应用程序标识,另一种是委托用户的身份。有时这两种方法都需要结合。
OAuth2协议,它允许应用程序从一个安全令牌服务要求访问令牌,使用这个访问令牌来访问API。这个机制降低了客户机应用程序和API的复杂性,因为身份验证和授权可以是集中式的。
四.OpenID Connect 和 OAuth 2.0 结合
OpenID Connect 和 OAuth 2.0非常相似,事实上OpenID Connect 是在OAuth 2.0之上的一个扩展。两个基本的安全问题,认证和API访问,被组合成单个协议,通常只需一次往返安全令牌服务。
我们认为OpenID Connect和OAuth 2.0的组合是可预见在未来是保护现代应用程序的最佳方法。IdentityServer4是这两种协议的实现,并且被高度优化以解决当今移动应用、本地应用和web应用的典型安全问题
五.IdentityServer4可以帮助你做什么
IdentityServer是将规范兼容的OpenID Connect和OAuth 2.0端点添加到任意ASP.NET Core应用程序的中间件。通常,您构建(或重新使用)包含登录和注销页面的应用程序,IdentityServer中间件会向其添加必要的协议头,以便客户端应用程序可以与其对话 使用这些标准协议。

我们通常建议通过仅包含认证相关的UI来使攻击面尽可能小。
ASP.NET Core身份认证服务框架IdentityServer4 介绍的更多相关文章
- ASP.NET Core身份认证服务框架IdentityServer4(2)-整体介绍
一.整体情况 现代应用程序看起来更像这个: 最常见的相互作用: 浏览器与Web应用程序的通信 Browser -> Web App Web应用程序与Web API通信 基于浏览器的应用程序与We ...
- ASP.NET Core的身份认证框架IdentityServer4(5)- 包和构建
包和构建 IdentityServer有许多nuget包 IdentityServer4 nuget | github 包含IdentityServer核心对象模型,服务和中间件. 仅支持内存配置和用 ...
- .Net Core身份认证:IdentityServer4实现OAuth 2.0 客户端模式 - 简书
原文:.Net Core身份认证:IdentityServer4实现OAuth 2.0 客户端模式 - 简书 一.客户端模式介绍 客户端模式(Client Credentials Grant)是指客户 ...
- 深入解读 ASP.NET Core 身份认证过程
长话短说:上文我们讲了 ASP.NET Core 基于声明的访问控制到底是什么鬼? 今天我们乘胜追击:聊一聊ASP.NET Core 中的身份验证. 身份验证是确定用户身份的过程. 授权是确定用户是否 ...
- ASP.NET Core身份识别
Introduction to Identity 66 of 93 people found this helpful By Pranav Rastogi, Rick Anderson, Tom Dy ...
- asp.net core的DI框架思考以及服务实例的获取方式总结
转载请注明出处: https://home.cnblogs.com/u/zhiyong-ITNote/ 整个asp.net core管道从WebHostBuilder到WebHost到后续请求的类中, ...
- ASP.NET Core 中的 Razor 页面介绍
标题:ASP.NET Core 中的 Razor 页面介绍 地址:https://docs.microsoft.com/zh-cn/aspnet/core/razor-pages/index?view ...
- ASP.NET Core 使用 EF 框架查询数据 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 使用 EF 框架查询数据 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 使用 EF 框架查询数据 上一章节我们学习了如何设置 ...
- ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 EF 框架服务 上一章节中我们了解了 Entity ...
随机推荐
- python实现使用代码进行代理配置
#!/usr/local/bin/python3.7 import urllib.request import urllib.parse # 创建handler handler = urllib.re ...
- 堆优DIJ模板
Dij:贪心思想的单源最短路,时间复杂度O(n^2). Dij算法流程: d数组记录源点s到每个点的距离,若无边则设为inf,标记源点: 选出d数组中未标记的最小值,该节点记为k,并标记k为已求出最短 ...
- sqlite基础API
/* 打开/创建数据库文件 * 如果数据库文件不存在就创建数据库文件. * 数据库操作句柄保存在第二个参数中. * 第一个参数:文件路径及其文件名 * 第二个参数:sqlite3操作句柄 * 返回值: ...
- .vimrc文件
1 set number 2 set shiftwidth=4 3 set softtabstop=4 4 set tabstop=4 5 set expandtab 6 "set hlse ...
- Method POST, Status (canceled) error message
I have the following code which is giving me a Method POST, Status (canceled) error message: $(docum ...
- 一、美国国家经济研究局NBER教育经济研究项目工作论文合集
一.美国国家经济研究局NBER教育经济研究项目工作论文合集 (一)项目地址: American National Bureau of Economic Research - Economics of ...
- [LC] 328. Odd Even Linked List
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...
- auto uninstaller 密钥 破解 修复卸载工具
auto uninstaller 修复卸载工具 密钥注册机破解分享 只可以用于8.8.38,亲测可用 zhAAxzm5Wmmhzomyxyhoahra6AXrzy6X## hzWh6maaa5hmah ...
- piranha(注意iptables和selinux的问题)
piranha是红帽官方提供的一套工具,安装和配置都非常简单,可以快速部署. piranha方案原理结构描述: piranha方案是基于lvs基础上设计的一套负载均衡高可用解决方案 LVS运行在一对有 ...
- Nginx笔记总结五:Nginx配置虚拟主机
upstream proxy1 { server ; } upstream proxy2 { server ; } server { listen ; server_name www1.dlab.co ...