apisix的authz-casbin

目录

1、apisix的auth-casbin官方介绍

2、casbin介绍和使用

2.1基本知识:

2.2使用例子

3、配置插件

4、postman调用

5、auth-casbin的坑


1、apisix的auth-casbin官方介绍

authz-casbin | Apache APISIX® -- Cloud-Native API Gateway

2、casbin介绍和使用

casbin如果看不懂,可以学习基础语法

需要学习casbin的详细理解过程(附图片理解)(rbac模型)-CSDN博客

2.1基本知识:

r = sub, obj, act

意思:请求入参(实体,资源,方法)

p = sub, obj, act

意思:策略(实体,资源,方法)

g = _ , _

意思:角色权限,这里的意思是g收到两个参数 g = 用户,角色

2.2使用例子

"policy": "p,GRANT_ROLE_firstconsumer,/dcpyo/test, *\ng,firstconsumer,GRANT_ROLE_firstconsumer\np,GRANT_ROLE_11120150115,/dcpyo/test, *\ng,11120150115,GRANT_ROLE_11120150115\n",

"username": "appKey"

policy的意思是:

p,GRANT_ROLE_firstconsumer,/dcpyo/test, *

意思:策略GRANT_ROLE_firstconsumer有接口/dcpyo/test的所有权限

g,firstconsumer,GRANT_ROLE_firstconsumer

意思:用户firstconsumer有权限GRANT_ROLE_firstconsumer

3、配置插件

auth-caszbin username可以指定头的别名

配置一个路由例子:

{

"uri": "/dcpyo/test",

"name": "4种认证20250113",

"desc": "4种认证20250113",

"plugins": {

"authz-casbin": {

"model": " [request_definition] \n r = sub, obj, act \n [policy_definition] \n p = sub, obj, act \n [role_definition] \n g = _, _ \n [policy_effect] \n e = some(where (p.eft == allow)) \n [matchers] \n m = (g(r.sub, p.sub) || keyMatch(r.sub, p.sub)) && keyMatch(r.obj, p.obj) && keyMatch(r.act, p.act) ",

"policy": "p,GRANT_ROLE_firstconsumer,/dcpyo/test, *\ng,firstconsumer,GRANT_ROLE_firstconsumer\np,GRANT_ROLE_11120150115,/dcpyo/test, *\ng,11120150115,GRANT_ROLE_11120150115\n",

"username": "appKey"

},

"proxy-rewrite": {

"uri": "/dapi/v1.0/ssApi/getDataForGet",

"use_real_request_uri_unsafe": false

}

},

"upstream": {

"nodes": [

{

"host": "10.255.159.236",

"port": 9034,

"weight": 1

}

],

"type": "roundrobin",

"hash_on": "vars",

"scheme": "http",

"pass_host": "pass"

},

"status": 1

}

4、postman调用

调用的时候,请求头就用appKey(上面设置的别名)

5、auth-casbin的坑

auth-casbin如果多个路由配置的userName时一样的值,会导致路由1,可能用到路由2的策略,这是因为默认情况下auth-casbin会缓存策略。

conf是全局配置,这里就是隐式的使用了缓存

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/4945.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于python+Django+mysql鲜花水果销售商城网站系统设计与实现

博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育、辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…

【大模型】ChatGPT 高效处理图片技巧使用详解

目录 一、前言 二、ChatGPT 4 图片处理介绍 2.1 ChatGPT 4 图片处理概述 2.1.1 图像识别与分类 2.1.2 图像搜索 2.1.3 图像生成 2.1.4 多模态理解 2.1.5 细粒度图像识别 2.1.6 生成式图像任务处理 2.1.7 图像与文本互动 2.2 ChatGPT 4 图片处理应用场景 三、文生图操…

【0x0052】HCI_Write_Extended_Inquiry_Response命令详解

目录 一、命令概述 二、命令格式及参数 2.1. HCI_Write_Extended_Inquiry_Response命令格式 2.2. FEC_Required 2.3. Extended_Inquiry_Response 三、生成事件及参数 3.1. HCI_Command_Complete 事件 3.2. Status 四、命令执行流程 4.1. 命令准备阶段(主机端) 4.2…

函数递归的介绍

1.递归的定义 在C语言中,递归就是函数自己调用自己 上面的代码就是 main 函数在函数主体内 自己调用自己 但是,上面的代码存在问题:main 函数反复地 自己调用自己 ,不受限制,停不下来。 最终形成死递归,…

小白爬虫——selenium入门超详细教程

目录 一、selenium简介 二、环境安装 2.1、安装Selenium 2.2、浏览器驱动安装 三、基本操作 3.1、对页面进行操作 3.1.1、初始化webdriver 3.1.2、打开网页 3.1.3、页面操作 3.1.4、页面数据提取 3.1.5、关闭页面 ?3.1.6、综合小案例 3.2、对页面元素进行操作 3…

