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

时间:2018-07-10 09:58:26

标签: c# apache-nifi

我想访问NiFi并使用代理用户请求通过C#中创建的外部Web应用程序执行一些操作。为此,

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

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

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

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; 

1 个答案:

答案 0 :(得分:0)

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

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

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