.NET开源OpenID和OAuth解决方案Thinktecture IdentityServer (一)

现代的应用程序看起来像这样:

典型的交互操作包括:

  • 浏览器与 web 应用程序进行通信
  • Web 应用程序与 web Api (有时是在他们自己的有时代表用户) 通信
  • 基于浏览器的应用程序与 web Api 通信
  • 本机应用程序与 web Api 通信
  • 基于服务器的应用程序与 web Api 通信
  • Web Api 和 web Api 交互(有时是在他们自己有时也代表用户)

通常(前端,中间层和后端)的每一层有保护资源和执行身份验证和授权的需求 —— 典型的情况是针对同一用户存储。这就是为什么业务应用程序/端点本身不实现这些基本的安全功能的,宁愿外包给安全令牌服务。这将有了下列安全体系结构:

这对安全的需求分为两个部分。

身份验证

当应用程序需要知道有关当前用户的身份时,则需身份验证。通常这些应用程序管理代表该用户的数据,并且需要确保该用户仅可以访问他允许的数据。最常见的例子是 (经典) 的 web 应用程序 —— 但本机和基于 JS 的应用程序,亦有需要进行身份验证。

最常见的身份验证协议是 SAML2p, WS-Federation 和 OpenID Connect —- SAML2p 是最受欢迎并被广泛部署的身份验证协议。

OpenID Connect是三个中最新的一个,但是通常被认为是未来的方向,因为它在现代应用程序中最具有潜力。它从一开始就是为移动应用程序考虑的,被设计为友好的 API。

API 访问

应用程序有两种基本方式 —— 使用应用程序的标识,或委派用户的身份与API进行沟通。有时这两种方法必须相结合。

OAuth2 是允许应用程序从安全令牌服务请求访问令牌并使用它们与Api通信的一个协议。它减少了客户端应用程序,以及 Api 的复杂性,因为可以进行集中身份验证和授权。OpenID解决跨站点的认证问题,OAuth解决跨站点的授权问题。认证和授权是密不可分的。而OpenID和OAuth这两套协议出自两个不同的组织,协议上有相似和重合的之处,所以想将二者整合有些难度。好在OpenID Connect作为OpenID的下一版本,在OAuth 2.0的协议基础上进行扩展,很好的解决了认证和授权的统一,给开发者带来的便利。Thinktecture IdentityServer v3 是一个.NET 平台上开源的OpenID Connect 提供者 和 OAuth2 验证服务器。

时间: 2024-08-08 01:26:33

.NET开源OpenID和OAuth解决方案Thinktecture IdentityServer (一)的相关文章

.NET开源OpenID和OAuth解决方案Thinktecture IdentityServer

OpenID解决跨站点的认证问题,OAuth解决跨站点的授权问题.认证和授权是密不可分的.而OpenID和OAuth这两套协议出自两个不同的组织,协议上有相似和重合的之处,所以想将二者整合有些难度.好在OpenID Connect作为OpenID的下一版本,在OAuth 2.0的协议基础上进行扩展,很好的解决了认证和授权的统一,给开发者带来的便利.Thinktecture IdentityServer v3 是一个.NET 平台上开源的OpenID Connect 提供者 和 OAuth2 验证

.NET开源OpenID和OAuth解决方案Thinktecture IdentityServer (二)

你应该知道的在文档和对象模型中使用一些特定的术语: OpenID Connect Provider (OP) 授权服务器 Thinktecture IdentityServer v3 是一个.NET 平台上开源的OpenID Connect 提供者 和 OAuth2 验证服务器,OpenID Connect Provider在不同的著作中有不同的说法,你可能发现有的叫安全令牌服务提供商,授权服务器,ip-sts和更多. 简单来说他们的共同点:为客户端提供一块安全令牌的软件. IdentitySe

一个功能完备的.NET开源OpenID Connect/OAuth 2.0框架——IdentityServer3

