2017-01-10 77 views
3

我有一個現有的Datastax Cassandra設置工作。我們只是向系統添加了身份驗證,現在我們可以使用我們的AD帳戶登錄。這非常好,當然有用。但是,應用程序需要使用硬編碼的用戶名/密碼才能連接。訪問cassandra沒有硬編碼的用戶名密碼

在SQL Server中,我們能夠設置用戶運行服務,然後它將連接並通過AD工作。然而在卡桑德拉卻不一樣。

如果我不想在我的app.config文件中包含用戶名和密碼,我的選項是什麼?

+1

添加評論,因爲我不能提供一個完整答案,但由於您使用的是Active Directory,因此可以使用DataStax Enteprise的Kerberos身份驗證。如果運行DSE進程的用戶使用Kerberos進行身份驗證(爲您在其緩存中進行身份驗證的用戶提供了憑單),則可以使用Kerberos連接到DSE,而無需爲應用程序提供用戶名或密碼。 –

+1

@AndyTolbert正確的Kerberos是一個很好的選擇,DSE也支持通過LDAP進行身份驗證,無論是使用Active Directory還是其他版本。我在w.r.t下面添加了一個答案。 DSE5.0起。謝謝! – markc

+0

偉大的答案@markc,這將是偉大的工作! –

回答

2

您可以通過LDAP和DSE(Datastax Enterprise)使用身份驗證,因此身份驗證階段是使用LDAP完成的,而不是您目前使用的DSE中的內部身份驗證。請注意,我的評論適用於DSE5.0以上版本,但您可以使用早期版本的DSE從4.6開始的LDAP認證。

文檔(下面的鏈接)涵蓋了這一點。基本步驟如下:

  1. 配置在cassandra.yaml認證使用DSE認證

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

  2. 創建卡桑德拉內部角色映射到LDAP組(S)在您的LDAP服務器中使用CREATE ROLE命令

  3. 確保您需要使用的所有用戶都映射到相關LDAP組(您的LDAP配置的一部分)

  4. 配置您的dse.yaml有你的LDAP服務器

  5. 正確的設置重新啓動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})

相關問題