我有一个正常运行的Datastax Cassandra设置。我们刚刚向系统添加了身份验证,现在我们可以使用AD帐户登录。这非常好,肯定有效。但是,应用程序需要使用硬编码的用户名/密码才能连接。
在SQL Server中,我们能够设置用户来运行服务,然后它将连接并通过AD工作。然而在Cassandra中它并不相同。
如果我不想在我的app.config文件中包含用户名,特别是密码,我有哪些选择?
答案 0 :(得分:2)
您可以通过LDAP使用DSE(Datastax Enterprise)进行身份验证,因此身份验证阶段是使用LDAP完成的,而不是您目前使用的DSE中的内部身份验证。请注意,此处的注释适用于DSE5.0以上版本,但您可以在4.6以后使用早期版本的DSE进行LDAP身份验证。
文档(下面的链接)涵盖了这一点。基本步骤如下:
在cassandra.yaml
中配置身份验证器以使用DSE身份验证器
authenticator: com.datastax.bdp.cassandra.auth.DseAuthenticator
在cassandra中创建一个内部角色,使用CREATE ROLE
命令
确保您需要使用的所有用户都映射到相关的LDAP组(LDAP配置的一部分)
配置dse.yaml
以获得LDAP服务器的正确设置
重启DSE流程以使设置生效
以下文档提供了一些很好的示例和背景信息:
https://docs.datastax.com/en/latest-dse/datastax_enterprise/unifiedAuth/unifiedAuthConfig.html
https://docs.datastax.com/en/latest-dse/datastax_enterprise/sec/authLdapConfig.html
注意:在配置dse.yaml
时,请注意有关user_search_filter
的文档中的注释:
使用Active Directory时,将过滤器设置为
(sAMAccountName={0})