• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

防火墙对接API 登录认证不成功

2小时前提问
  • 0关注
  • 0收藏,42浏览
粉丝:0人 关注:0人

问题描述:

参考H3C 安全产品 RESTful二次开发指南(V7)-6W100-整本手册  报404  请问这个手册对接API 需要防火墙后台如何配置API权限,/api/v1/login 不行 一直返回401
通过终端登录防火墙配置

restful https enable //HTTPS方式

local-user apiuser class manage
password simple xxx
service-type web
authorization-attribute user-role network-admin
quit

但是命令 display restful status 没这个命令 不知为何
另外测试接口

curl -k -X GET "https://192.168.1.1/api/v1/Device/DeviceInfo" \ -H "Authorization: Basic YWRtaW46MTIzNDU2" \ -H "Content-Type: application/json"

curl -k -X GET "https://192.168.1.1/api/aaa/login -H "Content-Type: application/json" -d '{"username":"admin","password":"123456"}' 均返回401  unauthorized

3 个回答
粉丝:15人 关注:9人

排查步骤&关键配置
1. 确认版本支持:display restful status无命令说明当前防火墙版本不支持标准RESTful API(仅V7较新版本支持,老版本需升级到对应支持RESTful的固件,可在官网/新华三论坛查对应机型的RESTful支持版本)。
2. 替代接口验证:老版本V7防火墙用HTTP/HTTPS的XML/JSON API,登录接口为/cgi-bin/Login,而非/api/v1/login。
3. 权限配置补全:

开启HTTPS服务(RESTful依赖)
ip https enable
本地用户确保web+terminal权限(部分版本需绑定)
local-user apiuser class manage
password simple xxx
service-type web https
authorization-attribute user-role network-admin
quit

4. 接口测试修正:
若为新版RESTful:先POST /api/v1/login(body带用户名密码)获取token,后续请求头带X-Auth-Token,而非Basic认证。
若为老版API:用/cgi-bin/Login POST登录,获取session后再调用资源接口。
5. 401排查:检查用户名密码、用户角色、service-type是否包含web/https,是否有IP登录限制(display local-user apiuser)。

老师 构建了api账户 api_anguan 查看 2. 账号 **api_anguan**(API 对接账号,问题账号) - Device management user api_anguan - State:Active - **Service type:HTTPS** - User group:system - Work directory:flash: - User role list:`network‑admin, network‑operator` display current-configuration | include restful,可以看到 restful https enable 但是 接口依旧 401

zhiliao_urQgOd 发表时间:2小时前 更多>>

老师 构建了api账户 api_anguan 查看 2. 账号 **api_anguan**(API 对接账号,问题账号) - Device management user api_anguan - State:Active - **Service type:HTTPS** - User group:system - Work directory:flash: - User role list:`network‑admin, network‑operator` display current-configuration | include restful,可以看到 restful https enable 但是 接口依旧 401

zhiliao_urQgOd 发表时间:2小时前
粉丝:31人 关注:1人

根据你提供的信息和返回的 401 Unauthorized 错误,问题主要出在 RESTful API 的配置和调用方式上。display restful status 命令不存在也是正常的,因为 Comware V7 系统中查看 RESTful 服务状态通常使用 display current-configuration | include restful

请按照以下步骤重新配置和调用。

第一步:在防火墙上开启 RESTful 服务

通过 Console 或 SSH 登录防火墙,执行以下命令:

text
<H3C> system-view [H3C] restful http enable [H3C] restful https enable

restful https enable 命令用于开启 HTTPS 方式的 RESTful API 服务。如需修改端口,可使用 restful https port <端口号>

第二步:创建或修改用于 API 调用的本地用户

text
[H3C] local-user apiuser class manage [H3C-luser-manage-apiuser] password simple <你的密码> [H3C-luser-manage-apiuser] service-type http [H3C-luser-manage-apiuser] authorization-attribute user-role network-admin [H3C-luser-manage-apiuser] quit [H3C] save

关键在于 service-type http,这会使该用户获得通过 HTTP/HTTPS 进行 API 访问的权限。角色 network-admin 赋予了最高管理权限。

第三步:验证服务是否开启

执行 display current-configuration | include restful,如果看到 restful https enable 等输出,说明服务已开启。

老师 构建了api账户 api_anguan 查看 2. 账号 **api_anguan**(API 对接账号,问题账号) - Device management user api_anguan - State:Active - **Service type:HTTPS** - User group:system - Work directory:flash: - User role list:`network‑admin, network‑operator` display current-configuration | include restful,可以看到 restful https enable 但是 接口依旧 401

zhiliao_urQgOd 发表时间:2小时前 更多>>

老师 构建了api账户 api_anguan 查看 2. 账号 **api_anguan**(API 对接账号,问题账号) - Device management user api_anguan - State:Active - **Service type:HTTPS** - User group:system - Work directory:flash: - User role list:`network‑admin, network‑operator` display current-configuration | include restful,可以看到 restful https enable 但是 接口依旧 401

