Datenschutzhinweis

 

Beim Laden dieses Inhalts werden Nutzungsinformationen an Vimeo übertragen und dort ggf. verarbeitet.

 

             

LDAP-Abfragen

Geändert am Fr, 13 Okt, 2023 um 11:23 VORMITTAGS

LDAP-Abfragen verhalten sich ähnlich wie Datenbankabfragen oder Datenquellen. Sie dienen dazu, dynamisch Daten von einem LDAP-Server zu ermitteln. Hierbei steht neben der Filterung über eine LDAP-Query auch die Einschränkung der Rückgabewerte auf festgelegte Attribute zur Verfügung.


Inhalt


LDAP-Abfrage anlegen

Konfigurationsoberfläche zum Anlegen von LDAP-Abfragen: (1) Liste existierender LDAP-Abfragen, (2) Editor zum Definieren der Abfrage, (3) Eigenschaften-Panel der Abfrage, (4) Attributfilter der Abfrage, (5) Web-Zugriff zur Verwendung der Abfrage, (6) Konsole zum Testen der Abfrage

  • Öffnen Sie das Modul "LDAP-Abfragen" und klicken Sie auf die Schaltfläche "Neu" in der Kopfzeile der Liste (siehe Abbildung).
  • Vergeben Sie einen eindeutigen Namen und optional eine Beschreibung.
  • Aktivieren Sie ggf. die Benutzung der LDAP-Verbindung des Mandanten oder wählen sie eine separate LDAP-Verbindung aus.
  • Definieren Sie für diese LDAP-Abfrage zu verwendende BaseDN. Diese dient als Wurzel für die Suche mittels der eigentlichen Filterabfrage.
  • Definieren Sie die Abfrage in entsprechender LDAP-Filtersyntax (Tutorial). Parameter werden innerhalb des Filters durch ? angegeben und durch entsprechende Übergaben ersetzt (Punkt 2 in Abbildung).
  • Tragen Sie ggf. die von Ihnen benötigten Attribute in den Attributfilter ein. Die Rückgabe der Abfrage wird anschließend auf diese beschränkt. Wird hier kein Attribut definiert, werden alle Attribute des Such-Ergebnisses zurückgeliefert (Punkt 4 in Abbildung).


Verwendung der Abfrage

Die LDAP-Datenabfrage ist innerhalb und außerhalb eines Formulars über das hierfür vorgesehenen Web-Zugriff unter Verwendung der entsprechenden Parameter abrufbar. Bei der Erstellung einer Abfrage ist dieser Zugriff standardmäßig deaktiviert.

http://<server>/formcycle/datenabfrageldap

Der Web-Zugriff wird unterhalb der Attributfilter angezeigt (siehe Punkt 5 in Abbildung).
Folgende URL-Parameter sind hierbei möglich:

ParameternameBeschreibungErforderlich
nameMuss dem Namen der LDAP-Abfrage entsprechen.Ja
mandantNameMuss dem Namen des Mandanten entsprechen, unter welchen diese Datenquelle erstellt wurde.Ja, wenn projektId nicht gegeben
projektIdMuss der ID des Formulars entsprechen. Diese Information kann über  XFC_METADATA.currentProject.id  abgerufen werden.Ja, wenn mandantName nicht gegeben
delimiterTrennzeichen, welches die einzelnen Werte des queryParameter trennt. Standardmäßig ein Komma ,.

Wenn möglich sollte für neue Projekte anstelle der Parameter delimiter und queryParameter der Parameter queryParameterValues verwendet werden, da delimiter in einer zukünftigen Version von formcycle nicht mehr unterstützt werden wird.
Nein
queryParameterValuesqueryParameterValues ist nur dann erforderlich, wenn innerhalb der LDAP-Abfrage Platzhalter in Form eines Fragezeichens ? verwendet werden. Ist dies der Fall, werden die einzelnen Abfrageparameter hintereinander jeweils als ein eingener Parameter queryParameterValues übergegeben, wodurch auch die Verwendung des Parameters delimiter entfällt.Nein

Bei Zugriff aus einem Formular verwenden Sie bitte immer das globale Variablen-Objekt XFC_METADATA.urls. In diesem Objekt stehen alle relevanten URLs von formcycle zur Verfügung, sodass diese Beispielhaft wie folgt ermittelt werden kann: XFC_METADATA.urls.datasource_ldap.

