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 SecurityDevice
s.
class
Typ: String
Die entsprechende Klasse des zu konfigurierenden SecurityDevice
s. 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 SecurityDevice
s 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:
- auth Ein
com.top_logic.base.security.device.interfaces.AuthenticationDevice
ausschließlich für die Authentifizierung eines Benutzers gegenüber LDAP. - data EIn
com.top_logic.base.security.device.interfaces.PersonDataAccessDevice
zur Bereitstellung von Benutzerdaten aus dem LDAP Verzeichnis. - auth-with-data Ein
SecurityDevice
zur Authentifikation und Bereitstellung von Benutzerdaten. - 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.