Higress MCP Server 安全再升级:API 认证为 AI 连接保驾护航
Higress MCP Server 安全再升级:API 认证为 AI 连接保驾护航
Higress 作为一款强大的 AI 原生 API 网关,致力于铺设 AI 与现实世界之间最短、最安全、最具成本效益的连接路径。其核心能力之一便是支持将现有的 OpenAPI 规范无缝转换为 MCP Server,让 AI 能够快速、便捷地调用各类存量 API 服务。借助 Higress,企业和开发者可以瞬间将其宝贵的 API 资产转化为 AI 可用的远程 MCP Server,从而极大地加速 AI 应用的落地和创新。
当通过 Higress 托管的 MCP Server 集成 AI 与外部服务时,通常需要考虑两个主要的认证阶段:
1. 客户端到 MCP Server 的认证:这是指 MCP 客户端(例如 AI Agent)对 Higress 网关上托管 MCP Server 的端点进行的认证。Higress 为此阶段提供了强大的网关级认证机制,例如 Key Auth、JWT Auth 以及 OAuth2 支持。这些现有的 Higress 功能确保只有授权的客户端才能访问您的 MCP Server。
2. MCP Server 到后端 API 的认证:一旦授权客户端调用某个 MCP 工具,MCP Server 插件本身可能需要向该工具所代理的最终后端 REST API 进行认证。
本次发布聚焦于对第二阶段的重大增强:在 Higress MCP Server 插件内部为其与后端 REST API 的通信提供全面的 API 认证能力。此更新使开发者能够通过在 MCP Server 插件中进行配置,并遵循 OpenAPI 标准,以灵活且健壮的机制管理凭证和认证流程,从而安全地集成更广泛的后端服务。
下图阐释了这两个认证阶段:
本次新增核心认证功能概览 (针对 MCP Server 到后端 API)
此版本引入了多项核心功能来管理 API 认证:
1. 可重用认证方案:在服务器层面定义通用的认证方法(HTTP Basic、HTTP Bearer、API Key)。
2. 工具特定的后端认证:将已定义的认证方案应用于单个工具,指定 MCP Server 在调用后端 REST API 时应如何进行自我认证。
3. 透明凭证透传:允许 MCP 客户端(例如 AI 助手)提供的凭证安全地透传至后端 API。
4. 灵活的凭证管理:支持在方案级别设置默认凭证,并允许为特定工具覆盖这些默认凭证。
接下来,让我们深入了解如何利用这些功能。
定义认证方案 (server.securitySchemes
)
您现在可以在 MCP Server 配置的 server
层级定义一组 securitySchemes
。这种方式与 OpenAPI 规范 (OAS3) 中定义安全要求的方法保持一致,使其易于理解和标准化。每个方案代表您的后端 API 可能使用的一种特定认证方法。
目前,Higress MCP Server 插件支持以下方案类型:
http 配合 ``scheme: basic
(HTTP Basic 认证)http 配合 ``scheme: bearer
(HTTP Bearer 令牌认证)apiKey 配合 ``in: header
或in: query
(位于 Header 或查询参数中的 API Key)
我们计划在未来的版本中增加对 oauth2
和 openIdConnect
(OIDC) 方案的支持,从而进一步扩展您可以安全集成的 API 范围。
securitySchemes
配置字段:
示例:
server:name: my-secure-api-serversecuritySchemes:- id: backendBasicAuthtype: httpscheme: basicdefaultCredential: "service_user:p@$$wOrd"- id: backendBearerTokentype: httpscheme: bearerdefaultCredential: "your_static_bearer_token_for_backend"- id: backendApiKeyHeadertype: apiKeyin: headername: X-Internal-ApiKeydefaultCredential: "secret_backend_api_key"
为后端 API 调用应用认证 (requestTemplate.security
)
定义认证方案后,您可以将其应用于 MCP Server 向后端 REST API 发出的请求。这在每个工具的 requestTemplate
中进行配置:
requestTemplate.security.id:引用在 ``server.securitySchemes
中定义的方案的id
。requestTemplate.security.credential:(可选) 允许您为此特定工具的后端调用覆盖方案中的 ``defaultCredential
。
示例:
tools:- name: fetch-sensitive-datadescription: "从需要 Bearer 令牌的后端服务获取敏感数据。"args: # ...requestTemplate:url: "https://api.internal.com/data"method: GETsecurity:id: backendBearerToken # 使用 'backendBearerToken' 方案# credential: "override_token_for_this_tool_if_needed" # 如果需要,可为此工具覆盖令牌
透明凭证透传
最强大的新增功能之一是能够将来自客户端请求(例如,从 AI Agent 到 MCP Server)的凭证透明地传递到后端 API 调用(MCP Server 到实际的 REST API)。当后端 API 需要 AI 客户端拥有的用户特定认证时,此功能非常宝贵。
工作原理:
**1. 客户端认证方案定义:MCP Server 需要知道客户端如何进行自我认证。这也通过 server.securitySchemes
中的一个方案来定义。
2. 工具级安全配置 ( tools[].security
):
id:引用
客户端在调用此 MCP 工具时应使用的认证方案。MCP Server 将使用此方案来提取客户端的凭证。passthrough:true:此标志启用透传机制。
3. 后端认证:如上所述的 requestTemplate.security
定义了透传凭证将如何应用于后端 API 调用。
示例:
假设一个 AI 客户端使用用户特定的 JWT Bearer 令牌调用您的 MCP 工具。您希望使用相同的令牌调用后端服务。
server:name: user-data-passthrough-serversecuritySchemes:- id: clientUserBearer # 客户端传入 Bearer 令牌的方案type: httpscheme: bearer- id: backendServiceBearer # 后端 API 的方案 (也是 Bearer, 但可以不同)type: httpscheme: bearer# 如果总是依赖透传,则此处无需 defaultCredentialtools:- name: get-user-profiledescription: "使用客户端提供的令牌获取用户个人资料。"security: # 客户端如何向此 MCP 工具进行认证的配置id: clientUserBearer # MCP Server 期望客户端使用 Bearer 令牌passthrough: true # 启用透传args: # ...requestTemplate:url: "https://api.user-profiles.com/me"method: GETsecurity: # MCP Server 如何向后端 API 进行认证的配置id: backendServiceBearer # 透传的令牌将作为 Bearer 令牌发送到后端。
工作流程:
-
AI 客户端调用
get-user-profile
工具,并提供一个Authorization: Bearer <user_jwt_token>
请求头。 -
Higress MCP Server 根据
tools[].security.id: clientUserBearer
提取<user_jwt_token>
。来自客户端的原始Authorization
请求头被移除。 -
由于设置了
passthrough: true
,<user_jwt_token>
被指定为用于后端调用的凭证。 -
然后,MCP Server 使用
requestTemplate.security.id: backendServiceBearer
中定义的方案来格式化此<user_jwt_token>
并将其发送到https://api.user-profiles.com/me
端点 (即,它发送Authorization: Bearer <user_jwt_token>
)。
关于透传的重要说明:
- 当
passthrough: true
时,requestTemplate.security.credential
中指定的任何credential
都将被忽略。 - MCP Server 会智能地从客户端请求中提取核心凭证部分(例如,从 “Bearer token” 中提取 token,从 “Basic base64value” 中提取 base64 部分),然后再进行透传。
带来的益处
这些新的认证功能提供了:
- 增强的安全性:妥善保护与后端服务的交互。
- 更高的灵活性:支持各种常见的认证模式。
- 简化的集成:更容易与具有不同安全要求的 API 集成。
- 无缝的用户上下文传播:透明地使用客户端提供的凭证进行后端调用,实现个性化的 API 交互。
我们相信这些增强功能将显著改善使用 Higress 和 MCP Server 构建的 AI 驱动应用程序的安全状况和集成能力。
通过 openapi-to-mcp
简化配置
为了进一步简化配置过程,最新版本的 openapi-to-mcp
工具(项目地址:GitHub【1】)现已支持将包含 securitySchemes
定义的 OpenAPI 文档直接转换为此 MCP Server 插件配置。如果您的 OpenAPI 规范已经描述了其安全要求,该工具可以生成相应的 server.securitySchemes
并将其链接到合适的工具,从而显著减少手动配置的工作量。
开始使用
如果您使用开源版 Higress 请更新您的 Higress MCP Server 插件,并参阅 MCP Server README 文档【2】 获取详细的配置说明和更多示例。
如果您使用企业版 Higress(阿里云 AI 网关),请参考我们的企业版产品文档【3】,我们提供了更易用的产品化封装,并提供全托管免运维的服务,以及 99.99% 的 SLA 可用性保障:
我们致力于将 Higress 打造成一个强大且开发者友好的 AI 原生 API 网关,能够对接 LLM API、MCP API 和 Agent API。敬请期待更多更新!
【1】GitHub
https://github.com/higress-group/openapi-to-mcpserver
【2】MCP Server README 文档
https://higress.cn/ai/mcp-server/
【3】企业版产品文档
https://help.aliyun.com/zh/api-gateway/ai-gateway/user-guide/mcp-services-management
相关文章:

