HTTP 401 状态代码(未授权)
401 未授权响应状态代码指示客户端请求尚未完成,因为该请求缺少所请求资源的有效身份验证凭证。此状态代码与 HTTP WWW-Authenticate 响应标头一起发送,其中包含有关客户端在提示用户输入身份验证凭证后如何再次请求资源的信息。有关更多信息,请参阅 401 Unauthorized
在 CloudFront 中,如果源需要使用 Authorization 标头来对请求进行身份验证,则 CloudFront 需要将 Authorization 标头转发给源,以避免出现 401 未授权错误。当 CloudFront 转发查看器请求到您的源时,默认情况下,CloudFront 会删除一些查看器标头,包括 Authorization 标头。为了确保您的源始终能接收到源请求中的 Authorization 标头,您可以选择以下几种方式:
-
使用缓存策略将
Authorization标头添加到缓存键中。源请求会自动包含缓存键中的所有标头。有关更多信息,请参阅 使用策略来控制缓存键。 -
在源请求策略中单独添加
Authorization标头。有关更多信息,请参阅 使用策略来控制源请求。 -
使用将所有查看器标头转发到源的源请求策略。针对此用例,CloudFront 提供了名为 Managed-AllViewer 的托管源请求策略。有关更多信息,请参阅 使用托管式源请求策略。
重要
如果您将 Authorization 标头转发到源而未将其包含在缓存键中,请确保源不依赖于 Authorization 标头来对缓存内容进行访问控制。当 Authorization 标头不是缓存键的一部分时,CloudFront 可以向已授权和未经授权的查看器提供相同的缓存响应。要么使用缓存策略将 Authorization 标头包含在缓存键中,要么对需要源端授权处理的源完全禁用缓存。
有关更多信息,请参阅如何配置 CloudFront 以将授权标头转发至源?