访问cassandra没有硬编码的用户名密码

时间:2017-01-10 18:32:10

标签: windows authentication cassandra datastax-enterprise

我有一个正常运行的Datastax Cassandra设置。我们刚刚向系统添加了身份验证,现在我们可以使用AD帐户登录。这非常好,肯定有效。但是,应用程序需要使用硬编码的用户名/密码才能连接。

在SQL Server中,我们能够设置用户来运行服务,然后它将连接并通过AD工作。然而在Cassandra中它并不相同。

如果我不想在我的app.config文件中包含用户名,特别是密码,我有哪些选择?

1 个答案:

答案 0 :(得分:2)

您可以通过LDAP使用DSE(Datastax Enterprise)进行身份验证,因此身份验证阶段是使用LDAP完成的,而不是您目前使用的DSE中的内部身份验证。请注意,此处的注释适用于DSE5.0以上版本,但您可以在4.6以后使用早期版本的DSE进行LDAP身份验证。

文档(下面的链接)涵盖了这一点。基本步骤如下:

  1. cassandra.yaml中配置身份验证器以使用DSE身份验证器

    authenticator: com.datastax.bdp.cassandra.auth.DseAuthenticator

  2. 在cassandra中创建一个内部角色,使用CREATE ROLE命令

  3. 映射到LDAP服务器中的LDAP组
  4. 确保您需要使用的所有用户都映射到相关的LDAP组(LDAP配置的一部分)

  5. 配置dse.yaml以获得LDAP服务器的正确设置

  6. 重启DSE流程以使设置生效

  7. 以下文档提供了一些很好的示例和背景信息:

    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})