SecurityDevice

Ein  com.top_logic.base.security.device.interfaces.SecurityDevice  ist ein System zu Authentifizierung von Benutzern gegenüber dem LDAP oder zur Bereitstellung von Benutzerdaten aus dem LDAP. Ein  SecurityDevice  kann auch für beide Fälle verwendet werden. Die Art des Devices wird durch den Parameter  type  definiert.

Notwendige Konfiguration

id

Typ: String

Die eindeutige ID des konfigurierten  SecurityDevices.

class

Typ: String

Die entsprechende Klasse des zu konfigurierenden  SecurityDevices. Hierfür steht die Klasse  com.top_logic.base.security.device.ldap.LDAPAuthenticationAccessDevice  zur Verfügung. Diese kann  sowohl  zur Authentifizierung eines Benutzer gegen das LDAP, als auch  zum Zugriff auf Benutzerdaten basierend auf Personenattributen genutzt werden. Die Art des  SecurityDevices wird durch den Parameter  type  definiert.

type

Typ: com.top_logic.base.security.device.interfaces.SecurityDevice.DeviceType

Der  DeviceType  eines  SecurityDevice, der beschreibt, wofür das SecurityDevice  verwendet wird. Der  DeviceType ist eine Enumeration besteht aus folgenden vier Werten:

  1. auth Ein  com.top_logic.base.security.device.interfaces.AuthenticationDevice  ausschließlich für die Authentifizierung eines Benutzers gegenüber LDAP.
  2. data EIn  com.top_logic.base.security.device.interfaces.PersonDataAccessDevice  zur Bereitstellung von Benutzerdaten aus dem LDAP Verzeichnis.
  3. auth-with-data Ein  SecurityDevice  zur Authentifikation und Bereitstellung von Benutzerdaten.
  4. disabled Ein inaktives  SecurityDevice.

mappings

Typ:  Map<String, String>

Ein mapping ist eine Abbildung von LDAP Objektklassen Properties auf TopLogic Properties, sodass beim Importieren von Benutzern diese auch auf entsprechende Anwendungsattribute geladen werden können. Die Properties werden in einer  .properties  angegeben und können dann als mapping in der Konfiguration referenziert werden. Man kann für jede Objektklasse (z.B.  person  oder  group) eine  .properties  angeben. Für den Fall, dass kein passendes Mapping für eine Objektklasse existiert, muss als Fallback  genericMapping.properties  vorliegen. Darin muss mindestens ein Mapping für das Attribut  objectClass  vorliegen. Dieses Mapping wird verwendet, falls die Klasse eine Objekts unbekannt ist und abgefragt werden muss.

access-service

Typ:  com.top_logic.base.dsa.ldap.PersonLDAPAccessService

Der  access-service  übernimmt die Authentifizierungsprüfung. Die entsprechende Konfiguration wird in  LDAPAccessService  beschrieben

Zusätzliche Konfiguration

domain

Typ: String
Default: null

Die Domäne des LDAPs, die dazu verwendet wird bei einer externen Authentifizierung Benutzer eindeutig einer Domäne zuzuordnen. Da die meisten Systeme allerdings in einem Request nur die UserID und nicht die Domäne mitsenden, ist diese Methode veraltet und domain ist  @Nullable.  

TODO: Thema noch mal genau klären

Hinweis: Es handelt sich hier um eine TopLogic Konfiguration, nicht um die tatsächliche Domaine, die für die Verbindung zum LDAP verwendet wird. Diese wird aus der Provider-URL eines  LDAPAccessService  erschlossen.

allow-pwd-change

Typ: boolean
Default: false

Definiert ob Benutzer in die Anwendung ihr Passwort ändern können. Falls nicht wird die Option entsprechend in der Anwendung nicht angeboten. TODO: Default wirklich false?

allow-ext-authentication

Typ: boolean
Default: false

Definiert ob eine Verbindung zum LDAP durch ein externes Authentifizierungssystem (z.B. Servlet Container) erlaubt ist. TODO: Mehr Input besorgen

read-only

Typ: boolean
Default: false

Definiert ob das  SecurityDevice read only ist. Wenn das der Fall ist, kann ein Benutzer seine Benutzerdaten (z.B. Name, Telefonnummer etc.) nicht anpassen. Diese Konfiguration wird dazu verwendet, die entsprechenden Felder im Bearbeitungsmodus eines importierten Benutzers nicht editierbar zu machen. 

disabled

Typ:  boolean
Default: false

Gibt an, ob der  SecurityService  inaktiv ist.