Apache Nifi 的 LDAP 身份验证不起作用
LDAP authentication with Apache Nifi not working
我已经在这个问题上工作了很长一段时间,我想得到你们对我面临的问题的解答和建议。我正在尝试在我公司网络中的 VM 上获取我的 Nifi 独立实例,使用 login-identity-providers.xml 中的 ldap-provider 进行身份验证。我输入了除信任库和密钥库之外的所有必需值,因为公司有 LDAP 而不是 LDAPS。所以,我想我不需要那些证书。我也在 authorizers.xml 中设置了初始管理员身份。当然,还要设置 https 端口和主机 (0.0.0.0)。但是,当我尝试 运行 并使用 url 从浏览器调用服务器时,无法访问 站点 , ERR_CONNECTION_REFUSED 弹出。基本上,无法连接到服务器。当我通过 ldapsearch.
查询时,我已经检查了 DN、LDAP url 和其他属性是否正确并且正常工作
所以,是不是因为我没有在配置中指定truststore和keystore?如果是这样,我是否需要为每个希望访问 Nifi 的客户端手动创建这些证书。我认为 LDAP 证书足以让一个人向 Nifi 进行身份验证。请告诉我如何为员工通过 LDAP 使用 Nifi 获取信任库、服务器和客户端证书的 CA。
我的 ldap-provider 看起来像这样(经过清理):
<provider>
<identifier>ldap-provider</identifier>
<class>org.apache.nifi.ldap.LdapProvider</class>
<property name="Authentication Strategy">SIMPLE</property>
<property name="Manager DN">cn=user-name,ou=Accounts,dc=domain,dc=company-name,dc=com</property>
<property name="Manager Password">My-account-password</property>
<property name="TLS - Keystore"></property>
<property name="TLS - Keystore Password"></property>
<property name="TLS - Keystore Type"></property>
<property name="TLS - Truststore"></property>
<property name="TLS - Truststore Password"></property>
<property name="TLS - Truststore Type"></property>
<property name="TLS - Client Auth"></property>
<property name="TLS - Protocol">TLS</property>
<property name="TLS - Shutdown Gracefully"></property>
<property name="Referral Strategy">IGNORE</property>
<property name="Connect Timeout">10 secs</property>
<property name="Read Timeout">10 secs</property>
<property name="Url">the-ldap-url-of-company</property>
<property name="User Search Base">cn=Users,ou=Accounts,dc=corp,dc=company-name,dc=com</property>
<property name="User Search Filter">sAMAccountName={0}</property>
<property name="Authentication Expiration">12 hours</property>
</provider>
Nifi 版本 - 1.0.0
运行 在 Ubuntu 可信虚拟机中。
使用 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 配置将发挥作用。
我已经在这个问题上工作了很长一段时间,我想得到你们对我面临的问题的解答和建议。我正在尝试在我公司网络中的 VM 上获取我的 Nifi 独立实例,使用 login-identity-providers.xml 中的 ldap-provider 进行身份验证。我输入了除信任库和密钥库之外的所有必需值,因为公司有 LDAP 而不是 LDAPS。所以,我想我不需要那些证书。我也在 authorizers.xml 中设置了初始管理员身份。当然,还要设置 https 端口和主机 (0.0.0.0)。但是,当我尝试 运行 并使用 url 从浏览器调用服务器时,无法访问 站点 , ERR_CONNECTION_REFUSED 弹出。基本上,无法连接到服务器。当我通过 ldapsearch.
查询时,我已经检查了 DN、LDAP url 和其他属性是否正确并且正常工作所以,是不是因为我没有在配置中指定truststore和keystore?如果是这样,我是否需要为每个希望访问 Nifi 的客户端手动创建这些证书。我认为 LDAP 证书足以让一个人向 Nifi 进行身份验证。请告诉我如何为员工通过 LDAP 使用 Nifi 获取信任库、服务器和客户端证书的 CA。
我的 ldap-provider 看起来像这样(经过清理):
<provider>
<identifier>ldap-provider</identifier>
<class>org.apache.nifi.ldap.LdapProvider</class>
<property name="Authentication Strategy">SIMPLE</property>
<property name="Manager DN">cn=user-name,ou=Accounts,dc=domain,dc=company-name,dc=com</property>
<property name="Manager Password">My-account-password</property>
<property name="TLS - Keystore"></property>
<property name="TLS - Keystore Password"></property>
<property name="TLS - Keystore Type"></property>
<property name="TLS - Truststore"></property>
<property name="TLS - Truststore Password"></property>
<property name="TLS - Truststore Type"></property>
<property name="TLS - Client Auth"></property>
<property name="TLS - Protocol">TLS</property>
<property name="TLS - Shutdown Gracefully"></property>
<property name="Referral Strategy">IGNORE</property>
<property name="Connect Timeout">10 secs</property>
<property name="Read Timeout">10 secs</property>
<property name="Url">the-ldap-url-of-company</property>
<property name="User Search Base">cn=Users,ou=Accounts,dc=corp,dc=company-name,dc=com</property>
<property name="User Search Filter">sAMAccountName={0}</property>
<property name="Authentication Expiration">12 hours</property>
</provider>
Nifi 版本 - 1.0.0 运行 在 Ubuntu 可信虚拟机中。
使用 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 配置将发挥作用。