>Objective
NifiListenHTTP
/HandleHTTPRequest
处理器不支持基本身份验证,因此正如此答案所建议的那样 - 您可以使用带有RouteOnAttribute的ListenHTTP
/HandleHTTPRequest
处理器来验证用户名和密码。就我而言,Nifi接受纯HTTP请求,因为Nifi隐藏在Api Gateway SSL终止下。如果准确地说,Nifi会获得HTTP授权标头,由于基本身份验证客户端协议,它等于base64(username + ':' + password)
问题
如果 Nifi 以纯文本形式获得授权 HTTP 标头,那么将凭据作为敏感参数存储在 Nifi 端是否有意义?
如果是,如何根据预期的对安全地验证 HTTP 请求凭据?
如果没有,是否有其他安全的方法可以在Nifi端存储密码并实现基本身份验证?
A. 问题
我必须将预期的用户名-密码对存储在参数上下文敏感参数中。这意味着我无法从UpdateAttribute
或RouteOnAttribute
处理器访问这些参数 = 我不知道如何验证/授权请求。
当您使用基本身份验证向HandleHttpRequest
处理器发送请求时,您可以访问http.headers.Authorization
属性。看起来username:password
Basic dXNlcm5hbWU6cGFzc3dvcmQ=
. 因此,您可以使用RouteOnAttribute
此值是否与您的凭据匹配。您还可以从数据库中获取值进行比较。 您应该在HandleHttpResponse
处理器之前评估该值。