Anhang О. Verfahren zur Authentifizierung von Administratoren

 

Basisinformationen zu Authentifizierung von Administratoren auf dem Enterprise Server ist im Abschnitt Administratoren authentifizieren angeführt.

 

Authentifizierung unter Verwendung von Active Directory

Nur Zulassung für Verwendung und die Reihenfolge in der Liste der Authentifizierer wird konfiguriert: Tags <enabled/> und <order/> in auth-ads.xml.

Funktionsprinzip:

1.Der Administrator legt den Benutzernamen und das Passwort in einem der folgenden Formate fest:

username,

domain\username,

username@domain,

LDAP DN des Benutzers.

2.Der Server wird mit diesem Namen und Passwort auf dem Default-Domänencontroller registriert (bzw. auf dem Domänencontroller für Domäne, die im Benutzernamen angegeben wird).

3.Wenn die Registrierung fehlgeschlagen ist, wird es zum nächsten Authentifizierungsmechanismus gesprungen.

4.LDAP DN des registrierten Benutzers wird festgestellt.

5.Beim Ojekt mit festgestelltem DN wird das Attribut DrWeb_Admin gelesen. Wenn der Wert FALSE ist, heisst es, dass der Versuch nicht erfolgreich ist und es zum nächsten Authentifizierungsmechanismus gewechslet wird.

6.Das Attribut DrWeb_AdminReadOnly wird gelesen. Wenn der Wert TRUE ist, hat der Administrator nur die Leserechte.

7.Das Attribut DrWeb_AdminGroupOnly wird gelesen. Wenn der Wert TRUE ist, der Administrator hat nur die Rechte für Verwaltung von bestimmten Gruppen.

8.Das Attribut DrWeb_AdminGroup wird gelesen. Dieses Attribut muss eine Liste von Gruppen für Verwaltung durch diesen Administrator enthalten.

9.Wenn auf dieser Stufe manche Attribute nicht festgelegt sind, wird es danach in Gruppen, zu denen dieser Benutzer gehört, gesucht. Für jede Gruppe werden ihre Parent-Gruppen untersucht (die Suche erfolgt nach innen).

 

Bei einem beliebigen Fehler wird es zum nächsten Authentifizierungsmechanismus gewechselt.

 

Das Dienstprogramm drwschema-modify.exe (gehört zum Distributionsumfang des Servers, befindet sich im Verzeichnis bin von Installationsverzeichnis des Servers) erstellt eine neue Objektklasse DrWebEnterpriseUser für Active Directory und beschreibt neue Attribute für diese Klasse.

Die Attribute haben folgende OID in der Enterprise Umgebung:

#define DrWeb_enterprise_OID      "1.3.6.1.4.1"                           // iso.org.dod.internet.private.enterprise
#define DrWeb_DrWeb_OID           DrWeb_enterprise_OID      ".29690"     // DrWeb
#define DrWeb_EnterpriseSuite_OID DrWeb_DrWeb_OID           ".1"         // EnterpriseSuite
#define DrWeb_Alerts_OID          DrWeb_EnterpriseSuite_OID ".1"         // Alerts
#define DrWeb_Vars_OID            DrWeb_EnterpriseSuite_OID ".2"         // Vars
#define DrWeb_AdminAttrs_OID      DrWeb_EnterpriseSuite_OID ".3"         // AdminAttrs
 
// 1.3.6.1.4.1.29690.1.3.1 (AKA iso.org.dod.internet.private.enterprise.DrWeb.EnterpriseSuite.AdminAttrs.Admin)
 
#define DrWeb_Admin_OID           DrWeb_AdminAttrs_OID      ".1"         // R/W admin
#define DrWeb_AdminReadOnly_OID   DrWeb_AdminAttrs_OID      ".2"         // R/O admin
#define DrWeb_AdminGroupOnly_OID  DrWeb_AdminAttrs_OID      ".3"         // Group admin
#define DrWeb_AdminGroup_OID      DrWeb_AdminAttrs_OID      ".4"         // Admin's group
#define DrWeb_Admin_AttrName             "DrWebAdmin"
#define DrWeb_AdminReadOnly_AttrName     "DrWebAdminReadOnly"
#define DrWeb_AdminGroupOnly_AttrName    "DrWebAdminGroupOnly"
#define DrWeb_AdminGroup_AttrName        "DrWebAdminGroup"

Die Eigenschaften von Active Directory Benutzern werden manuell auf dem Active Directory Server bearbeitet (s. P. Administratoren authentifizieren).

Algorithmus zur Analyse von Attributen bei Autorisierung:

1.Die Benutzerattribute werden gelesen.

2.Wenn das Attribut DrWebAdmin als TRUE definiert ist:

