惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
月光博客
月光博客
博客园_首页
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
AWS News Blog
AWS News Blog
S
Securelist
T
Tailwind CSS Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
罗磊的独立博客
D
Docker
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Apple Machine Learning Research
Apple Machine Learning Research
Scott Helme
Scott Helme
H
Help Net Security
Project Zero
Project Zero
P
Proofpoint News Feed
D
DataBreaches.Net
Recorded Future
Recorded Future
Simon Willison's Weblog
Simon Willison's Weblog
V2EX - 技术
V2EX - 技术
The Cloudflare Blog
Hugging Face - Blog
Hugging Face - Blog
I
Intezer
Engineering at Meta
Engineering at Meta
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
S
Secure Thoughts
GbyAI
GbyAI
U
Unit 42
Blog — PlanetScale
Blog — PlanetScale
T
Threat Research - Cisco Blogs
The Last Watchdog
The Last Watchdog
Y
Y Combinator Blog
F
Fortinet All Blogs
博客园 - Franky
T
The Blog of Author Tim Ferriss
Hacker News: Ask HN
Hacker News: Ask HN
Microsoft Security Blog
Microsoft Security Blog
Stack Overflow Blog
Stack Overflow Blog
S
Security @ Cisco Blogs
Cyberwarzone
Cyberwarzone

API

我搭建了一个新的中转, 0.12 满血 pro 有兄弟们要吗 - V2EX 所谓的 AI 使用 API 的时候推理模式计算使用量疑惑 - V2EX 八字喜用神起名大师 API 接口 - V2EX PPT 转高精度图片 API 接口 - V2EX 网页 URL 转 Markdown API 接口 - V2EX PPT 转高精度 PDF API 接口 2025 年有哪些可用的短信提醒的邮箱服务 - V2EX 全球 QS 世界大学排名数据 API 接口 盲派八字推理 API 数据接口 URL 生成网站截图 API 数据接口 - V2EX URL 转静态 HTML 文件 API 数据接口 - V2EX PDF 转 HTML API 数据接口 - V2EX 有没有可以利用 AI,精确识别截屏中特定内容坐标的 API? 有哪些开源程序可以快速构建 API 服务 一个 GET API URL 设计的有趣问题 - V2EX 有没有能获取淘宝详情的 api 平台 - V2EX 请问有什么 Midjourney API 站点? - V2EX 兄弟们,能推荐个植物数据库吗 - V2EX HTML 转 PDF API 接口 - V2EX 考题相似度 AI 分析 API 数据接口 - V2EX 历年高校招生计划数据 API 数据接口 - V2EX 搞了一个返回名言警句的 API - V2EX 关于 API 设计问题,请大家指点指点 - V2EX 我们在做一个告警系统, 想把严重的告警通过电话告出来,请问有木有相关的 API 吗?费用便宜点的 - V2EX 求组,想找一个文档转图片的付费 api - V2EX 请教,未登陆用户的 api 怎么防护比较合适? - V2EX 有没有免费翻译的 api,输入文本直接翻译成中文 - V2EX 有什么好用的英语词典的 api 吗? 就是输入英文单词可以查出它的音标? - V2EX 有没有醒图或者美图秀秀拼图功能类似的 API - V2EX 有没有 api 可以给用户的英译汉结果打分? - V2EX 设计高可用的 api 服务 - V2EX 求推荐一个短信 api 平台 - V2EX 各位大佬们,有谁知道哪个网站可以查航班和火车的 API? - V2EX 求助一下哪里有船舶信息的 API - V2EX 想了解 如何接入一个应用 当这个应用发出通知时 可以自动化操作提前设置好的指令 类似跳转然后下单或者类似大麦抢票脚本 - V2EX 圈外人 想了解能否做一个外接程序 自动对某 app 应用进行自动化反应操作 - V2EX DeepL API 怎么用? - V2EX 全国大学高校专业数据 API 接口 - V2EX 有比较全的淘客 api,类似什么值得买的 api 不 - V2EX 有道 API 文本限频了怎么办?顺便想说有道的客服态度真的有点.... - V2EX 插件开发版| Authing 结合 APISIX 实现统一可配置 API 权限网关 - V2EX 做一个接口的中间件有那些技术栈可以直接拿来用呢? - V2EX 个人开发的免费 API 平台(包含 ip 归属地、手机号归属地,经纬度查询、天气预报查询等) - V2EX 分享个手机号+名字二要素实名 比较便宜 API 的渠道 - V2EX 求大神帮忙,恢复下我的百度云 - V2EX 全国大学高校基础信息 API 接口 - V2EX 国际标准书号 ISBN API 数据接口 - V2EX acme.sh + zerossl 今天有问题 - V2EX A 股分时交易数据数据接口 API - V2EX
Authing 结合 APISIX 实现统一可配置 API 权限网关(快速启动版) - V2EX
Authing · 2023-03-24 · via API

当开发者在构建网站、移动设备或物联网应用程序时,可能需要使用 API 网关来处理接口流量。而在实际业务场景中,除去少部分允许匿名者访问的 API 外,API 提供者通常会对 API 使用者进行权限管控,只允许符合访问要求的使用者访问该 API 。其次,权限管控涉及到权限策略,对于不同条件且均符合访问要求的使用者做权限区分。本文将带你快速创建使用 Authing 结合 APISIX 实现统一可配置 API 权限网关

