PDA

View Full Version : Berechtigung z.B. QNTC



TR1
24-02-15, 11:41
Moin.

Habe ein Java-Programm das unter einem Benutzer läuft und über eine DTAQ gesteuert wird um z.B. Dateien per Mail zu versenden. Habe jetzt das Problem, das ein anderer Benutzer mitteilt das eine Datei (über QNTC angesprochen) verarbeitet werden soll. Der Javajob-User hat keine Berechtigung auf diesen QNTC-Pfad.

Welche Möglichkeiten bestehen um das Problem zu lösen?

- Dem Java-Job Benutzer die Berechtigung zu erteilen geht nicht.
- Den Java-Job jedesmal unter dem akt. User zu starten ist zu langsam.
- Der Job der das anstösst könnte die Datei vorher temporär ablegen und nach der verarbeitung löschen.

Eure Ideen/Euer Vorgang bei sowas?


Vorab schon Danke.

Fuerchau
24-02-15, 12:37
Den Javajob-User als lokalen User auf dem Windows-PC einrichten, so dass die automatische Anmeldung dann funktioniert.
QNTC unterstützt keine dynamische Anmeldung. Es wird immer mit dem aktuellen User und Kennwort, der auf QNTC zugreift, eine Anmeldung an dem PC versucht.
Da auch keine Domänen-Anmeldung möglich ist, muss der User lokal auf dem PC eingerichtet sein. Ggf. ist die Kennwortrichtlinie anzupassen damit das AS/400-Kennwort überhaupt verwendet werden kann.

TR1
24-02-15, 12:50
Wie verhindere ich das dann jemand mit dem Javajob-User auf die eigentlich geschützten Daten von User XY zugreift?

Bekommt man den com.ibm.as400.access.AS400 ggf. auf einen anderen User im Java-Job geswitcht?
Oder einen Webserver wo die Jobs dann unter verschiedenen Usern laufen?

Fuerchau
24-02-15, 14:01
Den Zugriffsschutz musst du in deinem Javajob realisieren.
Da du ja mit diesem zugreifst und den Auftrag dafür über die DTAQ erhältst musst du selber prüfen ob der anfordernde User dafür berechtigt ist.
Das System bzw. QNTC kann dir das nicht abnehmen.
Nun musst du noch unterscheiden:
Mittels com.ibm.as400.access.AS400 greifst du auf AS/400-Ressorcen z.B. für Programmcall zu. Hierfür machst du ja auch eine Anmeldung. Du kannst dich natürlich mit beliebigen Usern anmelden, dafür benötigst du allerdings leider auch die Kennwörter.
Für den Zugriff aufs IFS benötigst du aber keinerlei API's. Dies sind ja ganz normale File-IO's.
Hier erfolgt nun mal der Zugriff aufs QNTC mit dem Job-User.
Ein Ummelden ist leider nicht möglich.

Wie das nun genau bei Webservern geht weiß ich nicht, aber da gibt es ja auch Mechanismen um einen User an der AS/400 anmelden zu können.
Die Webserver-Jobs selber laufen wohl immer über den selben User.

BenderD
24-02-15, 21:19
... wenn man denn die Berechtigung eines anfordernden Benutzers in einem asynchronen Job verwenden will, dann braucht man ein Session handling und den Transport der Authentifizierung. Bei der Authentifizierung könnte man dann einen "secure" connect aufmachen, wie man ihn braucht. Session Handling kann man sich dann von AppServer4RPG (Open Source) holen, das unter einem Web Container (Tomcat o. ä. zu implementieren, wäre auch denkbar.

D*B

TR1
27-02-15, 07:14
Hört sich ja schonmal gut an, aber die Umsetzung ?!
Kannst du mir Quellen nennen wo man sich in das Thema einarbeiten kann?
Danke

BenderD
27-02-15, 09:37
... speziell zu Deiner Problematik nicht, aber zu AppServer4RPG und ArdGate gibt es ein paar Präsentationen, ein wenig Doku, die Quellen sind publiziert und es gibt noch einen als freundlichen eMailer bekannten Autor, der auch Workshops und Coaching anbietet.

D*B