Mapowanie LDAP
Repozytorium LDAP zawiera wiele pozycji. Każda pozycja reprezentuje obiekt w katalogu zidentyfikowanym przez nazwę wyróżniającą i może zawierać jeden lub większą liczbę atrybutów. Typowe repozytorium LDAP zawiera zwykle pozycję dla użytkowników i pozycję dla grup. Połączenie między użytkownikami i grupami można zaimplementować na dwa sposoby:
-
Użytkownicy należący do grupy są zdefiniowani w specjalnym atrybucie o wielu wartościach, w pozycji "Grupa".
-
Grupy, do których należy użytkownik, są zdefiniowane w specjalnym atrybucie o wielu wartościach, w pozycji "Użytkownik".
Odwzorowanie między obiektami zabezpieczeń LDAP i obiektami zabezpieczeń podstawowych jest przechowywane w dokumencie XML, który może zostać przetworzony przez zadanie importu LDAP. W ramach konfigurowania systemu dla importu LDAP konieczne jest zdefiniowanie tego odwzorowania. Z pakietem podstawowym dostarczany jest przykładowy plik odwzorowania o nazwie ldapdef.xml, którego można użyć jako punktu wyjścia i zmienić go na podstawie własnych wymagań biznesowych oraz konkretnego repozytorium LDAP.
Po zdefiniowaniu dokumentu XML odwzorowania jest on ustawiany jako parametr w zadaniu F1-LDAP.
Struktura XML:
-
Element LDAPEntry służy do odwzorowywania pozycji LDAP do obiektów systemowych ("Użytkownik" lub "Grupa"). Plik odwzorowania musi zawierać tylko jeden element LDAPEntry dla pozycji "Użytkownik" i jeden dla pozycji "Grupa".
-
Element LDAPCDXAttrMapping w ramach elementu LDAPEntry służy do odwzorowywania atrybutów w pozycji LDAP do atrybutów w obiekcie systemowym.
-
Element LDAPEntryLinks służy do opisywania obiektów połączonych z pozycją LDAP. Podczas odwzorowywania obiektu użytkownika należy opisać, w jaki sposób uzyskiwane są grupy, do których należy użytkownik. W przypadku odwzorowywania obiektu grupy należy opisać sposób uzyskiwania użytkowników zawartych w grupie.
W poniższej tabeli opisano atrybuty do zdefiniowania w odniesieniu do poszczególnych elementów.
Element |
Atrybut |
Opis |
---|---|---|
LDAPEntry |
name |
Nazwa pozycji LDAP: - Grupa - Użytkownik |
baseDN |
Podstawowa nazwa odróżniająca w LDAP dla danej pozycji. |
|
cdxEntity |
Nazwa obiektu produktu bazowego, na który odwzorowana jest pozycja LDAP: - Grupa - Użytkownik |
|
searchFilter |
Filtr wyszukiwania LDAP służący do lokalizowania pozycji LDAP. Ciąg %searchParm% w tym filtrze jest zastępowany wartością z parametru użytkownika lub grupy na podstawie przesyłania zadania F1-LDAP . |
|
Scope |
Ustawia zakres wyszukiwania. Prawidłowe wartości to: - jeden poziom (wartość zwykle używana) - drzewo podrzędne |
|
LDAPCDXAttrMapping |
ldapAttr |
Nazwa atrybutu LDAP do odwzorowania. Należy zauważyć, że odwołanie do tego atrybutu może występować więcej niż raz, aby umożliwić odwzorowanie jednego elementu LDAP do wielu elementów w produkcie podstawowym. Przykład: gdy adres e-mail powinien być używany w polu "ID logowania" i "Adres e-mail". |
cdxName |
Nazwa atrybutu produktu bazowego do odwzorowania. Dla pozycji "Użytkownik" jest to element w ramach obiektu biznesowego F1-IDMUser. Dla pozycji "Grupa" jest to "grupa" lub "opis". |
|
default |
Wartość domyślna przydzielana do elementu, do którego odwołuje się atrybut cdxName, gdy zostaną spełnione poniższe warunki: - Atrybut LDAP zawiera wartość Null lub wartość pustą - Atrybut LDAP nie istnieje lub nie został określony Wartości domyślne są stosowane tylko podczas tworzenia nowych obiektów i nie są stosowane do aktualizowania obiektów. |
|
autoGenerate |
Ustawienie wartości prawda spowoduje włączenie automatycznego generowania ID użytkownika. Przy ustawieniu wartości "prawda" ID użytkownika będzie definiowany przez system w formacie <inicjał imienia>+<nazwisko> zapisane wielkimi literami i maksymalnej długości 8 znaków. Jeśli dla wygenerowanego ID zostanie znaleziony istniejący użytkownik, ósmy znak zostanie zastąpiony liczbą (lub liczba zostanie dodana na końcu). System będzie zwiększał tę liczbę do momentu znalezienia unikatowego ID. |
|
transform |
Ten atrybut służy do wskazywania, czy powinna nastąpić transformacja danych. Prawidłowe wartości: wielkie litery|obcinanie. Należy zauważyć, że atrybut ten nie powinien być używany w połączeniu z atrybutem autoGenerate. |
|
LDAPEntryLink |
linkedToLDAPEntity |
Nazwa połączonego obiektu (Użytkownik lub Grupa). W przypadku opisywania obiektu "Grupa" należy użyć opcji "Użytkownik". W przypadku opisywania obiektu "Użytkownik" należy użyć opcji "Grupa". |
linkingLDAPAttr |
Nazwa atrybutu o wielu wartościach w obiekcie LDAP, który zawiera połączony obiekt. |
|
linkingSearchFilter |
Filtr wyszukiwania stosowany w celu uzyskania listy połączonych obiektów, na przykład: (&(objectClass=group)(memberOf=%attr%)) Filtr wyszukiwania może zawierać ciąg znaków % attr %, który działa jak ciąg podstawiany, który w czasie wykonywania jest zastępowany wartością atrybutu o nazwie "attr" importowanego obiektu. Jeśli opisywana pozycją LDAP jest grupa, a ciąg znaków ma postać %name%, wówczas jest on zastępowany przez wartość atrybutu "name" importowanej grupy. Jeśli opisywaną pozycją LDAP jest użytkownik, a ciąg znaków ma postać %dn%, wówczas jest on zastępowany atrybutem "dn" importowanego użytkownika. |
|
linkingSearchScope |
Ustawia zakres wyszukiwania. Prawidłowe wartości to: - jeden poziom (wartość zwykle używana) - drzewo podrzędne |
Przykładowe odwzorowanie
Poniższy kod XML opisuje przykładowe odwzorowanie. W przykładzie utworzono następujące założenia:
-
Dla atrybutu displayProfileCode produktu podstawowego domyślnie wprowadzana jest wartość "NORTHAM" podczas dodawania nowego użytkownika.
-
Pozycja grupy LDAP zawiera listę użytkowników należących do grupy w atrybucie departmentNumber.
-
Grupy, do których należy użytkownik, są pobierane poprzez zastosowanie filtra wyszukiwania.
<LDAPEntries>
<LDAPEntry name=" User" baseDN="ou=people,dc=example,dc=com" cdxEntity="
user" searchFilter=" (&(objectClass=inetOrgPerson)(uid=%searchParm%))">
<LDAPCDXAttrMappings>
<LDAPCDXAttrMapping ldapAttr="uid" cdxName=" user" />
<LDAPCDXAttrMapping ldapAttr="cn" cdxName="externalUserId" />
<LDAPCDXAttrMapping cdxName="language" default=" ENG" />
<LDAPCDXAttrMapping ldapAttr="givenName" cdxName="firstName"/>
<LDAPCDXAttrMapping ldapAttr="sn" cdxName= "lastName"/>
<LDAPCDXAttrMapping cdxName="displayProfileCode" default="NORTHAM" />
<LDAPCDXAttrMapping cdxName="toDoEntriesAge1" default="30" />
<LDAPCDXAttrMapping cdxName="toDoEntriesAge2" default="90" />
<LDAPCDXAttrMapping cdxName="userEnable" default="ENBL"/>
</LDAPCDXAttrMappings>
<LDAPEntryLinks>
<LDAPEntryLink linkedToLDAPEntity="Group" linkingLDAPAttr="departmentNumber" />
</LDAPEntryLinks>
</LDAPEntry>
<LDAPEntry name="Group" baseDN="ou=people,dc=example,dc=com" cdxEntity="
Group" searchFilter=" (&(objectClass=organizationalUnit)(ou=%searchParm%))">
<LDAPCDXAttrMappings>
<LDAPCDXAttrMapping ldapAttr="name" cdxName="Group" />
<LDAPCDXAttrMapping ldapAttr="description" cdxName=" Description" default="Unknown" />
</LDAPCDXAttrMappings>
<LDAPEntryLinks>
<LDAPEntryLink linkedToLDAPEntity="User" linkingSearchFilter="
(&(objectClass=inetOrgPerson)(departmentNumber=%distinguishedName%))"
linkingSearchScope="onelevel" />
</LDAPEntryLinks>
</LDAPEntry>
</LDAPEntries>