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



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

我创建了C#web应用程序,并作为安全连接(https(托管。

我需要在没有授权令牌的情况下使用其REST API服务访问NiFi组件。将C#web应用程序证书添加到NiFi信任库中,并在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; 

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

请检查您是否使用了正确的用户名,并确认它实际上已被授权访问。

(当然,要确保你不只是传递字符串"username"(

最新更新