2015-06-03 49 views
0

我想添加基於LDAP的授權給Kibana 3而不使用Shield或其他第三方工具。Apache的httpd重寫規則使用LDAP用戶組

鑑於指數名稱是logstash-*,我原來的想法是利用在httpd的重寫規則,改寫kibana請求轉換成logstash-[ldap-usergroup]-*,並在elasticsearch準備一組指數的別名,與不同的過濾器,從而在LDAP實現授權用戶組級別。

我目前面臨的問題是如何在認證模塊後獲得usergroup值並將其用於重寫?

假設我有類似

<Location /> 
AuthLDAPBindDN "CN=username, CN=Users, DC=domain, DC=com" 
AuthLDAPBindPassword "Password for Kerberos auth user" 
AuthLDAPURL "ldap(or ldaps)://fqdns or ip of ldap/adserver/CN=users,DC=domain,DC=com" 
AuthType Basic 
AuthBasicProvider ldap 
AuthName "some text for login prompt" 
require valid-user 
</Location> 
RewriteCond %{LA-U:REMOTE_USER} !^$ 
RewriteRules /es/(.*)logstash-([0-9]+.[0-9]+.[0-9]+)(.*) /es/$1%{LA-U:REMOTE_USER}-$2$3 [N] 

即。我如何確定而不是用戶名,我可以在重寫之前有一個用戶組名稱值?

借用這裏的一些代碼:感謝他們 https://gist.github.com/kakbit/6192679 http://elasticsearch-users.115913.n3.nabble.com/LDAP-authentication-in-Kibana-td4057946.html

回答

0

我想,如果傻冒使用mod_authnz_ldap可以使用指令 - "Require ldap-group"和安全有關的一個指數特定Kibana。
Here's the link for more details -
希望這會有所幫助。

+0

謝謝,但這不是我的問題的答案。我已經說過,我試圖在過濾器中使用'index alias'來隔離ldap用戶,以便根據他們的組來查看不同的elasticsearch文檔。 'Require ldap-group'只對組用戶進行身份驗證,但不能將該組名稱作爲變量來進一步幫助URL重寫(我在尋求幫助) –

0

我實際上得到了這個OP的工作描述,不完美,但工作。訣竅是在uri中使用不同的子域來按用戶組明確區分用戶。即。有/kibana/finance,/kibana/hr,/kibana/management等。這些金融,人力資源或管理被映射到特定的LDAP組,與重寫,我可以使用%{REQUEST_URI}變量做URL重寫。