.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 验证服务器。
IdentityServer 的安全模型基于两个基本原语: 客户端和作用域:
客户端
客户端是请求访问IdentityServer或身份令牌的软件。客户可以是不同类型的应用:桌面或移动的,基于浏览器的或基于服务器的应用。OpenID 连接和 OAuth2 描述 (也称为流程)不同客户端如何请求令牌模式。检查的规格为有关流程的详细信息。
默认情况下,客户端可以请求在 IdentityServer-中定义的任何作用域,但您可以限制每个客户端可以请求的作用域。
作用域
作用域是一个资源 (通常也称为 Web API) 的标识符。你可以如范围被称为"日历"为您创建日历 API — — 或"calendar.readonly"如果你想要将您的日历的 API 分割成子"地区"-在这种情况下只读访问权限。
如果允许,此作用域将会包括作为访问令牌中的索赔与客户端然后可以请求如"日历"范围-的标记。然后可以确定范围是目前验证的访问令牌时日历 API (或资源)。
根据流程和配置,请求作用域将显示给用户之前颁发的令牌。这使用户有机会来允许或拒绝访问该服务。这就被所谓的同意。
OpenID 连接的作用域有点特殊。它们定义一个可以要求用户的身份信息和用户信息终结点。每一个 OpenID 连接作用域有关联的声明,如"Profile" 作用域映射到的名字、 姓氏、 性别、 个人资料图片和更多。
IdentityServer 既支持"资源"的作用域,也支持 OpenID 连接作用域。
理解OAuth 2.0
Thinktecture IdentityServer and CodeFluent Entities
基于Token的认证和基于声明的标识
Thinktecture Identity Server 3
Identity Server 3 Standalone Implementation Part 1
Identity Server 3 Standalone Implementation Part 2
Identity Server 3 Standalone Implementation Part 3
转载于:https://www.cnblogs.com/shanyou/p/3918292.html
.NET开源OpenID和OAuth解决方案Thinktecture IdentityServer相关推荐
- 一个功能完备的.NET开源OpenID Connect/OAuth 2.0框架——IdentityServer3
今天推荐的是我一直以来都在关注的一个开源的OpenID Connect/OAuth 2.0服务框架--IdentityServer3.其支持完整的OpenID Connect/OAuth 2.0标准, ...
- IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API
IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习之保护API. 使用IdentityServer4 来实现使用客户端凭据保护ASP.N ...
- 入门教程:.NET开源OpenID Connect 和OAuth解决方案IdentityServer v3 介绍 (一)
入门教程:.NET开源OpenID Connect 和OAuth解决方案IdentityServer v3 介绍 (一) 参考文章: (1)入门教程:.NET开源OpenID Connect 和OAu ...
- OpenID 和 OAuth 的区别及第三方登录的安全隐患分析
转自:http://itindex.net/detail/48552-openid-oauth-%E6%96%B9%E7%99%BB 发表时间:2014-03-13 19:09 | 作者:天梯梦 出处 ...
- android眼动追踪开源,Eyeboard:低成本的开源眼动跟踪解决方案
腾讯科技讯(Kathy)北京时间12月13日消息,据国外媒体报道,Eyeboard是一个低成本的开源眼动跟踪解决方案,旨在帮助残疾用户更方便地进行沟通.它的设计者是高中刚毕业不久的路易斯·克鲁斯(Lu ...
- 基于RK3568商显版开源鸿蒙板卡产品解决方案
导读 搭载OpenHarmony OS 3.1 的RK3568商显版 XM-RK3568芯片集成了四核Cortex-A55 CPU.Mali-G610 GPU以及0.8Tops NPU功能,由于其接口 ...
- 开源企业即时通信解决方案
开源企业即时通信解决方案 (2007-04-25 15:33:37) 转载▼ 本文使用 Openfire 来解决企业即时通信平台,服务端选用Linux操作系统.客户端为windows平台. 第 ...
- 【开源框架】:解决方案级别的代码生成器 WebFirst
框架描述 WebFirst 是一新代的 代码生成器,用法简单,功能强大,支持多种数据库 ,具体功能如下: 一. 建库.CodeFirst方式在线建表,没用到CodeFirst的用户可以用工具轻松体验 ...
- 速修复!开源 IT 基础设施管理解决方案 Salt 被曝多个严重漏洞
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 VMware 旗下公司 SaltStack 披露了影响 Salt 版本 3002 及之前版本的多个严重漏洞,并在今天推出补丁. Sal ...
最新文章
- Vue在Element UI下使用富文本框插件quill-editor(我个人不推荐用这个复杂的富文本插件)
- P4774 [NOI2018]屠龙勇士
- 入门话题1. 在Web中控制图的显示外观?把一张500*800 的图, 显示成180*110 的小图....
- 玩JDK 12的Switch表达式
- LeetCode 391. 完美矩形(set检查顶点+面积检查)
- 如何做一个国产数据库系统(一)
- 【项目实施随笔】生产领料
- 《软件工程与实践》第三版 软工导论知识梳理总结
- 怎么用计算机算弧度制,怎么设置计算器 把度数转化为弧度
- telnet linux 退格键无法生效
- URL 编码和解码工具
- Java 给PPT添加动画效果(预设动画/自定义动画)
- SCP不会覆盖已有文件
- The requested URL was not found on this server.
- 无背景图片添加白色背景
- 假期最后一天!Go1.16 重磅发布,新版本特性一览
- 【机器学习面经】实验室祖传机器学习重难点(第一弹)
- 获取thinkph5下控制器和方法名
- 猜价格游戏(Java):给出相应的提示,并记录次数
- 智能手机游戏个人开发者和小团队如何赚钱
热门文章
- php apache 配置后不能正常显示html文件的解决方法
- git commit -m 'comment' 遇到 'npm' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- 此模块的调试信息中缺少源信息_22python中的模块
- 荣耀v20、荣耀20Pro、mate20、Nova5Pro选哪个?
- 三个火一个木组成的燊怎么读,燊是什么意思?
- 学会学习比学习什么更重要
- 很多人想不通为什么创业失败者众成功者少
- 关于计算性能的若干重要事实
- php无限次执行函数,php – 防止多次执行JavaScript函数
- azure 入门_Azure Databricks入门指南