Die Rückgabe des Abfrage-Ergebnisses erfolgt im JSON-Format und kann somit innerhalb des Formulars direkt genutzt werden.


Testen der Abfrage

Zum schnellen Testen der Abfrage steht die Tastenkombination Strg + Enter zur Verfügung.


LDAP-Abfragen können direkt in der Konfigurationsoberfläche getestet werden. Hierzu steht eine Testkonsole unterhalb des Editors zur Verfügung (siehe Abbildung).
Im Header der Testkonsole befindet sich eine Reihe von Buttons zur Steuerung der Abfrage:

  •  Abfrage ausführen
    Führt die LDAP-Abfrage aus. Werden Abfrageparameter (?) verwendet, wird der Nutzer aufgefordert Werte für diese Parameter einzugeben. Ist dies nicht der Fall wird das Ergebnis der Abfrage direkt in der Quellcodeansichtdargestellt.

  •  Abfrageparameter
    Maske zum Eingeben von Werten für Abfrageparameter. Diese Option steht nur zur Verfügung, wenn Abfrageparameter (?) in der LDAP-Abfrage verwendet werden. Die einzelnen Abfrageparameter werden nummeriert im Query dargestellt. Ein Klick auf "Parameter für Abfrage verwenden"   führt die Abfrage mit den eingebenen Parametern aus. Das Ergebnis wird in der Quellcodeansicht dargestellt.


    Eigentliche Abfrage im Editor:

  •  Quellcodeansicht
    Abfrageergebnis im JSON-Format

  •  Generierte LDAP-Abfrage
    Zeigt das generierte LDAP-Statement mit eingefügten Parameterwerten


Beispiele für Abfragen

Im Folgenden wird gezeigt, wie auf eine LDAP-Abfrage mittels HTTP-Requests zugegriffen werden kann.

Beispielsweise wurde eine LDAP-Abfrage mit dem Namen Mein Abfrage angelegt und folgende Abfrage hinterlegt:

((distinguishedName=?,?)

Es müssen zwei Werte für die beiden Platzhalter (Fragezeichen) übergeben werden. Diese Abfrage kann wie folgt aufgerufen werden.

http://<server>/formcycle/datenabfrageldap?name=MeineAbfrage&mandantName=MeinMandant&queryParameterValues=Wert,1&queryParameterValues=Wert,2

Zur Abfrage mittels AJAX aus einem Formular gibt es ein fertige Funktion:

$.xutil.getLdapQuery("MeineAbfrage", ["Wert1", "Wert2"])
  .then(function(data) {
    // Rückruf-Funktion, die ausgeführt wird, wenn der Server die Abfrage beanwortet hat
    // Die Variable data enthält jetzt ein Array mit den Daten
    console.log(data.length, "Einträge gefunden");
  })
  .catch(function(xhr, statusMessage, statusCode) {
    console.log("Abfrage fehlgeschlagen:", statusMessage, statusCode);
    // Fehlerbehandlung durchführen...
  });

Bei dem obigen Code wurde vor formcycle Version 6.6.3 immer das Komma als Trennzeichen für die Query-Parameter verwendet. Wenn bei formcycle Versionen vor 6.6.3 ein anderes Trennzeichen verwendet werden soll, muss die Abfrage manuell ausgeführt werden:

function ldapQuery(name, queryParameter, delimiter, callback) {
    $.ajax({
        url: XFC_METADATA.urls.dataquery_ldap,
        method: 'GET',
        async: true,
        cache: false,
        dataType: 'json',
        data: {
            name: name,
            mandantName: XFC_METADATA.currentClient.name,
            queryParameter: queryParameter,
            delimiter: delimiter || ','
        }
    }).then(callback);
}

ldapQuery("MeineAbfrage", "Wert,1;Wert,2", ";", function(data) {
  // Zurückgelieferte Daten auswerten...
});

War dieser Artikel hilfreich?

Das ist großartig!

Vielen Dank für das Feedback

Leider konnten wir nicht helfen

Vielen Dank für das Feedback

Wie können wir diesen Artikel verbessern?

Wählen Sie wenigstens einen der Gründe aus
CAPTCHA-Verifikation ist erforderlich.

Feedback gesendet

Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren