====== Nutzer aus LDAP anlegen - Konfiguration ====== **ACHTUNG!** Diese Anleitung ist ab Version 2.04.11 nicht länger gültig. Bitte verwenden Sie die [[fn2rbacweb:ldap_konfiguration|aktuelle Anleitung]]. Mit der Version 2.04.09 von FN2Web ist möglich Personen mit Daten, die aus einem externen LDAP-System gelesen werden können anzulegen. Um diese Funktion verwenden zu können muss eine entsprechende Konfiguration von Seiten der Systemadministratoren vorgenommen werden. Dies wird hier unter Verwendung eines fiktiven LDAP-Servers erklärt. ===== Beispiel LDAP-System ===== Zum Verständins wird von folgender, representativen LDAP-Struktur ausgegangen. Für die Konfiguration müssen die entsprechenden Daten wie die Serveradresse, der DN-Pfad order die Attributnamen Ihrem individuellen LDAP-System angepasst werden. {{:fn2rbacweb:ldap_tree_example.png?nolink&400|}} ===== Anpassung von Parametern ===== Die Parameter müssen in **FN2XML/Web-Inf/web.xml** ergänzt werden. Da einige Parameter bereits durch die LDAP-Authentifizierung verwendet werden müssen ggf. nicht alle Parameter ergänzt werden. ==== Parameter welche mit der LDAP-Authentifizierung geteilt werden ==== Diese Parameter sind ggf. bereits vorhanden. ldapAuthBaseDN ou=users,dc=test,dc=de ldap server used for *auth*entication: LDAP base DN; this parameter is only relevant if "authenticationMethod" is set to "ldap"; example: "ou=People,dc=myorg,dc=de" ldapAuthHost ldap://ldap.fn2web.test ldap server used for *auth*entication: DNS name of the host that runs the LDAP server; this parameter is only relevant if "authenticationMethod" is set to "ldap"; example: "ldap://authldap.org.com" (non-SSL), "ldaps://authldap.org.com" (SSL); ldapAuthUidAttribute uid ldap server used for *auth*entication: LDAP attribute used to search for user; this parameter is only relevant if "authenticationMethod" is set to "ldap"; example: "uid" Folgende Parameter sind nur anzugeben, wenn ein Login für den Zugriff auf den LDAP-Server benötigt wird. ldapAuthType simple ldap server used for *auth*entication: ldap authentication type; default:"simple"; this parameter is only relevant if "authenticationMethod" is set to "ldap" ldapAuthServiceUser mustermax ldap server used for *auth*entication: LDAP user that has access to query LDAP for auth and name resolution; this parameter is only relevant if "authenticationMethod" is set to "ldap"; example: "surveyService" ldapAuthServiceCredential ***** ldap server used for *auth*entication: password of the LDAP user that has access to query LDAP for authentication and name resolution; this parameter is only relevant if "authenticationMethod" is set to "ldap"; example: "qqe$eu@o" ==== Neue Parameter zum Anlegen von Nutzern aus LDAP==== === Verpflichtend anzugebene Parameter === ldapImportSearchListPattern [cn] ([uid]) Pattern für Ausgabe von Suchergebnissen für Personen in LDAP. LDAP-Attribute werden in Eckigen Klammern angegeben. z.B. "[cn] ([uid])" -> "Wert für Attribut 'cn' (Wert für Attribut 'uid')" === Optionale Parameter (Achtung! Diese Parameter werden ab Version 2.04.10.000 nicht länger verwendet) === Diese Parameter werden verwendet um Formular-Daten zu füllen. Wenn kein entprechendes LDAP-Attribut vorhanden um ein Formular Feld zu füllen kann der entsprechende Parameter weggelassen werden. ldapImportPersonstubBezPattern [cn] Pattern zum Füllen des Wertes "Bez" für neue Personen aus LDAP. LDAP-Attribute werden in Eckigen Klammern angegeben. z.B. "[cn]" -> "Wert für Attribut 'cn'" ldapImportPersonstubEmailKey mail Key zum Auslesen des Wertes "Email" für neue Personen aus LDAP. Angabe des entsprechenen LDAP-Attributes. z.B. "mail" -> "Wert für ‚Attribut 'mail'" ldapImportPersonstubSpracheKey lang Key zum Auslesen des Wertes "Sprache" für neue Personen aus LDAP. Angabe des entsprechenen LDAP-Attributes. z.B. "lang" -> "Wert für Attribut "lang" === Anwendungsbeispiele für die neuen Parameter=== == Parameter-Namen die mit "Key" enden== Hierbei wird lediglich der Attribut-Name des User-Objekts angegeben welches in LDAP hinterlegt ist. __**Beispiel:**__ Für den Parameter **ldapImportPersonstubEmailKey** wird der Wert **mail** angegeben. Im LDAP-Beispiel wird hierfür **max.mustermann@test.de** ausgegeben. == Parameter-Namen die mit "Pattern" enden== Hierbei wird ein Pattern angegeben, welches aus mehreren Attribut-Namen des User-Objekts bestehen kann. Wichtig ist hierbei, dass die Attribut-Namen in eckigen Klammern angegeben werden um sie von Fülltext zu unterscheiden zu können. __**Beispiel:**__ Für den Parameter **ldapImportSearchListPattern** wird der Wert **[title] [fn] [sn] ([uid])** angegeben. Im LDAP-Beispiel wird hierfür **Dr. med. Max Mustermann (mustermax)** ausgegeben. ===== Anpassung von Datenbank-Werten ===== ==== Tabelle LDAPSEARCH (Flexnow Datenbank) ==== In der Tabelle **LDAPSEARCH** werden alle LDAP-Attribute angegeben, welche für die Suche von User-Objekten verwendet werden können. Es muss mindestens ein Datensatz angegeben sein um Nutzer aus LDAP anlegen zu können. Tabellenfelder von **LDAPSEARCH**: * **ldapsearch**: Die eindeutige ID des Datensatzes //(fortlaufende Nummer)// * **ldapkey**: Das LDAP-Attribut nach welchem Gesucht werden kann * **bez**: Eine Beschreibung des Attributs, welches in der Dropdown-Liste des Import-Formulars angezeigt wird. === Beispiel: === == Tabelle in SQL == {{:fn2rbacweb:ldapsearchtableexample.png?nolink&400 |}} == Anzeige in FN2RBACWEB2 == {{:fn2rbacweb:ldapsearchinbrowserexample.png?nolink&400 |}} ==== Tabelle EXTERN_FELD (Flexnow Datenbank) ==== Die Tabelle **EXTERN_FELD** wird zur Verknüpfung von FlexNow-Daten mit Daten von Fremdsystemen verwendet. Im Fall von LDAP werden Personstub-Objekte der META-Datenbank mit den zugehörigen LDAP-Objekten verknüpft. Tabellenfelder von **EXTERN_FELD**: * **extern_feld**: Die eindeutige ID des Datensatzes //(fortlaufende Nummer)// * **extern_system**: Das externe System welches verwendet wird. In diesem Fall ist der Wert **9** anzugeben, welcher dem LDAP-System zugewiesen ist. //(Die externen Systeme sind in der Tabelle EXTERN_SYSTEM angegeben. **LDAP** wird mit den veröffentlichten SQL Skript der **Version 2.04.09** hinzugefügt.)// * **tabelle**: Auf welche Tabelle des externen Systems wird verwiesen. Im speziellen Fall von LDAP muss der Wert **LDAP** angegeben werden. * **feld**: Welches Feld der angegeben Tabelle verwendet werden soll. Im speziellen Fall von LDAP muss das gewünschte Attribut des User-Objekts im LDAP-System verwendet werden. Hierbei ist zu beachten, dass ein persistentes Attribut verwendet wird. ** ACHTUNG! Falls das Exten_Feld nicht hinzugefügt wurde, ist der LDAP Import deaktiviert** === SQL-Statement: === //bitte den Wert für "feld" anpassen.// INSERT INTO extern_feld (extern_feld, extern_system, tabelle, feld) VALUES (19, 9, 'LDAP', [LDAP-Attribut zum verlinken]); === Beispiel === {{:fn2rbacweb:extern_idtableexample.png?nolink&400 |}} ===== Anpassung von Properties (Ab Version 2.04.10.000) ===== Mit der Version 2.04.10.000 wird das Mapping von LDAP Daten in FlexNow Datentypen über Properties-Dateien gesteuert. Hierfür müssen (falls nicht bereits geschehen) Die Dateien **person_mapping.properties** und **personstub_mapping.properties** im Dateipfad **FN2XML\WEB-INF\classes\de\ihb\flexnow\fn2xml\properties\ldap** erstellt werden. ==== personstub_mapping.properties ==== Diese Datei enthält die Einstellungen, welche Personstub-Werte aus LDAP übernommen werden sollen. Folgende Werte werden akzeptiert: * **bez** * **email** * **sprache** //Hier muss ein Ländercode angegben werden (z.B. de)// **Nur wenn die Datei "personstub_mapping.properties" vorhanden ist und die Tabellen ExternId und LdapSearch angpasst wurden ist der LDAP Import in FN2RBACWeb2 aktiv** ==== person_mapping.properties ==== Diese Datei enthält die Einstellungen, welche Person-Werte aus LDAP übernommen werden sollen. Folgende Werte werden akzeptiert: * **vorname** * **nachname** * **akadgrad** * **versnr** * **url** * **plz** * **ort** * **strasse** * **telefon** * **email** * **adrfreitext** **Nur wenn die Datei "person_mapping.properties" vorhanden ist können neben Personstubs auch Personen importiert werden.** //Die Datei darf auch leer sein. In diesem Fall werden allerdings keine Daten aus LDAP Übernommen sondern müssen manuell eingegeben werden.// ==== Wichtige Hinweise==== Für alle Properties gelten folgede Regeln: * Der Key ist immer **klein** geschrieben * Als Wert für jeden Key muss muss angegeben werden, welche Datan aus LDAP verwendet werden sollen. Hierfür kann entweder ein einzelner Schlüssel (z.B. cn) oder auch ein Pattern verwendet werden in welchem die LDAP Schlüssel in eckigen Klammern stehen müssen (z.B. [sn] [givenName]) Bei Fragen ist Ihr Ansprechpartner [[https://ihb-eg.de/team/|Sebastian Düsel]].