Anschlüsse mit generiertem Berechtigungsnamen genügen nicht mehr den strengen Sicherheitsanforderungen an ein System, da die Aufgabengebiete, d.h. eine Summe von Berechtigungsschlüsseln, immer nur einem Gerät oder einem berechtigten Benutzerprogramm, nicht aber einer Person zugeordnet werden können.
Diese Personalisierung wird bei Anschlüssen mit dynamischen Berechtigungsnamen gewährleistet, da bei der Konnektierung eine Operator-Identifikation (entspricht einer Benutzerkennung) angegeben werden muss. Unmittelbar nach der Konnektierung verfügt das berechtigte Benutzerprogramm über keinerlei Berechtigungen, kann also nur Operatorfunktionen, die keine Berechtigungen voraussetzen, und Kommandos mit dem Berechtigungsschlüssel @ nutzen. Erst mit dem Kommando REQUEST-OPERATOR-ROLE (Berechtigungsschlüssel @) können Berechtigungen beantragt werden, wobei die Vergabe einer OPERID-bezogenen Prüfung unterliegt.
Eine Operator-Rolle entspricht einem Aufgabengebiet und ist eine von der Systembetreuung festgelegte Menge von Berechtigungsschlüsseln, wobei beliebige Kombinationen der insgesamt 40 Berechtigungsschlüssel möglich sind. Ein berechtigtes Benutzerprogramm kann mehrere Operator-Rollen beantragen. Die logische Summe der Operator-Rollen ergibt dann das Berechtigungsprofil eines berechtigten Benutzerprogramms.
Mit der Festlegung von Operator-Rollen durch die Systembetreuung können auch Operatorfunktionen personenbezogen aufgeteilt und berechtigten Benutzerprogrammen zugewiesen werden.
Verbindungsaufbau mit dynamischem Berechtigungsnamen
Der Verbindungsaufbau einer berechtigten Anwendung mit dynamischem Berechtigungsnamen erfolgt grundsätzlich in mehreren Schritten. Die meisten davon sind nur optional, abhängig von den in der Verbindungsnachricht gemachten Angaben und davon, wie die verwendete Operator-Kennung geschützt ist.
Von $CONSOLE (Systemtask UCON) kann nicht überprüft werden, ob die Angabe $CONSOLE oder @CONSOLE in der ankommenden Verbindungsanforderung der Realität entspricht ($CONSOLE für die Datensichtstation als Endbenutzer, @CONSOLE für ein Programm als Endbenutzer), da diese Verbindungsanforderung immer von einem Vermittlerprogramm (z.B. OMNIS) eingereicht wird.
Die Systembetreuung sollte darauf achten, dass nur solche Programme als Vermittler eingesetzt werden, die die Korrektheit der Eingabe (erstes Zeichen „$“ oder „@“) sicherstellen. Er kann ausgewählten Kennungen den Zugang zu BS2000 ausschließlich von der Datensichtstation erlauben (siehe Kommando SET-LOGON-PROTECTION).
Erster Schritt: Verbindungaufforderung
Das berechtigte Benutzerprogramm sendet zunächst an $CONSOLE des gewünschten Systems eine Verbindungsanforderung mit folgender Struktur (x=$ oder x=@, je nach Art des Programmanschlusses, siehe auch Abschnitt „Format der Verbindungsnachricht für dynamische Berechtigungsnamen"):
NAME=xCONSOLE[,OPERID=<name>][,PASSWORD=<password>][,PROTVERS=V<integer>]
Der Anschluss wird vorläufig akzeptiert, wenn folgende Kriterien erfüllt sind:
es sind nicht alle zu vergebenden Berechtigungsnamen belegt
der Systemparameter NBBAPRIV erlaubt die Anmeldung
Mit der vorläufigen Akzeptierung wird ein Begleittext gesendet, dem die von $CONSOLE (UCON) akzeptierte Protokollversion (PROTVERS) und die BS2000-Version zu entnehmen sind. Wenn die beantragte Protokollversion größer als die höchste Version ist, die von $CONSOLE unterstützt wird, enthält der Begleittext den maximalen Wert, den UCON akzeptieren kann.
Struktur des Begleittextes:
00 - 18 DC
C'CONNECTION ACCEPTED'
19 Byte
19 DC
C' ' (Leerzeichen)
1 Byte
20 - 21 DC
C'nn' (Protokollversionsnummer)
2 Byte
22 DC
C',' (Komma)
1 Byte
23 - 26 DC
C'nn.n' (BS2000-Versionsnummer)
4 Byts
Für BS2000 OSD/BC V11.0 wird als BS2000-Versionsnummer C'20.0' ausgegeben.
Unabhängig von der in der Verbindungsanforderung beantragten Version des Protokolls, werden ab diesem Zeitpunkt, bis zur endgültigen Akzeptierung oder Ablehnung der Verbindung, alle Nachrichten in beide Richtungen mit einem Header versehen. Das Protokoll muss strikt eingehalten werden; unerwartete Eingaben während des Anmeldungsdialogs führen zur Zurückweisung des Konnektierungsversuches.
Zweiter Schritt: OPR-LOGON-REQUEST
Wenn der Operand OPERID in der Verbindungsnachricht fehlt, wird er vom System durch die Nachricht
PLEASE LOGON
angefordert.
Das berechtigte Benutzerprogramm hat nun mit der Nachricht zu antworten
(die ISP-FormLOGON <name>,,<kennwort>
ist zulässig):SET-LOGON-PARAMETERS USER-ID=<name>[,PASSWORD=<password>]
Das im Kommando SET-LOGON-PARAMETERS angegebene Kennwort wird für die weiteren Überprüfungen benutzt. Das in der Verbindungsnachricht eventuell angegebene Kennwort wird grundsätzlich ignoriert, wenn ein nachträgliches Kommando SET-LOGON-PARAMETERS angefordert wurde.
Dritter Schritt: Prüfung der Schutzkriterien
Anhand der bis hierher erhaltenen Information werden vom System die im Benutzerkatalog hinterlegten Schutzkriterien der Operator-Identifikation abgefragt.
Wird bei der Überprüfung der Authentisierungsdaten festgestellt, dass für diese Operator-Identifikation ein Anschluss in der angegebenen Betriebsart (Attribute OPERATOR-ACCESS-TERMINAL bzw. OPERATOR-ACCESS-PROGRAM im Benutzerkatalog) nicht erlaubt ist, wird die Verbindung wieder abgebaut.
Wird bei der Überprüfung der Authentisierungsdaten festgestellt, dass der Anschluss nicht durch Kennwort geschützt ist, wird der Schritt 4 übersprungen.
Vierter Schritt: Anforderung des Kennworts
Wenn das Kennwort bis jetzt noch nicht angegeben worden ist, wird es vom System mit der Nachricht
PLEASE ENTER PASSWORD
angefordert.
Das berechtigte Benutzerprogramm hat nun mit dem Kennwort zu antworten.
Unter OMNIS erfolgt die Eingabe dunkelgesteuert.Fünfter Schritt: Prüfung der Zugangsberechtigung
Nachdem das berechtigte Benutzerprogramm alle notwendigen Daten an das System weitergeleitet hat, muss es noch die Bestätigung des Anschlusses an das System abwarten, bevor es mit dem normalen Nachrichtenverkehr, gemäß der in der Verbindungsanforderung geforderten Protokollversion, beginnen kann.
Das System überprüft die Anschlussdaten und akzeptiert endgültig den Anschluss, wenn das angegebene Kennwort korrekt ist bzw. kein Kennwort erforderlich ist und OPERID und PASSWORD im Benutzerkatalogeintrag zusammenpassen
(wenn die OPERID mit Kennwort zu authentisieren ist).Die Bestätigung enthält folgenden, an der Datensichtstation auszugebenden Text:
CONNECTION REQUEST ACCEPTED, APPLICATION NAME = @xxx
Das angeschlossene berechtigte Benutzerprogramm kann zunächst nur einige nicht schützenswerte Kommandos eingeben (Schloss @). Um Operatorfunktionen auszuführen, muss es mit dem Kommando REQUEST-OPERATOR-ROLE eine oder mehrere Operator-Rollen beantragen.
Format der Verbindungsnachricht für dynamische Berechtigungsnamen
[NAME=]xCONSOLE [,[OPERID=]name] [,[PASSWORD=]C'password 1..8'] [,[PROTVERS=]Vn] [,[DISCON=]{YES/NO}]
Die Verbindungsanforderung kann auch ohne Schlüsselworte angegeben werden.
xCONSOLE
kennzeichnet die Art des Programmanschlusses im sicheren System
(siehe Kommando SET-LOGON-PROTECTION im SECOS-Handbuch „Zugangs- und Zugriffskontrolle“ [46]). Für x kann „$“ oder „@“ eingesetzt werden:
$CONSOLE
zeigt an, dass das berechtigte Benutzerprogramm im Dialog mit einer Person arbeitet. Die Prüfung der Zugangsberechtigung erfolgt gegen die mit SET-/MODIFY-LOGON-PROTECTION, Operand OPERATOR-ACCESS-TERM, getroffenen Festlegungen.
@CONSOLE
zeigt an, dass das berechtigte Benutzerprogramm im Batch-Betrieb arbeitet.
Die Prüfung der Zugangsberechtigung erfolgt gegen die mit SET-/MODIFY-LOGON-PROTECTION, Operand OPERATOR-ACCESS-PROGRAM, getroffenen Festlegungen.
OPERID=<name>
Name einer Operator-Identfikation. Eine Operator-Identifikation ist eine Benutzerkennung für Operatoren. Einen funktionellen Unterschied zu einer gewöhnlichen Benutzerkennung gibt es zunächst nicht. Erst wenn mit dem Kommando SET-LOGON-PROTECTION einer Benutzerkennung Operatorberechtigungen zugeordnet wurden, kann man sinnvollerweise von einer Operator-Identifikation sprechen.
PASSWORD=C'<password 1..8>'
Für eine Operator-Identfikation kann (wie für jede Benutzerkennung) ein Kennwort vereinbart werden. Das im Benutzerkatalog einer Operator-Identfikation eingetragene Kennwort ist anzugeben.
Ein sedezimales Kennwort ist nicht erlaubt. Das Kennwort darf max. 8 Zeichen lang sein.
PROTVERS=Vn
bezeichnet die Versionsnummer der Schnittstelle zwischen der Anwendung und $CONSOLE (n = 00, 01, 02). Jede Versionsnummer entspricht einem eindeutigen Kommunikationsprotokoll, das von $CONSOLE unterstützt und eingehalten wird.
Der Standardwert ist 00. In diesem Fall erfolgt der Nachrichtenverkehr zwischen System und berechtigtem Benutzerprogramm in beiden Richtungen ohne einen Header.
Bei der Version 01 empfängt das berechtigte Benutzerprogramm vom System die Nachricht und einen Header. Der Nachricht folgt bei Meldungen aus der Meldungsdatei, die mit dem Makro MSG7 oder MSG7X ausgegeben werden, ein Nachspann, der die Nachricht zur programmierbaren Auswertung „datenorientiert“ enthält. Die Datenstruktur des Headers wird vom Makro NBMHE festgelegt, die des Nachspanns vom Makro NBMAP (siehe "Makro NBMHE" und "Makro NBMAP" im Kapitel "Nachrichtenformate"). Der Nachrichtenverkehr vom berechtigten Benutzerprogramm zum System wird, wie bei der Protokollversion 00, ohne Header durchgeführt.
Bei der Version 02 wird der Nachrichtenverkehr in beiden Richtungen mit Header durchgeführt. Berechtigte Benutzerprogramme sind damit in der Lage, Nachrichten als Kommandoergebnisse und Zusatzinformationen zu kennzeichnen und dem System das Ende einer Kommandobearbeitung mitzuteilen.
Fehlt in der Verbindungsnachricht der Operand PROTVERS, so wird der Standardwert 00 eingesetzt. Wurde in PROTVERS ein zu hoher Wert angegeben, so wird die höchste vom System bediente Version im Begleittext der Verbindungsakzeptierung eingetragen. Die beantragte Versionsnummer der Schnittstelle kann also herabgesetzt werden. Ist das berechtigte Benutzerprogramm mit der herabgesetzten Versionsnummer nicht einverstanden, kann es die Verbindung abbauen.
DISCON
legt fest, wie das System reagiert, wenn das berechtigte Benutzerprogamm mit dem Empfang von Meldungen so weit in den Rückstand gerät, dass die durch den Systemparameter NBRCSCK[N] festgelegte Zeit überschritten wird.
DISCON=YES
Voreinstellung: Das System baut die Verbindung zum berechtigten Benutzerprogramm ab.
DISCON=NO
Das berechtigte Benutzerprogramm wird nicht diskonnektiert. Statt dessen werden alle Meldungen, die zur Ausgabe an das berechtigte Benutzerprogramm anstehen, gelöscht und durch eine einzelne Meldung NBR0601
ersetzt.
NBR0601 SOME MESSAGES DISCARDED SINCE THE DESTINATION APPLICATION DID NOT
RECEIVE THEM JUST IN TIME
Verbindungsabbau
Zum Beenden der $CONSOLE-Anwendung einschließlich Verbindungsabbau wird (mit NBCONOPI=Y) das Kommando EXIT-JOB angeboten. Damit wird implizit auch die Funktion von RELEASE-OPERATOR-ROLE OPERATOR-ROLE=*ALL realisiert und damit die Rückgabe aller Berechtigungsschlüssel.