JDK长期支持版本(LTS)

https://blogs.oracle.com/java/post/the-arrival-of-java-23 jdk长期支持版本(LTS):JDK 8、11、17、21:

三格电子——MODBUS TCP 转 CANOpen 协议网关

一、产品概述 1.1 产品用途 SG-TCP-COE-210 网关可以实现将 CANOpen 接口设备连接到 MODBUS TCP 网络中。用户不需要了解具体的 CANOpen 和 Modbus TCP 协议即可实现将 CANOpen 设备挂载到 MODBUS TCP 接口的 PLC 上,并和 CANOpen 设备进行 数据交互。 1.2 产品…

在离线无管理员权限的情况下为Linux配置oh-my-zsh(zsh+oh my zsh+powerlevel10k)

0. 前言 最近接触到一台离线环境下的Linux(CentOS7),自带的终端实在过于丑陋(tcsh),但是搜半天改zsh的教程要么要网、要么要管理员权限,奋而自己折腾半天记录于此以作备忘。 所需环境 一台能…

C 语言雏启:擘画代码乾坤,谛观编程奥宇之初瞰

大家好啊,我是小象٩(๑ω๑)۶ 我的博客:Xiao Xiangζั͡ޓއއ 很高兴见到大家,希望能够和大家一起交流学习,共同进步。* 这一课主要是让大家初步了解C语言,了解我们的开发环境,main函数,库…

Java - WebSocket

一、WebSocket 1.1、WebSocket概念 WebSocket是一种协议,用于在Web应用程序和服务器之间建立实时、双向的通信连接。它通过一个单一的TCP连接提供了持久化连接,这使得Web应用程序可以更加实时地传递数据。WebSocket协议最初由W3C开发,并于2…

C语言内存之旅:从静态到动态的跨越

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文一 动态内存管理的必要性二 动态…

气膜料仓:工业仓储的高效与安全新选择—轻空间

在工业仓储领域,如何实现高效、安全、环保的存储方式成为企业关注的重点。气膜料仓以其独特的无梁无柱设计和智能化功能,为工业仓储带来了全新的解决方案。 空间利用率高:无障碍的大容量仓储 气膜料仓内部无梁无柱,形成了完全开…

Windows FileZila Server共享电脑文件夹 映射21端口外网连接

我有这样一个使用场景,在外部网络环境下,通过手机便捷地读取存储在电脑上的视频文件。比如在外出旅行、出差,身边没有携带电脑,仅依靠手机设备,就能随时获取电脑里存储的各类视频,无论是学习资料视频、工作…

CentOS部署FastDFS+Nginx并实现远程访问本地服务器中文件

文章目录 前言1. 本地搭建FastDFS文件系统 1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址…

2023年江西省职业院校技能大赛网络系统管理赛项(Linux部分样题)

一、Linux项目任务描述 你作为一个Linux的技术工程师,被指派去构建一个公司的内部网络,要为员工提供便捷、安全稳定内外网络服务。你必须在规定的时间内完成要求的任务,并进行充分的测试,确保设备和应用正常运行。任务所有规划都基于Linux操作系统,请根据网络拓扑、基本配…

【Spring】定义的Bean缺少隐式依赖

问题描述 初学 Spring 时,我们往往不能快速转化思维。例如,在程序开发过程中,有时候,一方面我们把一个类定义成 Bean,同时又觉得这个 Bean 的定义除了加了一些 Spring 注解外,并没有什么不同。所以在后续使…

使用Chrome和Selenium实现对Superset等私域网站的截图

最近遇到了一个问题,因为一些原因,我搭建的一个 Superset 的 Report 功能由于节假日期间不好控制邮件的发送,所以急需一个方案来替换掉 Superset 的 Report 功能 首先我们需要 Chrome 浏览器和 Chrome Driver,这是执行数据抓取的…

vulnhub靶场【IA系列】之Tornado

前言 靶机:IA-Tornado,IP地址为192.168.10.11 攻击:kali,IP地址为192.168.10.2 都采用虚拟机,网卡为桥接模式 本文所用靶场、kali镜像以及相关工具,我放置在网盘中,可以复制后面链接查看 htt…

不用编程即可实现多台PLC的MQTT协议JSON文件发布与订阅的智能网关的配置说明

IGT-SER系列智能网关支持各种PLC的以太网和串口协议,以及Modbus、OPC通讯,通过网关所带的参数配置工具软件,不用编程,即可打包和解析JSON格式的设备数据,通过MQTT、HTTP等协议发布和订阅。相关案例 IGT-SER系列智能网关…

为什么相关性不是因果关系?人工智能中的因果推理探秘

目录 一、背景 (一)聚焦当下人工智能 (二)基于关联框架的人工智能 (三)基于因果框架的人工智能 二、因果推理的基本理论 (一)因果推理基本范式:因果模型&#xff0…