Apache Nifi的LDAP身份验证无法正常工作

时间:2016-09-08 22:36:32

标签: authentication active-directory ldap apache-nifi

我一直在研究这个问题很长一段时间,我希望你们就我面临的问题给出答案和建议。我正在尝试在我的VM上获取我的Nifi独立实例,该实验室位于我公司的网络中,使用 login-identity-providers.xml 中的ldap-provider进行身份验证。我输入除了truststore和keystore之外的所有必需值,因为公司有LDAP而不是LDAPS。所以,我认为我不需要那些证书。我也在 authorizers.xml 中设置了初始管理员身份。当然,设置https端口和主机(0.0.0.0)。但是,当我尝试使用网址从浏览器运行并调用服务器时,网站无法访问 ERR_CONNECTION_REFUSED 会弹出。基本上,无法访问服务器。我通过 ldapsearch 查询时检查了DN,LDAP网址和其他属性是否正确并正常工作。

那么,是因为我没有在配置中指定信任库和密钥库吗?如果是这样,我是否需要为希望访问Nifi的每个客户端手动创建这些证书。我认为LDAP证书足以让一个人对Nifi进行身份验证。请告诉我如何获取信任库,服务器和客户端证书的CA,以便员工通过LDAP使用Nifi。

我的ldap-provider看起来像这样(擦洗):

def form_graph_structure(self):
    temp_dict = {}
    for source, dest in self.edges:
        temp_dict.setdefault(source, set()).add(dest)
    return temp_dict

Nifi版本 - 1.0.0 在Ubuntu Trusty VM中运行。

1 个答案:

答案 0 :(得分:4)

使用LDAP身份验证时,您应该访问NiFi的登录页面,您可以在其中提供用于对LDAP进行身份验证的用户名和密码。由于您甚至没有到达该页面,因此在进入LDAP部分之前还有其他问题。

要检查的一些事情......

在NiFi属性中,应使用以下属性设置活动身份提供程序:

nifi.security.user.login.identity.provider=ldap-provider

当您使用任何类型的身份验证时,必须将NiFi配置为使用https,这需要提供以下配置:

nifi.web.https.host=
nifi.web.https.port=

nifi.security.keystore=
nifi.security.keystoreType=
nifi.security.keystorePasswd=
nifi.security.keyPasswd=
nifi.security.truststore=
nifi.security.truststoreType=
nifi.security.trustStorePassword=

您在nifi.web.https.host中设置的主机名也应与用于nifi.security.keystore的证书的主机名对齐。我有一种感觉,将https主机设置为0.0.0.0并不是你想要的,但我不完全确定它是做什么的。

一旦您获得了正确的https配置,那么您应该在转到https://yourhost:post/nifi时到达登录页面,之后是您的LDAP配置将发挥作用的地方。