Nifi LDAP 组成员对用户名区分大小写
Nifi LDAP Group Membership Case Sensitive on username
因此,在查看有关主题的 Pierre Villards 指南(特别是 this one)后,我设法获得了一个带有 LDAP 身份验证和组配置的 Secure Nifi 1.9.2 集群。在大多数情况下,它似乎工作得很好,但我们有一些用户在 AD 中使用首字母大写的名字。
他们使用全部小写的用户名登录,这有效,但是他们随后会看到 Unknown user with identity 'nathan.english'. Contact the system administrator.
但是如果他们使用 Nathan.English
登录,因为用户名在 AD 中,组映射是使用正确的策略授予他们访问权限。
通读系统 administration guide 我发现应该在 authorizers.xml 中设置的 Group Membership - Enforce Case Sensitivity
并且我在整个集群中将其设置为 false。但即使将此设置为 false,当用户名为小写且与 AD 中的不完全相同时,它仍然会失败。我对这个属性的理解有误吗?
下面是 authorizers.xml
中的 LDAP 用户组提供程序配置
<userGroupProvider>
<identifier>ldap-user-group-provider</identifier>
<class>org.apache.nifi.ldap.tenants.LdapUserGroupProvider</class>
<property name="Authentication Strategy">SIMPLE</property>
<property name="Manager DN"><manager_dn></property>
<property name="Manager Password"><manager_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"></property>
<property name="TLS - Shutdown Gracefully"></property>
<property name="Referral Strategy">FOLLOW</property>
<property name="Connect Timeout">10 secs</property>
<property name="Read Timeout">10 secs</property>
<property name="Url">ldap://<hostname>:389</property>
<property name="Page Size"></property>
<property name="Sync Interval">5 mins</property>
<property name="Group Membership - Enforce Case Sensitivity">false</property>
<property name="User Search Base">DC=<domain>,DC=net</property>
<property name="User Object Class">person</property>
<property name="User Search Scope">SUBTREE</property>
<property name="User Search Filter"></property>
<property name="User Identity Attribute">sAMAccountName</property>
<property name="User Group Name Attribute"></property>
<property name="User Group Name Attribute - Referenced Group Attribute"></property>
<property name="Group Search Base">DC=<domain>,DC=net</property>
<property name="Group Object Class">group</property>
<property name="Group Search Scope">SUBTREE</property>
<property name="Group Search Filter"></property>
<property name="Group Name Attribute">cn</property>
<property name="Group Member Attribute">member</property>
<property name="Group Member Attribute - Referenced User Attribute"></property>
</userGroupProvider>
在 1.10.0 中添加了 "Enforce Case Sensitivity" 的 属性:
因此,在查看有关主题的 Pierre Villards 指南(特别是 this one)后,我设法获得了一个带有 LDAP 身份验证和组配置的 Secure Nifi 1.9.2 集群。在大多数情况下,它似乎工作得很好,但我们有一些用户在 AD 中使用首字母大写的名字。
他们使用全部小写的用户名登录,这有效,但是他们随后会看到 Unknown user with identity 'nathan.english'. Contact the system administrator.
但是如果他们使用 Nathan.English
登录,因为用户名在 AD 中,组映射是使用正确的策略授予他们访问权限。
通读系统 administration guide 我发现应该在 authorizers.xml 中设置的 Group Membership - Enforce Case Sensitivity
并且我在整个集群中将其设置为 false。但即使将此设置为 false,当用户名为小写且与 AD 中的不完全相同时,它仍然会失败。我对这个属性的理解有误吗?
下面是 authorizers.xml
中的 LDAP 用户组提供程序配置<userGroupProvider>
<identifier>ldap-user-group-provider</identifier>
<class>org.apache.nifi.ldap.tenants.LdapUserGroupProvider</class>
<property name="Authentication Strategy">SIMPLE</property>
<property name="Manager DN"><manager_dn></property>
<property name="Manager Password"><manager_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"></property>
<property name="TLS - Shutdown Gracefully"></property>
<property name="Referral Strategy">FOLLOW</property>
<property name="Connect Timeout">10 secs</property>
<property name="Read Timeout">10 secs</property>
<property name="Url">ldap://<hostname>:389</property>
<property name="Page Size"></property>
<property name="Sync Interval">5 mins</property>
<property name="Group Membership - Enforce Case Sensitivity">false</property>
<property name="User Search Base">DC=<domain>,DC=net</property>
<property name="User Object Class">person</property>
<property name="User Search Scope">SUBTREE</property>
<property name="User Search Filter"></property>
<property name="User Identity Attribute">sAMAccountName</property>
<property name="User Group Name Attribute"></property>
<property name="User Group Name Attribute - Referenced Group Attribute"></property>
<property name="Group Search Base">DC=<domain>,DC=net</property>
<property name="Group Object Class">group</property>
<property name="Group Search Scope">SUBTREE</property>
<property name="Group Search Filter"></property>
<property name="Group Name Attribute">cn</property>
<property name="Group Member Attribute">member</property>
<property name="Group Member Attribute - Referenced User Attribute"></property>
</userGroupProvider>
在 1.10.0 中添加了 "Enforce Case Sensitivity" 的 属性: