Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用OAuth2/OpenId执行复杂规则系统?

如何使用OAuth2/OpenId执行复杂规则系统?
EN

Stack Overflow用户
提问于 2016-02-17 12:40:57
回答 2查看 133关注 0票数 1

我正在考虑将REST服务构建为后端,并研究OAuth2/OpenId来处理安全性,但我不知道如何将复杂的结构与规则或作用域结构相匹配。

目前还没有构建,所以可能我的推理是错误的,域模型可以修改以满足我的需要,或者OAuth2/OpenId不适合我。

我有一个域模型如下:

  • Country
  • 一个区域,它与一个国家相连。一个国家拥有多个区域,但一个区域只属于一个国家。
  • 一个产品,它链接到一个国家,也可以是一个区域。
  • 可以在产品上执行的操作。(不是直接链接到产品,而是与CRUD相关的东西。)
  • Profile,它链接到一个国家(可选为一个区域),并保存操作列表。
  • 链接到一个或多个配置文件的用户

用户可以请求一个产品列表。在这些产品上,如果产品的国家/区域与配置文件国家/地区相匹配,他可以根据配置文件允许的内容执行操作。

想象一下:

代码语言:javascript
运行
AI代码解释
复制
Product | Country | Region
--------------------------
      A |       X |      Z
      B |       X |      Y

Profile | Country | Region | Action
-----------------------------------
      I |       X |      Z | UPDATE
      I |       X |      Z | DELETE
      J |       X |      Y | DELETE

用户被链接到配置文件I和J。

  • 如果用户选择Product,则允许他更新产品,因为国家X和区域Z匹配。
  • 如果用户选择产品B,则不允许他更新产品,因为即使国家X匹配,区域Y也不匹配配置文件I。

这是我的问题。我不太明白如何使用OAuth2/OpenId提供的基本规则和作用域来实现这个复杂的规则系统。大多数示例使用一个非常简单的概念,基本CRUD允许与否,但我需要另一个层次。

简单地使用系统对用户进行身份验证,但每次仍然必须执行深入的操作验证调用似乎是开销。然后,我可以跳过OAuth2/OpenId并执行我自己的验证。

或者有其他方法可以对我的需求进行建模以适应OAuth2/OpenId的概念?

EN

回答 2

Stack Overflow用户

发布于 2016-02-18 10:49:08

OpenID连接是更通用的令牌请求协议OAuth 2.0之上的身份验证协议。

它们与您如何实现授权/业务规则无关。

此外,OIDC/OAuth的结果是身份数据、范围以及可能是粗粒度的身份数据。ClaimsPrincipal而不是,是任意授权数据的倾倒地。

授权是根据传入的身份进行的,没有专门的“技术”或“协议”用于授权。一种流行的方法是“基于资源的授权”。这已经内置到了新的asp.net核心中--但如果不是这样的话,自己实现并不难。

https://docs.asp.net/en/latest/security/authorization/resourcebased.html

票数 1
EN

Stack Overflow用户

发布于 2016-02-18 05:14:45

我会将所有这些信息(国家、地区、配置文件、操作)作为ClaimsPrincipal中的clams,然后使用当前用户声明中的信息来检测是否具有用户权限或不执行操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35467282

复制
相关文章
小程序云开发五:从云数据库读取数据
1:接着昨天的《小程序云开发四:向云数据库插入一条数据》,今天要写的是读取那条插入的数据。
王小婷
2018/12/28
5.4K0
【硬货】Oracle数据库出现问题时,这十个脚本帮你快速定位原因
墨墨导读:本文讲述各种场景下的通用处理思路,分享用到的一些脚本,帮助大家快速定位问题并解决,减少业务的中断事件。
数据和云
2019/07/17
1.3K0
【硬货】Oracle数据库出现问题时,这十个脚本帮你快速定位原因
【说站】PDF“文档无法保存,读取本文档时出现问题(109)解决方案
今天去掉了一个pdf文件的水印,但却发现去除水印以后pdf文件另存为pdf文档时,提示“文档无法保存,读取本文档时出现问题109”的错误(如上图)。品自行想了想,有两种方法可以解决这个问题。
很酷的站长
2022/11/24
11K0
【说站】PDF“文档无法保存,读取本文档时出现问题(109)解决方案
python读取数据库
import pandas as pd import pymysql #连接数据库 dbconn=pymysql.connect( host="0.0.0.0",#ip database="stockdb", user="cueb",#用户名 password="cueb",#密码 port=3306,#端口号 charset='utf8' ) s = "select * from user"; data = pd.read_sql(s, dbconn)
week
2018/08/24
1.8K0
Shiro 进阶之从数据库读取过滤器链
我们之前使用过滤器链都是在 XML 中手动添加和维护的,本章我们来介绍下如何从数据库读取这些过滤器配置,这样做的好处是便于维护,且可以通过程序来添加过滤器配置,因为我们只需要添加一条记录到数据库即可。
一份执着✘
2018/10/08
2.3K1
漫谈可视化Prefuse(一)---从SQL Server数据库读取数据
本文通过介绍如何利用Prefuse库连接数据库,介绍了可视化工具Prefuse在Java环境中的实现方式,并提供了具体的代码示例。通过这些代码,用户可以快速掌握如何使用Prefuse库进行图形可视化。
JackieZheng
2018/01/08
1.4K0
漫谈可视化Prefuse(一)---从SQL Server数据库读取数据
activiti 整合瀚高数据库流程发布出现问题
用户9131103
2023/07/17
2590
activiti 整合瀚高数据库流程发布出现问题
从天擎读取EC数据
最近我们在试用天擎,测试了从天擎读取EC数据,请求数据的程序来自天擎网站(见下图),数据传输的速度和稳定度都相当不错,尤其是可以按需求请求数据,避免了“一个馒头搭块糕”式的打包式下载数据对于时间和存储空间的极大浪费。请求江苏地区要素场时,数据基本秒出,感觉畅爽无比
郭好奇同学
2021/03/25
2.1K0
从天擎读取EC数据
python从txt文件读取数据
  (作为一个python初学者,记录一点学习期间的笔记,方便日后查阅,若有错误或者更加便捷的方法,望指出!)
