You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Redfish API在iDRAC 9创建用户账户失败求助

iDRAC 9(固件5.10.30.00)Redfish API创建用户返回405 Method Not Allowed

问题描述

我在固件版本为5.10.30.00的iDRAC 9上尝试通过Redfish API创建用户账户,使用的Python代码如下:

payload = {
        "UserName": new_user_name,
        "Password": new_user_password,
        "RoleId": "Administrator",
        "Enabled": True
    }

url = f"https://{idrac_ip}/redfish/v1/AccountService/Accounts"
headers = {'Content-Type': 'application/json'}
response = requests.post(url, auth=HTTPBasicAuth(admin_username, admin_password), headers=headers, data=json.dumps(payload), verify=False)

但收到405错误响应:

{
  "statusCode": 405,
  "body": "\"Failed to create user. Response: {\\\"error\\\":{\\\"@Message.ExtendedInfo\\\":[{\\\"Message\\\":\\\"Unable to run the method because the requested HTTP method is not allowed.\\\",\\\"MessageArgs\\\":[],\\\"MessageArgs@odata.count\\\":0,\\\"MessageId\\\":\\\"IDRAC.2.5.SYS402\\\",\\\"RelatedProperties\\\":[],\\\"RelatedProperties@odata.count\\\":0,\\\"Resolution\\\":\\\"Enter a valid HTTP method and retry the operation. For information about valid methods, see the Redfish Users Guide available on the support site.\\\",\\\"Severity\\\":\\\"Informational\\\"}],\\\"code\\\":\\\"Base.1.8.GeneralError\\\",\\\"message\\\":\\\"A general error has occurred. See ExtendedInfo for more information\\\"}}\""
}

查询确认该接口允许的HTTP方法包括GET、HEAD、POST、OPTIONS,且已完成以下排查:

  • Redfish功能已启用
  • 使用具有管理员权限的root账户操作,日志显示root账户通过Redfish正常访问iDRAC
  • 新账户密码策略已设为0(无限制)
  • 尝试了即将弃用的旧接口https://{idrac_ip}/redfish/v1/Managers/iDRAC.Embedded.1/Accounts,得到相同错误
  • 已查阅Redfish官方Schema文档

目前仍未找到问题根源,寻求技术解决方案。


可能的原因及解决方案

1. 检查用户账户数量是否达上限

iDRAC 9本地用户账户存在数量上限(通常最多16个),若当前已创建用户数达上限,POST请求会被拒绝,可能返回405这类误导性错误。

  • 验证方式:发送GET请求到/redfish/v1/AccountService/Accounts,统计返回的用户列表数量。
  • 解决方法:删除闲置用户后重新尝试创建。

2. 确认RoleId的正确性

部分iDRAC固件版本对角色ID的标识符有要求,比如需使用iDRAC.Administrator而非Administrator,且区分大小写。

  • 验证方式:发送GET请求到/redfish/v1/AccountService/Roles,获取所有可用角色的Id值,确保payload中的RoleId与返回值完全匹配。
  • 解决方法:替换payload中的RoleId为实际存在的角色ID。

3. 检查请求payload的完整性

部分iDRAC固件版本可能要求额外必填字段,比如OEM扩展属性(若启用了特定功能)。

  • 验证方式:对照iDRAC官方Redfish文档中AccountService/Accounts的POST请求要求,检查payload是否缺失必填字段。
  • 解决方法:补充必填字段,或简化payload只保留官方明确要求的核心字段(如UserName、Password、Enabled)。

4. 尝试固件版本适配的特殊请求方式

iDRAC 9 5.10.30.00版本可能存在Redfish API的POST请求处理BUG,可尝试以下两种方案:

  • 先发送POST请求创建空用户(仅包含UserName和Enabled: True),再发送PATCH请求更新密码和角色;
  • 使用PUT请求直接指定未被占用的用户ID创建,示例路径:/redfish/v1/AccountService/Accounts/10(10为未使用的用户ID)。

5. 检查Redfish细粒度权限配置

即使使用root账户,也可能存在Redfish API的细粒度权限限制,需确认是否允许通过Redfish创建用户。

  • 验证方式:登录iDRAC Web控制台,进入iDRAC 设置 > 用户 > 用户组,检查root所在组的Redfish权限是否包含"配置用户"项。
  • 解决方法:启用对应权限后重新尝试。

内容的提问来源于stack exchange,提问作者Tym Trzaskalski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 12:07:42