2015-11-17 47 views
12

Jestem całkiem nowy dla Solr i badałem to przez ostatni dzień i połowę iw końcu zwracam się tutaj.Jak mogę zabezpieczyć Solr 5.3.1 tylko strony administracyjne

Mam uruchomiony serwer Solr i kazałem mojemu administratorowi sieci skonfigurować regułę w zaporze sieciowej, abyśmy mogli uzyskać do niej dostęp w przypadku zapytań z mojej aplikacji JavaScript. To działa. Problem w tym, że strony administracyjne Solr są całkowicie otwarte na świat i próbowałem wszystkiego, co opisano w różnych wpisach, z wyjątkiem metody ZooKeeper, której tak naprawdę nie chcę wypróbować, bo nie jestem zainteresowany ustawianiem up ZooKeeper i SolrCloud.

po

referencyjny: http://muddyazian.blogspot.com/2013/11/how-to-require-password-authentication.html i inni

Co zrobiłem było modyfikować jetty.xml w /opt/solr/serwer/etc i dodał ten

<Call name="addBean"> 
    <Arg> 
    <New class="org.eclipse.jetty.security.HashLoginService"> 
     <Set name="name">Solr Admin Access</Set> 
     <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set> 
     <Set name="refreshInterval">0</Set> 
    </New> 
    </Arg> 
</Call> 

Potem dodaje się do web.xml w /opt/solr/serwer/solr-webapp/webapp/WEB-INF konfiguracja poniżej

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Solr authenticated application</web-resource-name> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>admin</role-name> 
    </auth-constraint> 
    </security-constraint> 

    <login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>Solr Admin Access</realm-name> 

    </login-config> 

następnie stworzyłem plik realm.properties zakodowane hasło według tego postu Jetty/SOLR Admin Panel Password

Solr jest teraz bezpieczna, ale wszystko jest chroniony, chcę moje zapytania być otwarty i chroniony reszta hasło. Próbowałem dodać różne wzorce adresów URL, takie jak/admin/*,/mycollection/dataimport/* itp., Ale żaden z nich nie wpływa na to, że zapytanie jest również bezpieczne. Odwołanie https://gist.github.com/jstrassburg/9777027

+0

Natknąłem się na siebie. Od wersji 5.4 dodano nieco więcej funkcji bezpieczeństwa opartych na rolach i udało mi się zablokować odczyty i aktualizacje przy użyciu reguł opisanych tutaj [tutaj] (https://cwiki.apache.org/confluence/display/solr/ Oparte na regułach + autoryzacja + wtyczka). Jednak sam panel administracyjny jest nadal szeroko otwarty. Wszystko, co chcemy zrobić, to wymagać podstawowego uwierzytelnienia, aby uzyskać dostęp do wszystkiego w Solr 5. –

+0

Zobacz także: http://stackoverflow.com/questions/33263535/ –

+0

Aha. Wkrótce po opublikowaniu nagrody widzę, że [ta odpowiedź] (http://stackoverflow.com/a/34348204/27614) faktycznie ma rozwiązanie, ale działa tylko dla SolrCloud. Solr nie obsługuje jeszcze trybu podstawowego Auth w trybie autonomicznym. Zakładam, że mają bilet na to w [JIRA APF] (https://issues.apache.org/jira/), ale nie mogę go znaleźć. –

Odpowiedz

3

Postępując zgodnie z radą Exclude a JSP from web.xml's security-contraint można zachować konfigurację w niezmienionym stanie, ale narazić te punkty końcowe, które mają być dostępne publicznie.

Więc można dodać <security-constraint> podobnego do web.xml, ale pominąć <auth-constraint> dla dopasowanego <url-pattern>. To sprawi, że będzie otwarte dla publiczności. Oprócz podstawowego uwierzytelnienia dla reszty twojej instancji Solr możesz następnie ujawnić krok po kroku rdzenie lub procedury obsługi, które będą publiczne.

<security-constraint> 
    <web-resource-collection> 
    <web-resource-name>mycollection</web-resource-name> 
    <url-pattern>/mycollection/*</url-pattern> 
    </web-resource-collection> 
</security-constraint> 

zastrzeżenie jest to, że trzeba będzie dodać nic które są jawne, jak własnym URL wzorzec. Ale może to być również plus, ponieważ masz możliwość wykonania drobnoziarnistej kontroli dostępu dla kolekcji - np. jeden użytkownik na kolekcję.

+1

Działa dla mnie. Dzięki! Mam nadzieję, że to rozwiązanie zostanie w pewnym momencie wyjaśnione w dokumentach Solr, ponieważ stają się bardziej świadomi bezpieczeństwa, a wiele osób uruchamia samodzielne wystąpienia niebędące chmurami. –

+0

Serdecznie witamy. Prowadzimy także samodzielną instancję, która nie jest chmurką :) – cheffe