Erweiterung von LDAP und FreeIPA

Erweiterung von LDAP und FreeIPA

Ich arbeite mit FreeIPA und habe seine Attribute erfolgreich erweitert, aber festgestellt, dass die Überprüfungsfunktion im Python-Plugin, das zu FreeIPA hinzugefügt wurde, nur für die über die Befehlszeile eingegebenen Werte funktioniert. Über die Web-Benutzeroberfläche eingegebene Werte werden unverändert und ohne Überprüfung gespeichert.

Daher habe ich überlegt, dem Server die folgenden Änderungen hinzuzufügen:

  1. Aktivieren Sie die FreeIPA-Web-Benutzeroberfläche, um den Attributwert vor dem Speichern zu überprüfen.
  2. Erstellen Sie einen neuen Syntaxtyp zur Verwendung durch LDAP (z. B. eine Syntax für die Blutgruppe).
  3. Ändern Sie das Textfeld des Attributs in der Web-Benutzeroberfläche in eine Dropdown-Liste.

Antwort1

  1. Damit die WebUI die Benutzereingaben überprüfen kann, ist es nicht erforderlich, da die Überprüfung durch die Überprüfungsfunktion im FreeIPA Python-Plugin erfolgen kann (ich musste lediglich meinen Server neu starten, damit die Änderungen wirksam wurden).
  2. Es besteht für mich keine Notwendigkeit, eine neue Syntax zu erstellen, ich wollte sie als Ersatz für den Verifizierungsprozess und da sie funktioniert, ist das nicht notwendig.
  3. Um einen Attributfeldtyp zu ändern, müssen Sie beim Erstellen des neuen Attributfelds in der JavaScript-Datei „$type“ hinzufügen:

Erstellen Sie einen Textbereich:

section.fields.push({
     $type:'textarea',
     name: 'ldap_attribute_name',
     label: 'some label name'
});

Erstellen Sie ein Dropdown-Menü:

section.fields.push({
     $type:'entity_select',
     other_entity:'user',         // get the users list
     other_field:'uid',           // get the user IDs and display them in the list
     name: 'ldap_attribute_name',
     label: 'some label name'
});

Erstellen Sie ein Optionsfeld:

section.fields.push({
     $type:'radio',
     options:[          // create the new radio buttons
       {label:'first button label',value:'first button value'},
       {label:'second button label',value:'second button value'}
     ],
     name: 'ldap_attribute_name',
     label: 'some label name'
});

Sie können nach weiteren Optionen suchen, indem Sie die /usr/share/ipa/ui/js/freeipa/app.jsDatei durchsuchen.

verwandte Informationen