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:

(&amp;(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=" (&amp;(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=" (&amp;(objectClass=organizationalUnit)(ou=%searchParm%))">
    <LDAPCDXAttrMappings>
      <LDAPCDXAttrMapping ldapAttr="name" cdxName="Group" />
      <LDAPCDXAttrMapping ldapAttr="description" cdxName=" Description" default="Unknown" />
    </LDAPCDXAttrMappings>
    <LDAPEntryLinks>
      <LDAPEntryLink linkedToLDAPEntity="User" linkingSearchFilter=" 
      (&amp;(objectClass=inetOrgPerson)(departmentNumber=%distinguishedName%))" 
     linkingSearchScope="onelevel" />
    </LDAPEntryLinks>
  </LDAPEntry>
</LDAPEntries>