iDRAC HTTP 基本身份验证更改
Summary: 从 iDRAC9 7.30.10.50 和 iDRAC10 1.30.10.50 开始,HTTP 基本身份验证默认设置已更改为未通告(以前的默认设置已启用)。进行这些更改是为了提高凭据安全性并减少 Redfish 服务中 HTTP 基本身份验证的意外暴露。
Symptoms
从通用客户端访问 Redfish 资源时,原始请求(例如网页浏览器)未提供身份验证,将返回以下错误,并且没有自动提示输入凭据。
{
"error": {
"code": "Base.1.8.GeneralError",
"message": "A general error has occurred. See ExtendedInfo for more information.",
"@Message.ExtendedInfo": [
{
"@odata.type": "#Message.v1_1_0.Message",
"MessageId": "Base.1.8.AccessDenied",
"Message": "The authentication credentials included with this request are missing or invalid.",
"MessageArgs": [],
"MessageArgs@odata.count": 0,
"RelatedProperties":[],
"RelatedProperties@odata.count": 0,
"Severity": "Critical",
"Resolution": "Attempt to ensure that the URI is correct and that the service has the appropriate credentials."
}
]
}
}
Cause
新行为
HTTPBasicAuth 默认值设置为 未通告。如果发送的初始 HTTP 请求没有身份验证标头,则服务不会在 WWW-Authenticate 响应标头中通告基本身份验证。这可防止自动提示或由通用客户端(例如浏览器)进行访问。
< HTTP/1.1 401 Unauthorized < Date: Mon, 09 Mar 2026 17:21:26 GMT < Server: Apache
传统行为
而 HTTPBasicAuth 默认值设置为 Enabled。如果发送的初始 HTTP 请求没有身份验证标头,则服务会在 WWW-Authenticate 响应标头中通告基本身份验证。这允许自动提示或由通用客户端(例如浏览器)访问。
< HTTP/1.1 401 Unauthorized < Date: Mon, 09 Mar 2026 17:21:57 GMT < Server: Apache < WWW-Authenticate: Basic realm="RedfishService"
Resolution
从 iDRAC9 7.30.10.50 和 iDRAC10 1.30.10.50 开始,HTTP 基本身份验证默认设置已更改为未通告(以前的默认设置已启用)。进行这些更改是为了提高凭据安全性并减少 Redfish 服务中 HTTP 基本身份验证的意外暴露。
Redfish AccountService、DMTF 属性名称中引入了用于 HTTP 基本身份验证处理的新可配置控件 HTTPBasicAuth。此新属性支持三个可能的值:
未公布 (新的默认设置):
- 该服务不会在 WWW-Authenticate 响应标头中通告 basic,这会阻止自动提示或通用客户端(例如浏览器)的访问。
已启用:
- HTTP 基本身份验证已启用,并使用 WWW-Authenticate: basic 标头对 401 未经授权的响应进行显式通告。
已禁用:
- Redfish 服务已完全禁用 HTTP 基本身份验证,执行 Redfish 操作需要其他方法,例如 X-auth 令牌会话(推荐)。
HTTP 基本身份验证设置可以从 Redfish、Web UI 和 RACADM iDRAC 界面进行配置。
Redfish: - PATCH DMTF property HTTPBasicAuth under AccountService - PATCH OEM attribute Redfish.BasicAuthState under DellAttributes RACADM: - Set OEM attribute iDRAC.Redfish.BasicAuthState GUI: - iDRAC Settings -> Services -> Redfish -> HTTP Basic Authentication
Additional Information
当 BasicAuthState 设置为“未播发”时,客户端必须在初始请求上显式发送身份验证标头。例如, ansible.builtin.uri 模块必须指定
force_basic_auth: true 以便在第一个请求上发送基本身份验证标头。