Authing 是国内首款以开发者为中心的全场景身份云产品,集成了所有主流身份认证协议,为企业和开发者提供完善安全的用户认证和访问管理服务。以「 API First 」作为产品基石,把身份领域所有常用功能都进行了模块化的封装,通过全场景编程语言 SDK 将所有能力 API 化提供给开发者。同时,用户可以灵活的使用 Authing 开放的 RESTful APIs 进行功能拓展,满足不同企业不同业务场景下的身份和权限管理需求

02 关于 APISIX

Apache APISIX 是一个动态、实时、高性能的 API 网关,提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。Apache APISIX 不仅支持插件动态变更和热插拔,而且拥有众多实用的插件。Apache APISIX 的 OpenID Connect 插件支持 OpenID Connect 协议,用户可以使用该插件让 Apache APISIX 对接 Authing 服务,作为集中式认证网关部署于企业中。

03 业务目标

通过 Authing 权限管理 + APISIX 实现 API 的访问控制。

案例:我们希望用户在 Authing 进行认证后访问到被授权的 API 。 ( https://console.authing.cn/api/v2/get_console_context

04 如何实现

注意,本教程只用于与 APISIX 和 Authing 进行集成测试。后续我们将发布《 Authing 结合 APISIX 实现统一可配置 API 权限网关(插件开发版)》。

4.1 业务架构

4.2 先决条件

需要自行提前安装,docker 和 docker-compose 。

4.3 APISIX & Authing Plugin 基础环境搭建

  • 下载编排文件
wget https://raw.githubusercontent.com/fehu-asia/authing-apisix-docker-compose/main/apisix-authing.tgz --no-check-certificate
  • cd 到压缩包所在目录执行如下命令
tar -zxvf apisix-authing.tgz  -C /  && cd /apisix && docker-compose -p docker-apisix up -d

到这里可以使用 docker ps 查看 apisix docker 进程启动状态, 随后访问 {your server IP}:9000 可以进入 dashboard 界面进行路由和插件的配置。

4.4 在 Authing 对 API 进行管理

Authing 官网:www.authing.com 。或点击文章底部阅读原文。

  • 创建应用

配置 Token 签名算法为 RS256 及校验 AccessToken 的方式为 none 。

  • 创建用户

进入 Authing 控制台-用户管理-用户列表-点击创建用户后,可以根据不同方式(用户名、手机号、邮箱)创建测试用户,如下图所示:

  • 创建 API

进入 Authing 控制台-权限管理-创建资源,可以选择创建树数据类型的资源,如下图所示:

添加相关操作,这里我们的操作对应 HTTP 的请求方法:

  • 创建策略

进入权限管理-数据资源权限-数据策略标签,可以点击创建策略来新建数据访问策略,如下图所示。策略包含了对应的权限空间中定义的数据以及操作,创建后能够基于此策略对不同对象(用户、角色、用户组等)进行授权管理。

  • API 授权

4.5 添加路由

  • 路由配置

在 APISIX 宿主机上执行。

注意,需要替换请求参数中的用户池 ID 以及密钥。

curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
  "uri": "/*",
  "name": "authing_router",
  "plugins": {
    "ext-plugin-pre-req": {
      "allow_degradation": false,
      "conf": [
        {
          "name": "authing_agent",
          "value": "{\"url\": \"http://authing-adapter:18080/isAllow\",\"user_pool_id\": \"{用户池 ID}\",\"user_pool_secret\": \"{用户池密钥}\"}"
        }
      ],
      "disable": false
    }
  },
  "upstream": {
    "nodes": [
      {
        "host": "console.authing.cn",
        "port": 443,
        "weight": 1
      }
    ],
    "timeout": {
      "connect": 6,
      "send": 6,
      "read": 6
    },
    "type": "roundrobin",
    "scheme": "https",
    "pass_host": "node",
    "keepalive_pool": {
      "idle_timeout": 60,
      "requests": 1000,
      "size": 320
    }
  },
  "status": 1
}'

upstream 我们在这里使用的是 httpbin.orghttpbin.org 是一个简单的在线提供 HTTP 服务的网站,您可以将其用于测试,您也可以将其修改为自己的实际 API 服务地址。

X-API-KEY 所在位置:/apisix/apisix_conf/config.yaml

若您修改了此字段则需要在 curl 请求中进行修改:

4.6 访问测试

目标:当用户认证并携带有效的 AccessToken 且访问的 uri 是被授权的,方可正常调用 API 。

  • 获取 accessToken

让我们先去 Authing 的应用进行认证,获取被授权用户的 accessToken 。

复制这个 access_token 接下来测试会用到。

  • 未认证

curl --location --request GET 'http://{服务器 IP}:9080/xxxx'
  • 无权限

curl --location --request GET 'http://{服务器 IP}:9080/xxxx' \
--header 'Authorization: Bearer {accessToken}'
  • 认证通过并成功访问

curl --location --request GET 'http://{服务器 IP}:9080/api/v2/get_console_context' \
--header 'Authorization: Bearer {accessToken}'

05 未来可期

在此方案基础上我们也可以实现统一的安全审计、用户行为轨迹分析、用户访问风险评估等,用以实现全链路 API 访问治理。