Higress MCP Server 安全再升级:API 认证为 AI 连接保驾护航
Higress MCP Server 安全再升级:API 认证为 AI 连接保驾护航 Higress 作为一款强大的 AI 原生 API 网关,致力于铺设 AI 与现实世界之间最短、最安全、最具成本效益的连接路径。其核心能力之一便是支持将现有的 OpenAPI 规范无缝转换为 MCP Server&#…...
多个vue2工程共享node_modules
手头有多个vue2项目,它们每个都需要一个node_modules,拷贝起来超级麻烦。于是想到能否共享一个node_modules呢?? 方法其实挺多,我选择了一个较简单的:符号连接法(win11平台) 创建方法很简单:比…...
蓝桥杯178 全球变暖
题目描述 你有一张某海域 NxN 像素的照片,"."表示海洋、"#"表示陆地,如下所示: ....... .##.... .##.... ....##. ..####. ...###. ....... 其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上…...

多模态理解大模型高性能优化丨前沿多模态模型开发与应用实战第七期
一、引言 在前序课程中,我们系统剖析了多模态理解大模型(Qwen2.5-VL、DeepSeek-VL2)的架构设计。鉴于此类模型训练需消耗千卡级算力与TB级数据,实际应用中绝大多数的用户场景均围绕推理部署展开,模型推理的效率影响着…...
mysql 合集
mysql 日志主要分为三个日志:redo log、binlog、undo log; redo log 主要是用来mysql 奔溃恢复 redo log 主要是有一个机制是 设置刷盘机制: 通过innodb_flush_log_at_trx_commit控制刷盘策略: 1:每次事务提交都刷盘(…...
Zustand V5教程:Vanilla Store 与 useStore 使用详解 + 实战 Demo
Zustand 是一个轻量、灵活的状态管理库。自从 Zustand v4 推出 Vanilla Store 后,我们可以更优雅地在组件外(如 API 拦截器、工具函数)访问状态,同时在组件内继续享受响应式的状态订阅。 本教程将通过一个“登录状态管理”示例&a…...
docker 搭建php 开发环境 添加扩展redis、swoole、xdebug(1)
docker-compose搭建lnmp 先决条件 首先需要安装docker 安装docker-compost 1、创建lnmp工作目录 #创建三个目录 mkdir lnmp && cd lnmp mkdir -p nginx/conf php mysql/data lnmp/www#编写nginx 配置文件 nginx/conf/default.conf vim nginx/conf/default.confserv…...

人脸识别技术合规备案最新政策详解
《人脸识别技术应用安全管理办法》将于2025年6月1日正式实施,该办法从技术应用、个人信息保护、技术替代、监管体系四方面构建了人脸识别技术的治理框架,旨在平衡技术发展与安全风险。 一、明确技术应用的边界 公共场所使用限制:仅在“维护公…...
(16)高性能风控系统设计
文章目录 🚀 高性能风控系统设计:千万级QPS实时风控解决方案TL;DR🏗️ 系统整体架构💻 Java技术栈选型详解1️⃣ 接入层技术选型🔥 接入层代码示例 2️⃣ 规则引擎层技术选型🧠 规则引擎优化技巧 3️⃣ 数据…...

AStar低代码平台-脚本调用C#方法
修改报工表表单,右键定义弹出菜单,新增一个菜单项,并在点击事件脚本中编写调用脚本。 编译脚本,然后在模块代码里面定义这个方法: public async Task<int> on_call_import(DataRow curRow) {PrintDataRow(cur…...

企业级RAG技术实战指南:从理论到落地的全景解析
前言 在大模型技术日新月异的今天,检索增强生成(RAG)技术正成为企业突破AI应用瓶颈的关键利器。当传统AI系统还在处理结构化数据的泥潭中挣扎时,RAG技术已经打开了通向非结构化知识海洋的大门。这本《RAG技术实战指南》以独特的工…...
getline()跳过输入
std::getline(cin, s) 第一个参数传递的是输入流:istream(输入流的基类), ifstream, istrstream 的引用; 第二个参数传递的是本地字符串引用,即从输入流读出来的东西要存放的位置。 会跳过getline()的输入 cin >> ch; getline(cin, s…...

【八股战神篇】RabbitMQ高频面试题
简述RabbitMQ五种模式 ? 延伸 请介绍一下RabbitMQ的特点 延伸 简述RabbitMQ的发布与订阅模式 延伸 RabbitMQ 如何保证消息不丢失? 延伸 RabbitMQ 如何保证消息有序? 延伸 专栏简介 八股战神篇专栏是基于各平台共上千篇面经…...

高阶数据结构——红黑树实现
目录 1.红黑树的概念 1.1 红黑树的规则: 1.2 红黑树的效率 2.红黑树的实现 2.1 红黑树的结构 2.2 红黑树的插入 2.2.1 不旋转只变色(无论c是p的左还是右,p是g的左还是右,都是一样的变色处理方式) 2.2.2 单旋变色…...
互联网大厂Java求职面试:AI与大模型应用集成中的架构难题与解决方案
互联网大厂Java求职面试:AI与大模型应用集成中的架构难题与解决方案 面试场景:AI与大模型应用集成的架构设计 面试官:技术总监 候选人:郑薪苦(搞笑但有技术潜力的程序员) 第一轮提问:系统架…...

安卓学习笔记-声明式UI
声明式UI Jetpack Compose 是 Google 推出的用于构建 Android UI 的现代化工具包。它采用 声明式编程模型(Declarative UI),用 Kotlin 编写,用于替代传统的 XML View 的方式。一句话概括:Jetpack Compose 用 Kotlin…...

AI天气预报进入“大模型时代“:如何用Transformer重构地球大气模拟?
引言:从数值预报到AI大模型的范式变革 传统的天气预报依赖于数值天气预报(NWP, Numerical Weather Prediction),通过求解大气动力学方程(如Navier-Stokes方程)进行物理模拟。然而,NWP计算成本极高,依赖超级计算机,且难以处理小尺度天气现象(如短时强降水)。 近年来…...
本地项目如何设置https(2)——2025-05-19
在配置本地HTTPS时,安装mkcert工具本身是全局操作(安装在系统环境,与项目无关),但生成证书时需要进入项目目录操作。以下是具体说明: 安装 mkcert(全局操作) 安装位置:无…...

数据结构第3章 线性表 (竟成)
目录 第 3 章 线性表 3.1 线性表的基本概念 3.1.1 线性表的定义 3.1.2 线性表的基本操作 3.1.3 线性表的分类 3.1.4 习题精编 3.2 线性表的顺序存储 3.2.1 顺序表的定义 3.2.2 顺序表基本操作的实现 1.顺序表初始化 2.顺序表求表长 3.顺序表按位查找 4.顺序表按值查找 5.顺序表…...

JAVA面试复习知识点
面试中遇到的题目,记录复习(持续更新) Java基础 1.String的最大长度 https://www.cnblogs.com/wupeixuan/p/12187756.html 2.集合 Collection接口的实现: List接口:ArraryList、LinkedList、Vector Set接口:…...

项目中的流程管理之Power相关流程管理
一、低功耗设计架构规划(Power Plan) 低功耗设计的起点是架构级的电源策略规划,主要包括: 电源域划分 基于功能模块的活跃度划分多电压域(Multi-VDD),非关键模块采用低电压…...

SLOT:测试时样本专属语言模型优化,让大模型推理更精准!
SLOT:测试时样本专属语言模型优化,让大模型推理更精准! 大语言模型(LLM)在复杂指令处理上常显不足,本文提出SLOT方法,通过轻量级测试时优化,让模型更贴合单个提示。实验显示&#x…...

《计算机组成原理》第 10 章 - 控制单元的设计
目录 10.1 组合逻辑设计 10.1.1 组合逻辑控制单元框图 10.1.2 微操作的节拍安排 10.1.3 组合逻辑设计步骤 10.2 微程序设计 10.2.1 微程序设计思想的产生 10.2.2 微程序控制单元框图及工作原理 10.2.3 微指令的编码方式 1. 直接编码(水平型) 2.…...

【数据结构与算法】模拟
成熟不是为了走向复杂,而是为了抵达天真;不是为了变得深沉,而是为了保持清醒。 前言 这是我自己刷算法题的第五篇博客总结。 上一期笔记是关于前缀和算法: 【数据结构与算法】前缀和-CSDN博客https://blog.csdn.net/hsy1603914691…...

PyTorch入门-torchvision
torchvision torchvision 是 PyTorch 的一个重要扩展库,专门针对计算机视觉任务设计。它提供了丰富的预训练模型、常用数据集、图像变换工具和计算机视觉组件,大大简化了视觉相关深度学习项目的开发流程。 我们可以在Pytorch的官网找到torchvision的文…...
LVS负载均衡群集技术深度解析
第一章 群集技术概述与LVS基础 1.1 群集技术的核心价值与分类 随着互联网应用的复杂化,单台服务器在性能、可靠性、扩展性等方面逐渐成为瓶颈。群集技术(Cluster)通过整合多台服务器资源,以统一入口对外提供服务,成为…...

18、Python字符串全解析:Unicode支持、三种创建方式与长度计算实战
适合人群:零基础自学者 | 编程小白快速入门 阅读时长:约6分钟 文章目录 一、问题:Python的字符串是什么?1、例子1:多语言支持演示2、例子2:字符串不可变性验证3、答案:(1)…...

5月27日复盘-Transformer介绍
5月27日复盘 二、层归一化 层归一化,Layer Normalization。 Layer Normalizatioh和Batch Normalization都是用来规范化中间特征分布,稳定和加速神经网络训练的,但它们在处理方式、应用场景和结构上有本质区别。 1. 核心区别 特征BatchNo…...
CSV数据处理全指南:从基础到实战
CSV(Comma-Separated Values,逗号分隔值) 是一种简单的文件格式,用于存储和交换表格数据(如电子表格或数据库中的记录)。其核心特点是用逗号分隔字段,以换行符分隔记录。 CSV 的定义与结构 基本…...

MyBatis-Plus一站式增强组件MyBatis-Plus-kit(更新2.0版本):零Controller也能生成API?
MyBatis-Plus-Kit 🚀 MyBatis-Plus-Kit 是基于MyBatis-Plus的增强组件,专注于提升开发效率,支持零侵入、即插即用的能力扩展。它聚焦于 免写 Controller、代码一键生成、通用响应封装 等核心场景,让您只需专注业务建模࿰…...