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.

Eine Illustration zeigt die Kommunikation zwischen Client und Server. Ein Benutzersymbol mit Pfeilen, die anzeigen, dass es sich zuerst beim Betriebssystem authentifiziert und dann den Client verwendet. Der Client verwendet den Benutzernamen des authentifizierten Benutzers. Ein dicker Balken zwischen Client und Server zeigt eine sichere SSL-verschlüsselte und authentifizierte Verbindung an. In diesem Balken ist ein Pfeil vom Client zum Server zu sehen, der den Benutzernamen weiterleitet. Direkt darunter zeigt ein weiterer Pfeil vom Server zum Client an, dass die Aktionen für diesen Benutzer an den Client zurückgegeben werden.

Die Authentifizierung des Clients beim Server.

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.

Eine Illustration zeigt den Entscheidungsbaum, wie entschieden wird, ob ein Benutzer Teil einer Gruppe ist. Das Diagramm hebt hervor, dass der anfängliche Mitgliedschaftszustand durch den Wert ``startAsMember`` festgelegt wird. Als nächstes werden die Einschlussregeln überprüft und, falls eine zutrifft, die Mitgliedschaft bestätigt, falls dies nicht bereits durch ``startAsMember`` geschehen ist. Danach werden die Ausschlussregeln überprüft und, falls eine davon zutrifft, wird der Mitgliedschaftszustand verneint. Daher haben die Ausschlussregeln Priorität vor den Einschlussregeln.

Algorithmus zur Entscheidung, wann ein Benutzer Mitglied einer Gruppe ist.

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.