Terminal-Sets haben den Zweck, die Menge der Datensichtstationen, über die der Dialogzugang zu einer Benutzerkennung möglich ist, effektiv verwalten zu können. In einem Terminal-Set wird eine Liste von voll- oder teilqualifizierten Datensichtstationsnamen zusammengefasst. Listen von Terminal-Sets können einer Kennung positiv oder alternativ negativ zugeordnet werden (vgl. Kommando /MODIFY-LOGON-PROTECTION, Operand TERMINAL-SET=..., bzw. TERMINAL-SET=*EXCEPT(TERMINAL-SET=...), im Folgenden als Positivliste, bzw. Negativliste bezeichnet). Die in einer Positivliste definierten Stationen haben Dialogzugang, der Rest nicht. Die in einer Negativliste definierten Stationen haben keinen Zugang, der Rest hat Zugang. Eine Entscheidung für Negativlisten ist sorgfältig abzuwägen, weil die Menge der zugangsberechtigten Stationen unter Umständen unbestimmt ist.
Zusätzlich können Terminal-Sets mit einem Guard des Typs STDAC verknüpft werden. Auf diese Weise ist die Wirkung eines Terminal-Sets auch zeitlich steuerbar (Näheres siehe unter „Zugang zu einer mit Terminal-Sets geschützten Benutzerkennung").
Zur Verwaltung der Terminal-Sets stehen folgende Kommandos zur Verfügung:
CREATE-TERMINAL-SET | Terminal-Set anlegen |
MODIFY-TERMINAL-SET | Terminal-Set modifizieren |
DELETE-TERMINAL-SET | Terminal-Set löschen |
COPY-TERMINAL-SET | Terminal-Set kopieren |
SHOW-TERMINAL-SET | Terminal-Set anzeigen |
Berechtigt zur Verwaltung sind:
Systemglobale Benutzerverwalter (Inhaber des Privilegs USER-ADMINISTRATION) für alle Terminal-Sets
Gruppenverwalter, die mindestens das Attribut MANAGE-MEMBERS besitzen, für Terminal-Sets der Klasse GROUP oder USER. Die Terminal-Sets müssen seiner Gruppe oder deren Mitgliedern zugeordnet sein.
Es gibt 3 Klassen (Namensräume) für Terminal-Sets, die durch ihren Eigentümer unterschieden werden:
USER
Eigentümer des Terminal-Sets ist eine bestimmte Benutzerkennung.
Dieses Terminal-Set kann ausschließlich von der Benutzerkennung benutzt werden, die Eigentümer ist.
Das Terminal-Set wird automatisch gelöscht, wenn die Kennung gelöscht wird.
GROUP
Eigentümer des Terminal-Sets ist eine Benutzer-Gruppe.
Dieses Terminal-Set kann von allen Mitgliedern der Gruppe benutzt werden, die Eigentümer ist. Wenn eine Kennung die Gruppenmitgliedschaft verliert, verliert sie auch das Recht zur Benutzung des Terminal-Sets. Ist einer solchen Kennung keine zulässige Station mehr zugeordnet, besteht auch kein Dialogzugang mehr.
Das Terminal-Set wird automatisch gelöscht, wenn die Gruppe gelöscht wird.
SYSTEM
Das Terminal-Set ist gemeinschaftlichem Eigentum zugeordnet.
Berechtigt zur Verwaltung dieses Terminal-Sets ist ausschließlich der systemglobale Benutzer-Verwalter. Gruppenverwalter, die mindestens das Recht MANAGE-MEMBERS besitzen, können solche Terminal-Sets nur kopieren oder zuweisen.
Ein Terminal-Set wird durch seinen Namen und seinen Eigentümer identifiziert.
Im folgenden Beispiel handelt es sich daher um 4 unterschiedliche Terminal-Sets. Sie haben zwar alle denselben Namen, aber unterschiedliche Eigentümer:
Name | Eigentümer (SCOPE) |
TSET1 | *USER(USER-ID=USER1) |
TSET1 | *USER(USER-ID=USER2) |
TSET1 | *GROUP(GROUP-ID=GR1) |
TSET1 | *SYSTEM |
Schutz einer Benutzerkennung mit Terminal-Sets
Der Schutz einer Benutzerkennung mit Terminal-Sets wird mit den Kommandos /SET-LOGON-PROTECTION oder /MODIFY-LOGON-PROTECTION vereinbart.
Dabei kann der Zugang für eine Datensichtstation oder eine Gruppe von Datensichtstationen explizit erlaubt (Positivliste) oder explizit verboten werden (Negativliste).
Zugang zu einer mit Terminal-Sets geschützten Benutzerkennung
Im Einzelnen gilt für den Zugang zu einer Kennung, die mit Terminal-Sets geschützt ist, Folgendes:
Die Terminal-Sets werden daraufhin überprüft, ob der aktuelle Stationsname durch eine von ihnen erfasst wird (Näheres zu Stationsnamen finden Sie unter „Suche nach Datensichtstationsnamen"). Die Terminal-Sets werden in folgender Reihenfolge durchsucht:
Klassen USER, GROUP, SYSTEM
Innerhalb der Klassen alphabetisch nach den Namen der Terminal-Sets
Falls eine Kennung über eine Positivliste von Terminal-Sets geschützt ist, gilt: Wird kein Terminal-Set gefunden, das den Stationsnamen enthält, besteht kein Zugang. Wird eines gefunden, dann wird geprüft, ob dieses Terminal-Set mit einem Guard des Typs STDAC verknüpft ist. Ist das nicht der Fall, besteht Zugang. Ist das Terminal-Set mit einem Guard verknüpft und liefert die Auswertung der in ihm definierten Zeitbedingungen ’wahr’, besteht Zugang. Ist das Ergebnis der Guard-Auswertung ’falsch’, besteht kein Zugang.
Hinweis
Das Ergebnis einer Guard-Auswertung ist immer ’falsch’, wenn das Guard nicht zugreifbar ist oder einen anderen Typ als STDAC aufweist.
Falls eine Kennung über eine Negativliste von Terminal-Sets geschützt ist, gilt: Wird kein Terminal-Set gefunden, das den Stationsnamen enthält, besteht Zugang. Wird eines gefunden, dann wird geprüft, ob dieses Terminal-Set mit einem Guard verknüpft ist. Ist das nicht der Fall, besteht kein Zugang. Ist das Terminal-Set mit einem Guard verknüpft und liefert die Auswertung der in ihm definierten Zeitbedingungen ’wahr’, wird die Negativliste als wirksam betrachtet und es besteht kein Zugang. Ist das Ergebnis der Guard-Auswertung ’falsch’, wird die Negativliste als nicht wirksam betrachtet und es besteht Zugang.
Hinweis zu den Operandenwerten TERMINAL-SET = *NO-PROTECTION bzw *NONE
Der Standardwert *NO-PROTECTION definiert, dass kein Schutz über Terminal-Sets besteht.
Der Operandenwert *NONE ordnet der Kennung eine leere Liste von Terminal-Sets zu. Sind der Kennung alle Terminal-Sets entzogen worden, ist ihr ebenfalls die leere Liste (von Terminal-Sets) zugeordnet. In diesem Fall besteht der Schutz der Kennung mittels Terminal-Sets weiterhin, es wird aber kein Terminal-Set mit dem aktuellen Stationsnamen gefunden. Falls die Kennung durch eine Positivliste geschützt ist, besteht kein Zugang. Ist die Kennung durch eine Negativliste geschützt, haben alle Stationen Zugang.
Folgende Tabelle zeigt das Ergebnis der Zugangsprüfung:
Passender Name wurde | Guard | |||
nicht | nicht | Bedingungen | Bedingungen | |
keinem Terminal-Set | Zugang nicht erlaubt | |||
keinem Terminal-Set | Zugang erlaubt | |||
Terminal-Set in | Zugang erlaubt | Zugang nicht | Zugang jetzt | Zugang jetzt |
Terminal-Set in Negativliste | Zugang nicht | Zugang nicht | Zugang jetzt | Zugang jetzt |
Suche nach Datensichtstationsnamen
Der Name, mit dem eine Datensichtstation identifiziert und nach dem in den Terminal-Sets gesucht wird, hängt davon ab, wie der Zugang zur Anwendung $DIALOG realisiert ist:
Besteht ein unmittelbarer Zugang der Datensichtstation zu $DIALOG, wird diese anhand eines Paares von 8 Byte langen Namen identifiziert, die Emulation und PC bezeichnen (STATION und PROC bei der Ausgabe des Kommandos /SHOW-JOB-STATUS).
Bei zwischengeschalteten Applikationen (wie z.B. OMNIS) gibt es zwei Paare 8 Byte langer Namen, und zwar einerseits Applikations- und Rechnername, auf dem die Applikation läuft (STATION und PROC) und den Original-Stations-/Rechnernamen, über den die Applikation bedient wird (O_STAT und O_PROC). Letzteres Paar wird von der Applikation selbst geliefert, es gilt nur dann als vertrauenswürdig, wenn der Applikationsname mit dem Zeichen $ beginnt und die Prüfung auf dem bezeichneten Rechner durchgeführt wird.
Welche Zugangsart vorliegt, kann somit leicht über das Kommando SHOW-JOB-STATUS ermittelt werden.
|
Im ersten Fall (unmittelbarer Zugang), in dem es nur ein Namenspaar gibt, kann kein Prüfmodus angegeben werden. In das Terminal-Set ist das Namenspaar einzutragen (siehe Kommando MODIFY-TERMINAL-SET, Operand TERMINAL-ENTRY=*ADD(...)).
Im zweiten Fall (zwischengeschaltete Applikation, zwei Namenspaare) stehen drei Prüfmodie zur Auswahl:
CHECK-MODE=*STD: Wenn die Applikation vertrauenswürdig ist, wird nach dem Original Stations-/Rechnernamen gesucht, im Fall ’nicht vertrauenswürdig’ besteht kein Zugang.
CHECK-MODE=*NET-TERMINAL-NAME: Im Terminal-Set wird nach dem Paar Original-Stations-/Rechnernamen wie von der Applikation geliefert, gesucht.
CHECK-MODE=*APPLICATION-TERMINAL-NAME: Im Terminal-Set wird nach dem Paar Applikations-/Rechnername gesucht.
Beispiel zur Prüfung von Datensichtstationsnamen
Es seien die folgenden 4 Datensichtstationseinträge definiert:
PROCESSOR | STATION | CHECK-MODE | |
1 | D016KR17 | DSB17166 | *STD |
2 | D016KR17 | DSB17166 | *NET-TERMINAL-NAME |
3 | D016KR17 | DSB17166 | *APPLICATION-TERMINAL-NAME |
4 | D016ZE04 | OMNISAPP | *APPLICATION-TERMINAL-NAME |
Auf dem Rechner D016ZE04 finden Zugangsversuche von verschiedenen Datensichtstationen statt. Die folgende Tabelle zeigt die Ergebnisse der Prüfung gegen die Datensichtstationseinträge der vorhergehenden Tabelle. Die Bezeichnungen in den Überschriften entsprechen den Feldnamen, die vom Kommando /SHOW-JOB-STATUS ausgegeben werden. „Ja“ als Ergebnis bedeutet, der Datensichtstationseintrag passt zur Datensichtstation, von der der Zugang erfolgt. „Nein“ heißt, der Datensichtstationseintrag passt nicht. Die Ziffern verweisen auf die Begründung für das Ergebnis:
Zwischenge | Datensichtstation | Ergebnis der Prüfung gegen | |||||||
PROC | STATION | O_PROC | O_STAT | 1 | 2 | 3 | 4 | ||
nein | D016KR17 | DSB17166 | - | - | Ja1 | Ja1 | Ja1 | Nein4 | |
ja | D016ZE04 | OMNISAPP | D016KR17 | DSB17166 | Nein5 | Ja2 | Nein4 | Ja1 | |
ja | D016ZE07 | $APPNAME | D016KR17 | DSB17166 | Nein6 | Ja2 | Nein4 | Nein4 | |
ja | D016ZE04 | $APPNAME | D016KR17 | DSB17166 | Ja3 | Ja2 | Nein4 | Nein4 | |
Begründungen: | |||||||||
1 | PROC/STATION ist korrekt | ||||||||
2 | O_PROC/O_STAT ist korrekt, PROC/STATION ist irrelevant | ||||||||
3 | PROC/STATION ist vertrauenswürdig und O_PROC/O_STAT ist korrekt | ||||||||
4 | PROC/STATION ist nicht korrekt | ||||||||
5 | PROC/STATION ist nicht vertrauenswürdig, weil STATION nicht mit „$“ beginnt | ||||||||
6 | PROC/STATION ist nicht vertrauenswürdig, weil PROC nicht der Rechner ist, auf dem der |
Beispiele zum Zugangsschutz mit Terminal-Sets
Beispiel 1
Der Dialogzugang zur Benutzerkennung USER0001 soll nur über das Terminal (Processor: D016KR17, Station: DSB17166) zulässig sein. Erfolgt der Zugang über eine Applikation, soll der originale Terminalname geprüft werden.
Das Terminal-Set TERMSET1 soll den Zugang überwachen.
|
(1) | Das Terminal-Set TERMSET1 wird eingerichtet. |
(2) | Der Terminalname wird eingetragen. Das Attribut CHECK-MODE ist beim Zugang über Applikationen wie z.B. OMNIS von Bedeutung. Die Angabe *NET-TERMINAL-NAME bedeutet einen geringeren Schutz, da die Vertrauenswürdigkeit der jeweiligen Applikation selbst nicht vorausgesetzt wird. |
(3) | Terminal-Set TERMSET1 wird an Benutzerkennung USER0001 zugewiesen. |
(4) | Anzeige des fertigen Terminal-Sets. |
(5) | Anzeige des Job-Status nach erfolgtem Logon ohne zwischengeschaltete Applikation. Geprüft wird das Paar (STATION,PROC). |
Beispiel 2
Der Dialogzugang zur Benutzerkennung USER0001 soll nur über den PC PGTD1234 zulässig sein. Der PC selbst wird nur innerhalb der Arbeitszeit von 08:00 bis 18:00 Uhr von autorisierten Mitarbeitern genutzt.
Das Terminal-Set TERMSET2 soll exklusiv der Benutzerkennung USER0001 zugeordnet sein und zusammen mit dem Guard GUARD002 den Zugang überwachen.
|
(1) | Guard GUARD002 wird eingerichtet. |
(2) | Die Zugangsbedingung für die Benutzerkennung USER0001 wird im Guard vereinbart. Der Zugang zur Benutzerkennung USER0001 ist täglich von 08:00 bis 18:00 erlaubt. |
(3) | Terminal-Set TERMSET1 wird im Namensraum der Benutzerkennung USER0001 eingerichtet. |
(4) | In das Terminal-Set werden der PC PGTD1234 als zulässiger Terminalname und das Guard, das den Zugang regelt, eingetragen. Der Stationsname ist nicht von Bedeutung und wird mit Wildcard übergangen. |
(5) | Das Terminal-Set TERMSET2 wird der Benutzerkennung USER0001 zugewiesen. |
(6) | Anzeige des fertigen Terminal-Sets. |
(7) | Anzeige des Job-Status nach erfolgtem Logon über OMNIS. Geprüft wird das Paar (O_STAT,O_PROC). |