开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

请问API怎么实现不通单位获取数据的权限控制啊

请问API怎么实现不通单位获取数据的权限控制啊

展开
收起
游客6vdkhpqtie2h2 2022-09-21 11:15:07 3483 0
10 条回答
写回答
取消 提交回答
  • 资深技术专家,全网粉丝10W+。主攻技术开发,擅长分享、写文、测评。

    权限控制是一个古老的话题,你可能会想有没有什么权限设计方案可以满足所有的应用场景呢?

    答案是没有,就像几乎所有问题一样,没有一种系统可以解决所有情况的,我们需要根据不同的场景和需求来设计不同的系统。

    权限控制主要设计用户、角色、组、对象、操作、权限等对象。下面我先对这些对象做些解释,让大家先有个概念。然后我们再说说业界有哪些比较优秀的权限控制设计方案。

    2022-11-29 22:51:06
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    这个方案的实现就是权限控制,以单体服务为例:

    wljslmz-权限

    1、首先我们需要用户管理系统,每个用户属于不同的单位,将这些用户与单位对应关系的数据加载到redis缓存,保证数据的访问速度。

    2、用户在访问系统的时候,接口先去拿到用户的信息,然后去redis缓存中找自己对应的单位。

    3、拿到单位信息后,去数据库中捞一下该单位的数据,这样就能保证了数据根据单位去隔离。

    这种方案最核心的就是api要加用户权限的控制,那么每个数据也需要有用户权限的介入,这种方法用起来最为简单,不过还是建议在项目初期就要考虑全面,不然中间切入是非常麻烦的事情!

    2022-11-24 12:17:27
    赞同 展开评论 打赏
  • 码中自由一片天地。。。

    1.设置一个拦截器,根据拦截到的不同的单位,去走不同的逻辑,返回不同的数据 2.在数据上存储对应的单位,查询时就进行过滤。 3.构建鉴权系统,通过签名来进行权限控制 image.png

    2022-11-24 11:45:28
    赞同 展开评论 打赏
  • coder at work

    使用不同账号绑定不同角色, 不同角色配置不同的数据权限

    2022-11-24 11:09:05
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    首先,安全起见,最好使用HTTPS通信,以防止中间人截获。其次,在HTTPS的前提下,对于API访问权限控制可以在,请求头里面添加一个字段传输Token(或者直接放在URL里面也行),该Token由服务器分配,服务器通过Token对用户权限进行权限控制。Token不合法,就不返回数据即可

    2022-11-23 15:51:15
    赞同 展开评论 打赏
  • 1.通过接口用户的用户名密码,调用鉴权token接口获取接口用户的token,该token2个小时内有效; 2.把获取的token作为参数,调用接口的时候,会根据token去鉴权; 3.鉴权通过,接口会根据接口定义的编码,检验是否有访问权限 有则可以继续访问,无则提示访问受限。

    2022-11-07 08:16:03
    赞同 1 展开评论 打赏
  • 当不合法的请求接口的时候不返回数据 加签名验证就行。提供密钥进行MD5。 首先,安全起见,最好使用HTTPS通信,以防止中间人截获。 其次,在HTTPS的前提下,对于API访问权限控制可以在,请求头里面添加一个字段传输Token(或者直接放在URL里面也行),该Token由服务器分配,服务器通过Token对用户权限进行权限控制。 Token不合法,就不返回数据即可。 如果你的合法是未授权调用 那直接用类似appkey就可以了 如果非法使用别人的授权 只能绑定ip域名 没看各种app的key都被别人拿来用了么 比如weico的 用公钥,MD5出来的加密串,再自己手动添加若干个字符串进去,看你怎么破?根本不算MD5,这个加密串,你一份,调用者一份,每次请求API的时候,构造方法里面先去验证这个token是否正确,如果不正确,说明别人在试探你的API,你直接发送404,告诉他找不到,故意去误导他,再来狠点,每个月去更换一次token,看你如何破? image.png

    2022-11-05 13:58:02
    赞同 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    某一角色用户只能看到所拥有菜单权限下的部分列字段数据

    实现不同人看不同数据,不同人对同一个页面操作不同字段。系统按钮权限和表单权限原来是正控制,只有授权的人才有权限,未授权看不到对应按钮;

    数据权限的配置 为解决这一类疑难问题,提供三种方式来实现数据权限。

    1.提供代码层配置@DataAuth注解达到脱离数据库的全固定配置方式 ● 如果是纯注解配置,那么是不通过数据库的,相当于是离线配置。 ● 我们只需要关注column、type、value这三个字段。 ● column:需要过滤的数据库字段 ● type:数据权限过滤的类型 ● value:当数据权限类型为自定义的时候,配置的sql条件语句 1)、所在部门可见 配置DataAuth注解,因为默认字段就是create_dept,所以无需配置column 2)、所在机构及其子集可见 配置DataAuth注解,因为默认字段就是create_dept,所以无需配置column 3)、个人可见 配置DataAuth注解,由于创建人字段为create_user,不是默认,所以需要指定 4)、自定义配置 ● 配置DataAuth注解,配置自定义sql ● 在这个配置的sql里我使用里占位符${userId},没错,这么写在底层就可以直接获取到当前登录用户的deptId字段,除此之外我们还可以用更多的参数,比如${deptId}、${roleId}、${tenantId}、${account}、${userName}等等 ● 这些参数可以参考BladeUser类,他的所有字段我们都是可以根据占位符来获得的。

    2.提供代码层配置@DataAuth注解配置数据权限资源编码来达到依赖数据库的半自动配置方式 这个就需要关联数据库,根据数据权限code码来设置数据权限定义规则。

    3.Web可视化全自动动态配置 ● 数据权限动态配置需要依赖数据库,所以我们需要前往web端进行配置 ● 配置逻辑与纯注解配置一致,其实就是把注解配置拓展,并做成了web可视化

    接口权限配置 1)、功能介绍 接口权限:顾名思义,配置不通角色调用接口的权限。有些敏感接口,是只能有固定的一些角色才能调用,普通角色是不能调用的。这种情况需要有一个明确的系统来控制对应的访问权限 接口权限系统,可以控制某些接口只能由固定的角色调用,可以动态控制不同的角色对不同接口的访问权限 通过接口配置实现,对接口的访问权限控制和数据权限控制,

    接口是REST接口,接口权限认证机制使用Json web token (JWT)

    接口权限调用流程: (1)通过接口用户的用户名密码,调用鉴权token接口获取接口用户的token 该token,2个小时内有效 (2)把获取的token作为参数,调用接口的时候,会根据token去鉴权 (3)鉴权通过,接口会根据接口定义的编码,检验是否有访问权限 有则可以继续访问,无则提示访问受限 (4)有访问权限,则获取接口的数据权限规则,根据授权的数据权限规则返回需要的数据 实现一个新的接口,无需关注token的鉴权机制,

    接口权限判断方式 使用AOP实现接口拦截:@PreAuth

    鉴权配置注解名称为 @PreAuth ,在需要进行鉴权配置的方法加上 @PreAuth 注解,并在注解内写 入相关的鉴权方法。

    2022-10-27 13:50:10
    赞同 1 展开评论 打赏
  • 从事java行业9年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    API项目通常来说就是接口项目,比如前后端分离的项目,前端页面+后端业务,数据通过API项目提供的接口获取,那么一般来说API项目是通过加密参数加密key来实现数据验证从而返回数据,而不是像通常后台管理系统一样通过登录系统来校验权限。

    API想要实现不同单位获取不同的数据权限控制,大体上可以这么设计,API项目通过提供接口参数,比如单位id、数据范围(也就是想要获取的数据类型),前端项目给予API项目对应的参数,API项目通过参数作为条件返回对应数据权限内的数据,类似于实现不同单位不同权限的结果。

    2022-10-26 14:59:18
    赞同 展开评论 打赏
  • 亚马逊云科技合作伙伴解决方案架构师,亚马逊云科技User Group Leader,多年云计算经验,csdn/阿里云等平台优质作者,亚马逊云科技社区建设者,亚马逊云科技培训与认证云领袖合作作者,专注于云计算、云原生领域。

    授予API阿里云RAM权限,该权限包括对不同单位数据的读取权限

    2022-10-24 13:01:00
    赞同 展开评论 打赏
滑动查看更多

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关电子书

更多
Spring Boot2.0实战Redis分布式缓存 立即下载
CUDA MATH API 立即下载
API PLAYBOOK 立即下载