无法使用 Redfish API 在 iDRAC 9 上创建用户帐户

问题描述 投票:0回答:1

使用以下代码:

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)

我收到以下错误:

{
  "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\\\":[],\\\"[email protected]\\\":0,\\\"MessageId\\\":\\\"IDRAC.2.5.SYS402\\\",\\\"RelatedProperties\\\":[],\\\"[email protected]\\\":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\\\"}}\""
}

我能够返回允许的方法:

Allowed methods: GET,HEAD,POST,OPTIONS

不确定我在这里缺少什么,我已经确定:

  • 红鱼已启用
  • 我正在使用“root”帐户,并且它被设置为管理员
  • 日志显示“root”正在通过 Redfish 访问 iDRAC
  • 新帐户的密码策略设置为0
  • 我还尝试使用一种在未来版本中将被弃用的方法,但结果相同:url = f"https://{idrac_ip}/redfish/v1/Managers/iDRAC.Embedded.1/Accounts"
  • 我已经检查了提供的模式:https://redfish.dmtf.org/schemas/v1/

它是 iDRAC 9 固件版本 5.10.30.00。

python python-requests
1个回答
0
投票

你的帖子正是我过去几天经历的事情。 我能够使用 Postman 尝试各种可能的方式来查看对象,从而弄清楚这一点。 要创建新用户,请尝试此路径并使用 PATCH 方法:https://{idrac}/redfish/v1/AccountService/Accounts/x,其中 x 是 1 到 16 之间的任意数字(默认管理员 = 1)。 最好先查看帐户中已有的内容,否则 PATCH 方法会覆盖现有帐户。 有效负载应包含以下内容:

payload = {
"UserName": newuser,
"Password": newpassword,
"RoleId": "Administrator",  # Default role, change as needed
"Enabled": True

}

如果您想拥有更具体的权限(例如仅允许“登录”或“配置用户”),路径为 https://{idrac}/redfish/v1/Managers/iDRAC.Embedded.1/Attributes,方法是 PATCH(再次)。 有效负载为(x 代表帐户 ID)

payload = {
"Attributes":
{
    "Users.x.Privilege": 5
}

}

仅供大家一笑,这里是特殊权限的具体数字(例如登录 (1) + 配置用户 (4) = 5)。

Login 1 Configure 2 Configure Users 4 Logs 8 System Control 16 Access Virtual Console 32 Access Virtual Media 64 System Operations 128 Debug 256

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.