zhiliao_urQgOd 发表时间:2小时前
粉丝:33人 关注:2人

H3C SecPath V7 防火墙 RESTful API 登录 401,display restful status命令不存在问题

现象:

  1. 按手册敲restful https enable该命令在新版本防火墙已经改名,旧文档 6W100 手册接口路径、命令和当前版本不匹配
  2. display restful status命令不存在;
  3. /api/v1/login/api/aaa/login返回 401 Unauthorized;Basic Auth 直接调用设备信息接口同样 401。

1、核心根因

1)命令变更:新版本 SecPath 防火墙,不再使用restful https enable;RESTful 能力是跟随ip https enable HTTPS 服务一起启用,没有独立 restful 视图,因此display restful status这条命令被移除,旧手册是老版本设备文档。

只要 HTTPS Web 管理服务正常能浏览器登录防火墙,RESTful API 服务就已经开启,不需要额外单独 restful 命令。

2)接口路径版本大坑(高频踩坑)

  • 老版本:POST /api/v1/login 返回 token
  • 新版本 F1000‑AK/F5000 系列新版固件:登录接口路径改为 /api/rest/login,不是 /api/v1/login、不是 /api/aaa/login,错误路径返回 404/401。

你 curl 写/api/aaa/login是错误路径。

3)账号配置缺陷:local-user 必须配置 service-type https,只配 web 不够;API 复用 HTTPS Web 账号体系。 4)接口所属 zone 必须放通 service-manage https permit,接口没有放通 https 管理会直接 401/403。 5)防火墙 RESTful 不支持 HTTP Basic Auth 直接访问业务接口,必须先 POST 登录获取 token,后续请求携带 token 头部,直接 Basic 调用 DeviceInfo 接口一定 401

完整正确 CLI 配置(Console 执行)

system‑view #1、开启HTTPS服务(API依附HTTPS,没有独立restful开关) ip https enable #2、接口放通https管理权限,接口加入安全域 interface GigabitEthernet1/0/0 #你的管理接口 service‑manage enable service‑manage https permit quit firewall zone trust add interface GigabitEthernet1/0/0 quit #3、API管理账号配置,必须带service‑type https local‑user apiuser class manage password irreversible‑cipher Test@123456 service‑type ssh terminal https #必须有https!! authorization‑attribute user‑role network‑admin quit #4、可选:HTTPS限制访问源IP(如果配置ACL,需要放行测试主机IP) ip https acl 3000 acl advanced 3000 rule permit ip source 192.168.1.0 0.0.0.255

验证:浏览器可以正常使用 apiuser 账号登录防火墙 Web 页面,代表账号、HTTPS 服务全部正常。浏览器能登录,API 才有可能调通。

curl 正确调用示例

第一步:POST 获取 token(登录接口)

curl -k -X POST "https://192.168.1.1/api/rest/login" \ -H "Content-Type:application/json" \ -d '{"username":"apiuser","password":"Test@123456"}'

成功返回 {"token":"xxxxxxxxxxxx"}

第二步:业务接口携带 token 访问,不能用 Basic Auth

curl -k -X GET "https://192.168.1.1/api/rest/Device/DeviceInfo" \ -H "Authorization:Bearer xxxxxxxxxxxxx(上面拿到的token)"

排错清单,按顺序核对

  1. ✅浏览器使用 apiuser 账号能否正常登录防火墙 Web?浏览器登录失败,API 一定 401,优先解决 Web 登录问题
  2. ✅管理接口下配置service‑manage https permit,接口加入对应安全域。
  3. ✅local-user 账号service‑type https必须配置,只写 web 不行。
  4. ✅确认登录 url:/api/rest/login抛弃旧手册 /api/v1/login、/api/aaa/login
  5. ✅不要直接 Basic Auth 调用业务接口,必须先拿 Bearer token。
  6. ✅如果配置ip https acl,确认你的 curl 客户端 IP 被 ACL 允许。
  7. ✅密码控制策略,账号不能被锁定、密码不能过期。

常见错误现象对照

  1. display restful status命令找不到 → 新版本防火墙无该命令,API 由 ip https enable 统一控制。
  2. POST /api/v1/login返回 404 → 接口路径过时,改用/api/rest/login
  3. POST 登录接口返回 401:账号密码错误、缺少 service‑type https、接口没有 service‑manage https permit、ACL 拦截、账号被密码控制锁定。
  4. Basic Auth 直接 GET 设备信息接口返回 401:该防火墙 RESTful不支持 Basic 认证访问业务接口,必须 token Bearer 鉴权

补充说明

旧手册《H3C 安全产品 RESTful 二次开发指南 (V7)-6W100》是早期版本文档,接口 URI、命令已经和当前新版防火墙固件不兼容,以设备 Web 页面帮助文档内的 RESTful 在线 API 文档为准;访问 https://防火墙IP/api/rest/doc 打开在线 swagger 接口文档,直接复制示例。

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明