与Laravel, APIs和现代代理架构 Professional AI-powered应用程序的构建 AI-powered应用程序正在超越简单的聊天界面.
现代AI系统可以与API,数据库,外部服务,以及业务工作流程进行交互,允许AI代理执行动作而不只是生成响应.
这造成了新的安全挑战。
传统API可能随之而来: 用户 API 数据库 回应 AI授权应用程序可以更像: 用户 AI代理 工具 API 业务逻辑 数据库/外部服务 行动 区别之所以重要,是因为AI代理可能在一个单一的工作流程中做出多个决定和工具呼叫.
OWASP目前的GenAI安全指南确定了风险,包括迅速注射、敏感信息披露、不当处理产出、过度代理和不受限制的消费。 (OWASP基金会) 因此,保护AI API不仅仅是保护API密钥.
开发者需要对认证,授权,限速,输入验证,工具权限,数据保护,人批准等进行分层控制并进行监测.
1.
为什么AI APIs是不同的传统API通常执行明确定义的操作:POST/api/命令 应用程序可以认证用户,验证请求,检查授权,并处理订单.
AI代理介绍另一层:用户请求 QQ AI Agent QQ 选择工具 API 请求 API 授权 QQ 业务逻辑 QQ Action 例如,客户可能会问 : “ 请检查我的最新订单, 如果我符合条件, 处理退款 。 ” 特工有可能: 找到客户。
取取所执.
检查退款政策。
给API打电话 创建退款。
通知顾客 每次行动都代表着潜在的安全边界。
这就是为什么代理系统不仅要求控制单个API通话,而且要求控制一个代理被允许的行为.
OWASP特别将过度的功能、过度的许可和过度的自主确定为造成过度机构风险的主要原因。 (OWASP基金会)认证:建立身份认证答案:是谁提出这个请求?.
AI应用程序可能具有多个身份: 人用用户Web应用程序 移动应用程序 API客户端 背景工人 AI代理第三方集成 这些身份不应自动获得相同的特权。
对于Laravel API,可以根据应用程序的要求,使用Sanctum或Passport等机制进行认证。
受保护的 Laravel 端点可以看起来像: 使用 Illunitation\ Http\ request; 使用 Illunitation\ 支持\ Facades\ Route; 路由 : get ('/ orders', 函数 (request $ request) { return $ request - > user () - > orders () - > latest () - > get ();}- > middleware ('auth: sanctum'); 然后客户端可以使用无记名符号认证: 授权: 持有者 your ACCESS TOKEN 关键原则很简单: 人工智能代理人只应获得其具体任务所需的身份和访问权。
3.
认证不是授权认证告诉我们是谁在呼叫API.
授权告诉我们该身份可以做什么。
例如,成功认证客户并不意味着客户——或代理该客户的AI代理——可以: 删除另一个用户访问另一个客户的订单 更改账户权限 输出数据库 发布无限退款 Laravel 政策和大门可以执行这些规则。
例如: 如果( $ request- > user ()- > canno ('refund', $order)) { 中止( 403, “ refund not authority. ” );} 当AI代理能够使用多种工具时,这种区分变得特别重要.
人工智能代理人最低特权原则应当具备必要的最低能力。
想象一个代理机可以访问: get Customer () get ord () create ticket () revolution ord () 删除 Customer () 更新 permissions () 客户支持代理可能只需要: 获取 客户( ) 获取 订单( ) 创建 ticket( ) QQ退款 ord