2.1.Wenn ein Teil der Attribute fehlt und das Attribut DrWebInheritPermissions als TRUE definiert ist, werden fehlende Attribute aus Gruppen gelesen. Sobald alle Attribute festgelegt werden, wird das Verfahren zur Untersuchung von Gruppen beendet. Je früher die Attribute also abgelesen werden, desto höher ihre Priorität ist. Der Administrator erhält die Zugriffsrechte.

2.2.Wenn ein Teil der Attribute fehlt und das Attribut DrWebInheritPermissions als FALSE definiert ist (bzw. nicht festgelegt ist), wird der Zugrif des Administrators erlaubt.

2.3.Wenn alle Attribute festgelegt sind, wird der Zugriff des Administrators erlaubt.

3.Wenn das Attribut DrWebAdmin als FALSE definiert ist, hat der Administrator keine Zugriffsrechte.

4.Wenn das Attribut DrWebAdmin nicht festgelegt ist:

4.1.Wenn das Attribut DrWebInheritPermissions den Wert TRUE hat, werden die Attribute in Gruppen gelesen. Weiter siehe Schritt 2.

4.2.Wenn das Attribut DrWebInheritPermissions den Wert FALSE hat (bzw. nicht festgelegt ist), siehe Schritt 3.

Authentifizierung unter Verwendung von LDAP

Die Einstellungen sind in der Konfigurationsdatei auth-ldap.xml angeführt.

Die grundsätzlichen Tags der Konfigurationsdatei:

<enabled/> und <order/> - der Variante für Active Directory ähnlich.

<server/> legt die Adresse des LDAP-Servers fest.

<user-dn/> definiert die Regeln für Übersetzung von Namen in DN unter Verwendung von DOS-artigen Masken.

Im Tag <user-dn/> können Ersatzsymbole benutzt werden:

* ersetzt die Reihenfolge beliebiger Symbole, ausgenommen . , = @ \ und Leerzeichen;

# ersetzt die Reihenfolge beliebiger Symbole.

<user-dn-expr/> definiert die Regeln für Übersetzung von Namen in DN unter Verwendung von regulären Ausdrücken.

Beispiel für eine und dieselbe Regel in unterschiedlichen Varianten:
<user-dn user="*@example.com" dn="CN=\1,DC=example,DC=com"/>
<user-dn-expr user="(.*)@example.com" dn="CN=\1,DC=example,DC=com"/>

\1 .. \9 definieren die Ersatzstelle in der Vorlage von Werten *, # oder Ausdrücken in Klammern.

Gemäß diesem Prinzip: wenn der Benutzername als login@example.com angegeben wird, ist DN nach Übersetzung wie folgt: "CN=login,DC=example,DC=com".

<user-dn-extension-enabled/> erlaubt die Ausführung des Lua-Skripts ldap-user-dn-translate.ds (aus dem Verzeichnis extensions) zur Übersetzung des Benutzernamens in DN. Dieses Skript wird nach dem Versuch, alle Regeln user-dn, user-dn-expr zu verwenden, ausgeführt, wenn keine passende Regel gefunden wird. Das Skript hat einen Parameter - den eingegebenen Benutzernamen. Das Skript gibt die Zeile, die entweder DN oder nichts enthält, zurück. Wenn keine einzige Regel passt und das Skript nicht erlaubt ist bzw. nichts zurückgegeben hat, wird der eingegebene Benutzername verwendet.

Die Attribute des LDAP-Objektes für DN, der infolge der Übersetzung erhalten wurde, und deren mögliche Werte können durch Tags neu definiert werden (die Default-Werte sind angegeben):

<!-- DrWebAdmin attribute equivalent (OID 1.3.6.1.4.1.29690.1.3.1) -->
<admin-attribute-name value="DrWebAdmin" true-value="^TRUE$" false-value="^FALSE$"/>
 
<!-- DrWebAdminGroupOnly attribute equivalent (OID 1.3.6.1.4.1.29690.1.3.2) -->
<readonly-admin-attribute-name value="DrWebAdminReadOnly" true-value="^TRUE$" false-value="^FALSE$"/>
 
<!-- DrWebAdminGroupOnly attribute equivalent (OID 1.3.6.1.4.1.29690.1.3.3) -->
<grouponly-admin-attribute-name value="DrWebAdminGroupOnly" true-value="^TRUE$" false-value="^FALSE$"/>
 
<!-- DrWebAdminGroup attribute equivalent (OID 1.3.6.1.4.1.29690.1.3.4) -->
<groups-admin-attribute-name value="DrWebAdminGroup"/>

Als Parameterwert true-value/false-value werden reguläre Ausdrücke festgelegt.

Wenn nicht festgelegte Werte der Administrator-Attribute erhalten geblieben sind, wird der Wert des memberOf-Attributs als eine Liste von DN-Gruppen, zu denen dieser Administrator gehört, betrachtet, wenn das Tag <group-reference-attribute-name value="memberOf"/> in der Konfigurationsdatei festgelegt wird. Die Suche nach benötigten Attributen in diesen Gruppen erfolgt genauso wie bei Verwendung von Active Directory.