Zugriffsverwaltung¶
Das Actions System verfügt über ein äußerst flexibles integriertes Zugriffsverwaltungssystem. Dieses beschränkt die Sichtbarkeit von Aktionen auf bestimmte Actions-Benutzergruppen. Diese lokalen Benutzergruppen können unabhängig von der Netzwerkumgebung konfiguriert werden, es besteht jedoch die Option, sie auf bereits bestehenden Gruppen eines Active Directory Servers aufzubauen. Weitere Details findest du unter Active Directory Gruppen.
Funktionsweise¶
Der Benutzer ist bereits beim Betriebssystem authentifiziert, wenn der Actions Client gestartet wird. Die nachfolgende Illustration verdeutlicht die Interaktionen zwischen den Komponenten.
Sobald der Client gestartet ist, wird eine sichere, SSL-Verbindung zum Server geöffnet. Neben der Verschlüsselung wird die Verbindung mit einem API-Schlüsselpaar authentifiziert. Darüber hinaus empfehlen wir, die Zertifikate zu überprüfen, die zur Authentifizierung beim Server verwendet werden. Mit diesen Sicherheitsmaßnahmen sollte der Server den Informationen, die er vom Client erhält, vertrauen können.
Die Authentifizierungsinformationen vom Benutzer, der den Client startet, werden vom Betriebssystem angefordert und an den Server weitergeleitet. Sie werden mit den konfigurierten Gruppen abgeglichen und die für den verbindenden Benutzer erlaubten Aktionen werden zurückgegeben.
Zugriff auf Aktionen basierend auf Gruppen¶
Der Zugriff wird basierend auf in der Konfiguration definierten Gruppen gewährt. Du kannst beliebig viele benannte Gruppen definieren und Regeln konfigurieren, nach denen eine Person in eine Gruppe aufgenommen oder aus einer Gruppe ausgeschlossen wird. Zusätzlich kannst du Gruppen basierend auf dem Schlüssel, der zum Verbinden mit dem Server verwendet wurde, abgleichen. Diese lokalen Gruppen stehen in keiner Verbindung mit vom Betriebssystem oder Netzwerk definierten Gruppen, sie dienen lediglich der Organisation der Zugriffsrechte in der Konfiguration.
Jede Aktion kann eine Liste dieser lokalen Gruppen enthalten, die erforderlich sind, um die Aktion zu sehen und auszuführen. Es gibt ein spezielles Schlüsselwort „any“, das du in diese Liste aufnehmen kannst, um eine Aktion für jeden Benutzer freizugeben.
Wenn eine der erforderlichen Gruppen einer lokalen Gruppe entspricht, wird die Aktion dem Benutzer angezeigt. Aktionen, die nicht übereinstimmen, werden ausgeblendet, sodass ein Benutzer nicht sieht, worauf er keinen Zugriff hat.
Entscheidung, ob ein Benutzer in einer lokalen Gruppe ist¶
Um zu entscheiden, ob ein Benutzer Mitglied einer lokalen Gruppe ist, wird die Liste der Gruppen sequenziell überprüft. Für jede Gruppe werden die Ein- und Ausschlussregeln überprüft, wie in der folgenden Illustration gezeigt.
Um die Dinge klarzustellen, möchte ich dir anhand einiger Beispielkonfigurationseinträge zeigen, wie die Entscheidung getroffen wird.
Beispiel 1¶
Betrachten wir den folgenden Konfigurationsblock:
1<ListEntry>
2 <Value name="groupName">test1</Value>
3 <Value name="startAsMember">No</Value>
4 <Value name="includeUserNames">alice bert</Value>
5 <Value name="includeUserGroups">testg1 testg2</Value>
6 <Value name="excludeUserNames"></Value>
7 <Value name="excludeUserGroups">noaccess</Value>
8</ListEntry>
Nehmen wir an, der Benutzer alice
ist in der Netzwerkgruppe noaccess
.
Wenn der Server testet, ob der Benutzer Mitglied der lokalen Gruppe test1
ist, wird zuerst das Flag startAsMember
geprüft. In diesem Fall ist das Flag auf No
gesetzt, also ist Alice zunächst kein Mitglied dieser Gruppe. Als nächstes werden die Einschlussregeln überprüft und Alice entspricht der Liste der Benutzer im Wert includeUserNames
. An diesem Punkt wäre Alice Mitglied der lokalen Gruppe test1
.
Nach den Einschlussregeln werden die Ausschlussregeln geprüft. In unserem Beispiel entspricht die Netzwerkgruppe noaccess
, in der alice
Mitglied ist, der Gruppenliste im Wert excludeUserGroups
. Jetzt wird alice
von dieser lokalen Gruppe ausgeschlossen und ist nicht mehr Mitglied der lokalen Gruppe test1
.
Beispiel 2¶
Betrachten wir den folgenden Konfigurationsblock:
1<ListEntry>
2 <Value name="groupName">test2</Value>
3 <Value name="startAsMember">Yes</Value>
4 <Value name="includeUserNames"></Value>
5 <Value name="includeUserGroups"></Value>
6 <Value name="excludeUserNames">alice daniel</Value>
7 <Value name="excludeUserGroups">noaccess</Value>
8</ListEntry>
Nehmen wir an, der Benutzer bert
ist in den Netzwerkgruppen testg1
und testg2
. Zuerst wird das Flag startAsMember
geprüft. Hier ist das Flag auf Yes
gesetzt, daher ist bert
Mitglied der lokalen Gruppe test2
.
Die Einschlussregeln können übersprungen werden, wenn das startAsMember
-Flag auf Yes
gesetzt ist. Als nächstes werden die Ausschlussregeln überprüft. Weder der Benutzername noch eine der Netzwerkgruppen stimmen überein.
In diesem Beispiel behält der Benutzer bert seine Mitgliedschaft in der lokalen Gruppe test2
.