访问控制与鉴权设计

一.访问控制
为了保证用户不会通过系统发起过多访问导致影响正常用户的体验,每一个API接口都有一定的访问频率限制。
访问频率主要基于用户来源IP和操作者用户名进行限制。当前的频率限制参数为:1000次/5分钟/接口/用户名(appkey)

二.调用参数

三.签名sign原理
调用API时需要对请求参数进行签名验证,服务器也会对该请求参数进行验证是否合法的。方法如下:
(1)根据参数名称(除签名和图片)将所有请求参数按照字母先后顺序排序:key + value .... key + value
例如:将foo=1,bar=2,baz=3 排序为bar=2,baz=3,foo=1,参数名和参数值链接后,得到拼装字符串bar2baz3foo1

(2)系统同时支持MD5加密方式
md5:将secret 拼接到参数字符串头加密后,再转化成大写,格式是:byte2hex(md5(secretkey1value1key2value2.))

操作步骤如下:
第一步:把参数按Key的字母顺序排序
第二步:把所有参数名和参数值串在一起
第三步:使用MD5加密
第四步:把二进制转化为大写的十六进制

四、案例
1. 设定一个密钥,比如key=‘2323dsfadfewrasa3434‘,该key只有发送方(如:APP、IOS、ANDROID)和接收方(如:服务器端)知道。
2. 发送方调用时,通过签名原理生成一个access_key。
3. 接收方调用时,同样通过签名原理生成一个access_key2。
4. 比较access_key 和access_key2 内容是否一样。一样则允许操作,不一样,报错返回或者加入黑名单

时间: 2024-07-29 17:17:56

访问控制与鉴权设计的相关文章

开放平台鉴权以及OAuth2.0介绍

OAuth 2.0 协议 OAuth是一个开发标准,允许用户授权第三方网站或应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的内容. OAuth 2.0不兼容1.0. 协议的参与者 RO (resource owner): 资源所有者,对资源具有授权能力的人. RS (resource server): 资源服务器,它存储资源,并处理对资源的访问请求. Client: 第三方应用,它获得RO的授权后便可以去访问RO的资源. AS (authoriz

.NET 统一用户管理 -- 统一鉴权

统一鉴权 目的 为什么要统一鉴权了,每一个业务系统几乎都离不开,用户,角色,权限 这个 3个基础功能,为了避免各个系统各自去开发一套权限管理等基础功能,也同时轻松管理每个用户的全部权限. 怎么做         1. 在同一鉴权模块新建业务系统(获得系统ID) 2.  初始化业务系统的角色,菜单,以及权限等相关基础数据 3.  业务系统通过Get方式 (传入系统ID,英文名(唯一))获取用户在当前系统中的权限和功能列             表                数据库设计    

公共平台服务治理与鉴权

问题 解决问题 鉴权 注册 管理 总结 聊一聊最近了解的公司服务治理平台,主要是思想,理念,而不是一种技术或框架.整个平台设计,融入了OAUTH2认证,融入了微服务思想,帮助公司各系统在复杂的IT架构下,实现一种便捷统一的调用方案,同时完成调用的管理(监控.注册.鉴权等). 问题 一种思想或理念的出现,是否有价值,我认为主要在于它实际解决了哪些问题.基于这个价值观,我们先看看,当一个公司有成百上千个系统时,会有哪些问题? pi如: 接口访问有没有鉴权?如何鉴权?这个话题很大,归根揭底就是,要让提

基于token的鉴权机制 — JWT介绍

前言:在实际开发项目中,由于Http是一种无状态的协议,我们想要记录用户的登录状态,或者为用户创建身份认证的凭证,可以使用Session认证机制或者JWT认证机制. 什么是JWT? Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景.JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可

Golang Gin/Ace/Iris/Echo RBAC 鉴权库

GRBAC 项目地址: https://github.com/storyicon/grbac Grbac是一个快速,优雅和简洁的RBAC框架.它支持增强的通配符并使用Radix树匹配HTTP请求.令人惊奇的是,您可以在任何现有的数据库和数据结构中轻松使用它. grbac的作用是确保指定的资源只能由指定的角色访问.请注意,grbac不负责存储鉴权规则和分辨"当前请求发起者具有哪些角色",更不负责角色的创建.分配等.这意味着您应该首先配置规则信息,并提供每个请求的发起者具有的角色. grb

RTSP安防网络摄像头/海康大华硬盘录像机网页无插件直播流媒体服务器EasyNVR之鉴权接口的调用配置说明

进入移动互联网时代以来,企业微信公众号已成为除官网以外非常重要的宣传渠道,当3.2亿直播用户与9亿微信用户的势能累加,在微信上开启直播已成为越来越多企业的必然选择. EasyNVR核心在于摄像机的音视频流的获取.转换.转码与高性能分发,同时同步完成对实时直播流的录像存储,在客户端(PC浏览器.Android.iOS.微信)进行录像文件的检索.回放和下载. EasyNVR鉴权配置说明 发现问题 在实际对接项目中,很多用户需要根据自身业务层的用户权限,来决定调用视频流具体资源,EasyNVR在设计时

海康、大华等网络摄像头RTSP_Onvif网页无插件直播流媒体服务器EasyNVR鉴权出现跨域问题的解决方法

背景分析 随着平安城市.智慧城市.雪亮工程.智能交通等各项建设的持续开展,安防逐渐得到普及,面对如此广阔的市场,对安防企业来说不仅仅是机遇更多的是挑战.现今大多数摄像头一直没能摆脱人工监控的传统监控方式,由此导致了大量视频数据堆积占用存储资源.实时性差.检索困难等问题,海量摄像头带来的海量视频数据检索工作需要耗费大量警力. 为了解决这些问题,近年来,视频监控行业发展方向主要为:“高清化.网络化.智能化”.视频监控设备技术性极强,系统的创新升级同时也在引导市场需求的变化并创造了新的市场需求. Ea

web系统中ACL, RBAC等鉴权系统的异同

ACL, 强调面向资源, 描述对具体资源对象的操作鉴权, 有诸如Zend_ACL(好用), symfony-acl(不好用)等实现 应用场景如:对一条帖子资源的增删改鉴权, 整个鉴权流程中, 权限部分是由具体帖子对象和增删改等操作共同构成的.授权的结果是将 "资源---操作" 组合授权给用户. RBAC,强调面向角色的权限节点鉴权, 描述对功能节点的鉴权,有诸如ThinkPHP-RBAC, sylius/rbac-bundle(symfony)等实现 应用场景如: 依据不同用户角色显示

带鉴权信息的SIP呼叫

INVITE sip:[email protected]/2.0 Via: SIP/2.0/UDP192.168.50.32:2445;branch=z9hG4bK-d8754z-244fd550d2729557-1---d8754z-;rport Max-Forwards: 70 Contact:<sip:[email protected]:2445> To: <sip:[email protected]> From:"1002"<sip:[email