Zum Inhalt

Authentifizierung

Standardmäßig ist der Server offen: Jeder Request ist erlaubt. Mit Authorization:Type = Basic wird HTTP-Basic-Authentifizierung verlangt.

"Authorization": {
  "Type": "Basic",
  "Clients": [
    {
      "Id": "reader",
      "SecretHash": "pbkdf2-sha256$...",
      "Roles": [ "read" ]
    },
    {
      "Id": "importer",
      "SecretHash": "pbkdf2-sha256$...",
      "Roles": [ "write" ]
    },
    {
      "Id": "admin",
      "SecretHash": "pbkdf2-sha256$...",
      "Roles": [ "admin" ]
    }
  ]
}

Warning

Bei Basic-Authentifizierung werden die Zugangsdaten mit jedem Request gesendet. Immer HTTPS verwenden.

Secrets

Secrets als Hash ablegen (SecretHash). Ein Hash wird so erzeugt:

dotnet LuceneServerNET.dll --hash-secret "my-secret"

Der Befehl gibt den Hash aus und beendet sich. Secrets im Klartext (Secret) werden aus Kompatibilitätsgründen weiter unterstützt; der Server schreibt beim Start eine Warnung ins Log.

Rollen

Rolle Erlaubt
read search, searchphonetic, group, indexexists, mapping, getmeta, getmetas, getmetanames, /info
write read + createindex, map, index, remove, refresh, addmeta
admin write + removeindex, releaseall

Höhere Rollen schließen niedrigere ein. Ein Client ohne Rollen erhält admin (abwärtskompatibel); der Server schreibt eine Warnung ins Log. Ist Basic aktiv, aber kein Client konfiguriert, werden alle Requests abgelehnt.

Aufruf

curl -u reader:my-secret "https://search.example.com/Lucene/search/products?q=bat*"

Der .NET-Client nimmt die Zugangsdaten als Konstruktor-Parameter oder in der URL (https://id:secret@host) entgegen.