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 来使攻击面尽可能小.
来源: https://www.cnblogs.com/bob-zb/p/12469481.html