py3study
2020/01/19
4.1K0
python从txt文件读取数据
易语言读取数据库
我们先用SQLiteStudio建表以及表中字段(SQLiteStudio工具可百度下载); 写程序之前对支持库进行配置,勾选Sqlite3数据库支持库而不是Sqlite数据库支持库,因为选用后者会出现一些打不开表之类的问题
用户2590762
2021/08/11
8.1K0
JMeter 参数化之利用JDBCConnectionConfiguration从数据库读取数据并关联变量
http://dev.mysql.com/downloads/connector/j/
授客
2019/09/11
8940
JMeter 参数化之利用JDBCConnectionConfiguration从数据库读取数据并关联变量
Python可视化工具plotly从数据库读取数据作图示例
本人在学习使用Python数据可视化工具plotly的过程中,实际的需求是将数据库中的数据展示出来,经过尝试终于完成了第一步,把数据库某列数据取出来,然后再在本地生成html文件。下面分享一下代码,供大家参考。
FunTester
2019/09/17
1.4K0
Python可视化工具plotly从数据库读取数据作图示例
matlab读取mnist数据集(c语言从文件中读取数据)
mnist database(手写字符识别) 的数据集下载地:http://yann.lecun.com/exdb/mnist/。
全栈程序员站长
2022/08/01
5.2K0
matlab读取mnist数据集(c语言从文件中读取数据)
在各种场景下Oracle数据库出现问题时,这十个脚本帮你快速定位原因
.原文:https://www.enmotech.com/web/detail/1/763/1.html
数据和云01
2019/08/01
9750
java读取数据库_jsp怎么显示数据库数据
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
2.9K0
java读取数据库_jsp怎么显示数据库数据
Python Numpy 从文件中读取数据
测试文件内容(test1.txt) hello,123,nihao 8,9,10 io,he,no 测试代码 import numpy # dtype:默认读取数据类型,delimiter:分隔符 world_alcohol = numpy.genfromtxt("test1.txt", dtype=str, delimiter=",") # 数据结构 print(type(world_alcohol)) # 数据内容 print(world_alcohol) # 帮助文档 print(help(nump
山海散人
2021/03/03
4.5K0
读取本地数据库文件[通俗易懂]
有时候我们能够将类似省份城市的数据库文件存放在assets/目录名/××.sql下。当程序在创建数据库时读取该数据库文件,并运行其内的sql语句
全栈程序员站长
2022/07/08
9.8K0
读取本地数据库文件[通俗易懂]
数据库读取速度与文件IO读取速度比较
本文来源于之前做的一个小程序科技爱好者周刊在文章数据存储上的技术选型思考。 当时想着后期把文章 markdown 文件内容迁移到云数据库通过云函数查询出来显示。后来想想为什么非要这么做呢,数据库存取就一定好吗??
薛定喵君
2020/10/23
3.1K0
Android数据读取之Sqlite数据库操作
咱们书接上文,继续来说说Android数据读取,这回,我们要讲的是Sqlite数据库的相关操作。以一个实例开始吧:
牛老师讲GIS
2018/10/23
1.5K0
Android数据读取之Sqlite数据库操作
点击加载更多

相似问题

Django创建ManyToMany关系

10

Django |通过实例查询ManyToMany关系

124

如何删除Django中ManyToMany字段的实例

11

同时创建多个实例Django Rest框架

21

Django表单: ManyToMany内联创建

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档