User Documentation

OPC UA Server
Systemhandbuch
2696780000/02/04.2020
72
z.B. generell nicht schreibbar ist, kann der Client keinen Schreib-Befehl
durchführen, selbst wenn die Berechtigungen aufgrund der Rollenzuordnung
gegeben sind.
Globale Berechtigungen
Vor der Instanzierung von Variablen und Objekten (XML Eintrag Instances)
müssen Rollen und Berechtigungen global vergeben werden. Die Berechti-
gungen werden als Bitmaske definiert und entsprechen dem Zugriffstyp
(PermissionType), der in der OPC UA Spezifikation Teil 3 definiert ist.
Ein Rollenname darf mit terminierender Null nur maximal 128 Zeichen lang
sein. Maximal 30 verschiedene Rollen werden unterstützt. Die Berechtigun-
gen werden als Hexadezimalzahl interpretiert. Das Präfix "0x" ist optional.
Groß- und Kleinschreibung der Hexzahl (0xAABB bzw. 0xaabb) wird nicht
berücksichtigt.
Beispiel
Folgender Codeausschnitt zeigt die Definition von 2 Rollen mit Berechtigun-
gen. Die Rolle "Observer" kann nur den Baum durchlaufen und lesend auf
die instanzierten Knoten zugreifen. Die Rolle "Operator" kann zusätzlich
schreiben.
<DefaultRolePermissions>
<RolePermission RoleName="Observer" Permissions="0x21"/> <!-- Bit 0 -
Browse, Bit 5 - Read -->
<RolePermission RoleName="Operator" Permissions="0x61"/> <!-- Bit 0 -
Browse, Bit 5 - Read, Bit 6 - Write -->
</DefaultRolePermissions>
Ein Benutzer ohne Rollen bzw. mit Rollen die im XML nicht global definiert
wurden, hat nur Zugriff auf den Standardadressraum von OPC UA und den
Variablenbaum. Das gleiche gilt, wenn keine globalen Rollen im XML defi-
niert werden. Falls ein Benutzer mehreren Rollen hat, werden alle Berechti-
gungen der Rollen berücksichtigt.
Knotenbasierte XML Berechtigungen
Die global deklarierten Berechtigungen einer Rollen können pro Knoten er-
weitert oder eingeschränkt werden.
Folgendes Beispiel überschreibt die Berechtigung der Rolle "Operator" für
den Variablenknoten "Var1". Die Rolle "Operator" kann in der globalen Be-
rechtigungsdefinition "Browse", Lese und Schreibzugriffe durchführen. Für
den Variablenknoten "Var1" wird nun der Zugriff auf Browse und Lesen be-
schränkt.
<Variable
DataType="0:Types.0:DataTypes.0:BaseDataType.0:Boolean" NodeId="i=5000"
BrowseName="Var1" DisplayName="Var1" AccessLevel="0x03" ValueRank="1">
<NodeRolePermissions>
<RolePermission RoleName="Operator" Permissions="0x21"/>
</NodeRolePermissions>
</Variable>