Jenseits von Firewalls: Wie Basic Auth Ihre SolrCloud schützen kann

Curl Basic Auth und die zkCLI

Wenn Sie Apache SolrCloud verwenden, sollten Sie sich nicht nur auf Firewalls verlassen, um sowohl Zookeeper als auch die Solr Admin UI von der Außenwelt abzuschirmen. Firewall-Regeln sind einfach kein ausreichender Weg, um einen SolrCloud-Cluster zu sichern, denn Firewall-Regeln ändern sich oft aus den unterschiedlichsten Gründen. Und das sind in der Regel keine guten Gründe. Zum Beispiel, wenn Administratoren aus unterschiedlichen Gruppen Ports öffnen, die zuvor geschlossen waren, weil entweder eine neue Anwendung (oder ein neues Perimeter Defense System zur Verwaltung dieser Regeln) online gegangen ist.

Der andere Grund, warum Firewall-Regeln einfach nicht ausreichen, ist, dass die Person, die SolrCloud ausschalten möchte, möglicherweise in Ihr Netzwerk. Der richtige Ansatz zur Absicherung eines SolrCloud-Clusters ist die Implementierung eines der vielen Authentifizierungs-Plugins, die in Open Source zur Absicherung von Solr verfügbar sind, zusätzlich zur Netzwerkabwehr.

Sichern mit Basisauthentifizierung

Der einfachste Weg zur Sicherung Ihres SolrCloud-Clusters ist das Basic Authentication Plugin, auch bekannt als Basic Auth, aber es hat einige Tücken. In der Tat, herkömmliche Weisheit ist, dass die Basisauthentifizierung nicht sicher ist, da die Anmeldeinformationen im Klartext gesendet werden und anfällig für Paketschnüffelei sein können. Wenn diese Verbindung jedoch mit TLS/SSL gesichert ist, ist sie genauso sicher wie andere Methoden, die Verschlüsselung verwenden.

In diesem Blogbeitrag zu meinem Vortrag auf der Activate 2019, der Konferenz für Suche und KI, stelle ich eine rückwärtsgerichteteinkompatible Änderung vor, die ich an Solr 9 vorgenommen habe, um Basic Auth noch sicherer zu machen – und was das für Ihre Benutzer bedeutet.

Basic Auth wird, wie die Kerberos- und JWT-Plugins, in der Datei security.json konfiguriert. Diese Datei wird wie die meisten Konfigurationsdateien in der SolrCloud-Welt in Zookeeper gespeichert. Die Datei informiert SolrCloud darüber, welche Authentifizierungsklasse aufgerufen werden soll, wer welche Berechtigungen hat und ob die in der Datei definierte Authentifizierung tatsächlich erzwungen werden soll oder nicht.

Das stimmt, selbst wenn Sie das Basic Auth Plugin „aktivieren“, indem Sie einfach die Klasse zur security.json hinzufügen, wird die Authentifizierung in Versionen vor der unveröffentlichten Version 9.0, zu der ich den Beitrag geleistet habe, nicht aufgerufen, bis Sie den Parameter „blockUnknown“ hinzufügen und auf „true“ setzen , da dieser Parameter standardmäßig auf „false“ steht. Die meisten Benutzer setzen den Parameter entsprechend, aber lassen Sie uns in die Anatomie der Datei eintauchen, um sicherzustellen, dass Sie ihn in Ihrem Cluster korrekt einrichten.

Eine vollständig gebackene und unautorisierte Benutzer sperrende security.json sieht so aus, wenn BasicAuth aktiviert ist:

{
   "authentication":{
       "blockUnknown”:true,
       "class":"solr.BasicAuthPlugin",
       "credentials":{
          "solr":"orwp2Ghgj39lmnrZOTm7Qtre1VqHFDfwAEzr0ApbN3Y= 
Ju5osoAqOX8iafhWpPP01E5P+sg8tK8tHON7rCYZRRw="
       }
   },
   "authorization":{
      "class":"solr.RuleBasedAuthorizationPlugin",
      "user-role":{
         "solr":"admin"
      },
      "permissions":[
         {
            "name":"security-edit",
            "role":"admin"
          }
      ]
   }
}

Curl Basic Auth und die zkCLI

Um schnell zu testen, ob Sie die Sicherheit aktiviert haben, können Sie Folgendes ausführen:
curl http://localhost:8983/solr/admin/authentication

curl http://localhost:8983/solr/admin/authorization
Um eine security.json-Datei in Zookeeper anzulegen, verwenden Sie die Zookeeper CLI (ZKcli):

server/scripts/cloud-scripts/zkcli.sh -zkhost localhost:9983 -cmd putfile /security.json security.json

Wenn Sie in Solr 9 Basic Auth aktiviert haben, aber keine Benutzer konfiguriert haben, gibt Solr einen Serverfehler zurück, da alle nicht authentifizierten Anfragen an die API blockiert werden. Dies unterbricht den Arbeitsablauf einiger Entwickler, die daran gewöhnt waren, nach der ersten Aktivierung des Plugins Benutzer für Basic Auth einzurichten.

Die meisten fortgeschrittenen Benutzer werden sagen, dass ein SSH-Tunnel zu den Solr-Verwaltungsfunktionen der beste Weg ist, um in der Entwicklungsphase produktiv zu sein. Ich stimme ihnen zu. Für viele Benutzer ist das jedoch nicht einmal eine Option. Für andere ist es ein Overkill. Die Basisauthentifizierung wurde genau als das konzipiert, was sie ist: „einfach“. Auf diese Weise schützt es vielleicht einige der am meisten gefährdeten Benutzer im Internet. Deshalb habe ich es besser gemacht.

Hier ist ein Link zum JIRA: https://issues.apache.org/jira/browse/SOLR-1364

Und

Hier ist ein Video von meinem Vortrag bei Activate:

Hier finden Sie ein Video, das Ihnen zeigt, wie Sie Basic Auth in sieben Minuten einrichten können:

 

You Might Also Like

Vom Suchunternehmen zum praktischen KI-Pionier: Unsere Vision für 2025 und darüber hinaus

CEO Mike Sinoway gibt Einblicke in die Zukunft der KI und stellt...

Read More

Wenn KI schief geht: Fehlschläge in der realen Welt und wie man sie vermeidet

Lassen Sie nicht zu, dass Ihr KI-Chatbot einen 50.000 Dollar teuren Tahoe...

Read More

Lucidworks Kernpakete: Branchenoptimierte KI-Such- und Personalisierungslösungen

Entdecken Sie unsere umfassenden Core Packages, die Analytics Studio, Commerce Studio und...

Read More

Quick Links