今天推荐的是我一直以来都在关注的一个开源的OpenID Connect/OAuth 2.0服务框架--IdentityServer3.其支持完整的OpenID Connect/OAuth 2.0标准,使用它就可以轻易地搭建一个单点登录服务器. 说是一直关注,是因为1年前,要为一个平台搭建一个OAuth 2.0服务器,当时由于IdentityServer3还处于开发阶段,核心还不稳定,扩展功能也不完备.无奈只好熟读OAuth 2.0的规范,并根据www.asp.net网站上的一个简单示例自己实现了

IdentityServer3——入门教程:.NET开源OpenID Connect 和OAuth解决方案IdentityServer v3 术语

你应该知道的在文档和对象模型中使用一些特定的术语: OpenID Connect Provider (OP) 授权服务器 Thinktecture IdentityServer v3 是一个.NET 平台上开源的OpenID Connect 提供者 和 OAuth2 验证服务器,OpenID Connect Provider在不同的著作中有不同的说法,你可能发现有的叫安全令牌服务提供商,授权服务器,ip-sts和更多. 简单来说他们的共同点:为客户端提供一块安全令牌的软件. IdentitySe

IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API

IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习之保护API. 使用IdentityServer4 来实现使用客户端凭据保护ASP.NET Core Web API 访问. IdentityServer4 GitHub: https://github.com/IdentityServer/IdentityServer4 IdentityServer 框架支持以下功能: 身份验证服务所有应用程序(Web,本机,移动,服务)的集中登录

【G】开源的分布式部署解决方案(二) - 好项目是从烂项目基础上重构出来的

G.系列导航 [G]开源的分布式部署解决方案 - 预告篇 [G]开源的分布式部署解决方案(一) - 开篇 [G]开源的分布式部署解决方案(二) - 好项目是从烂项目基础上重构出来的 分析目前项目结构 眼前出现这么一坨坨的文件夹,相信很多人已经看不下去了.是的,首先就是要把它给做掉. 按照这个项目文件夹的命名意图,大概可以划分如下: 1.Business:业务代码 2.Data:数据访问 3.Helpers:辅助类(通用类库之类的) 4.Models:各种模型(包括视图模型) 5.theme:皮肤

【G】开源的分布式部署解决方案(三) - 一期规划定稿与初步剖析

G.系列导航 [G]开源的分布式部署解决方案 - 预告篇 [G]开源的分布式部署解决方案(一) - 开篇 [G]开源的分布式部署解决方案(二) - 好项目是从烂项目基础上重构出来的 [G]开源的分布式部署解决方案(三) - 一期规划定稿与初步剖析 抱歉 首先我先说声抱歉,因为上一篇结尾预告第三篇本该是“部署项目管理”,那为什么变成本篇呢? 请容我解释一下,在预告篇到现在为止,经常会有人问我这个项目到底是干什么的.或许之前写的比较粗糙.那我相信目前定稿后的功能概览图应该会给大家一个比较清晰的认识.

RHEV--基于开源的企业级虚拟化解决方案

本文主要介绍Red Hat基于开源的企业级虚拟化解决方案RHEV.RHEV虽然是开源虚拟化解决方案,但是其易用性,可维护性是很高的.文中笔者通过与vSphere的架构进行对比介绍,以便使读者更好地进行理解.声明:本文不代表任何厂商官方观点,文中的测试数据,仅用于参考使用. 从虚拟化市场谈起 谈到虚拟化,大多数人第一时间想到的是vSphere,毋庸置疑.目前为止,vSphere在虚拟化市场,无论是份额,还是影响力,都是最大的. 随着开源的兴起,开源虚拟化解决方案也受到越来越多客户的注意.根据201

【G】开源的分布式部署解决方案文档 - Web Deploy

G.系列导航 [G]开源的分布式部署解决方案 - 导航 微软官方部署方式 右键项目->发布 这个大家应该再熟悉不过,在部署前有个预览界面可以看本次更新到底更新哪些文件. 既然它可以预览部署结果,那其实它部署也不会完全覆盖,而是采取部分覆盖的方式,并提供了增.删.改的实际数量. 这都要依赖一个叫做 Web Deploy 的项目. 传送门 当然,web deploy功能绝不仅仅如此,包括打包.备份.还原.更新数据库等. 在此不多做普及,提到了它的优点,自然要支持它.所以本项目支持原始+Web Dep