如何使用代理用户请求访问NiFi

Nij*_*han 5 c# apache-nifi

我想访问NiFi并通过使用代理用户请求在C#中创建的外部Web应用程序执行一些操作.为了那个原因,

我创建了C#Web应用程序并作为安全连接(https)托管.

我需要使用其REST API服务访问NiFi组件而无需授权令牌.在NiFi信任库中添加了C#Web应用程序证书,并在NiFi中添加了用户(CN = machineName)的证书名称.此外,为新添加的用户添加了"代理用户请求"策略.

在C#Web应用程序中,在请求NiFi API时在标题中添加了"X-ProxiedEntitiesChain = <username>".但它会在响应中返回"未知用户"错误.请在下面找到示例代码,

var httpWebReq=(HttpWebRequest)WebRequest.Create("https://testhost:8080/nifi-api/access");
httpWebReq.Headers["X-ProxiedEntitiesChain"] = "<username>";
httpWebReq.Method = "GET";
var response = (HttpWebResponse)httpWebReq.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
return responseString; 
Run Code Online (Sandbox Code Playgroud)

Den*_*din 1

根据可用信息,最可能的问题是您没有使用经过正确授权的用户。

检查您使用的用户名是否正确,并确认该用户名确实已获得访问授权。

(当然,请确保您不只是传递字符串“用户名”)