JobScheduler Security - Software- und Organisations

Transcription

JobScheduler Security - Software- und Organisations
JobScheduler - Job Execution and Scheduling System
Software Open Source
März 2015
März 2015
Seite: 1
- Impressum
Software Open Source
Impressum
Software- und Organisations-Service GmbH
Giesebrechtstr. 15
D-10629 Berlin
Germany
Telefon +49 (0)30 86 47 90-0
Telefax +49 (0)30 8 61 33 35
Mail [email protected]
Web http://www.sos-berlin.com
Letzte Aktualisierung: 03/13/2015 12:06 PM
Diese Dokumentation basiert auf der JobScheduler Version 1.7.4169.
Copyright © 2005-2015 SOS GmbH Berlin.
All rights reserved. All trademarks or registered trademarks are the property of their respective holders. Alle
Informationen in diesem Dokument können ohne vorherige Ankündigung verändert werden.
This product includes software developed by the Apache Software Foundation (http://apache.org/)
We would appreciate any feedback you have, or suggestions for changes and improvements; please forward your
comments to [email protected].
März 2015
Seite: 2
- Inhaltsverzeichnis
Software Open Source
Inhaltsverzeichnis
1 ...............................................................................................................4
2 ...............................................................................................................5
3 ...............................................................................................................9
4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
5 Glossar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
März 2015
Seite: 3
Software Open Source
1
März 2015
Seite: 4
Software Open Source
2
shiro will be configured with the file shiro.ini found in the class_path. This file specifies the realm with which the
authentication and the authorization will be done.
Authentication
The authentication will be done by a user name password combination.
Authentication method
There are three available authentication methods
•
authentication against a database
•
authentication against ldap
•
authentication against a shiro.ini file
Configuration with Hibernate
To enable the Hibernate Realm, the following shiro.ini must be found in the classpath
[main]
hibernateRealm = com.sos.dialog.auth.SOSHibernateAuthorizingRealm
hibernateRealm.hibernateConfigurationFile=C:\Users\nn\Documents\sos-berlin.com\jobscheduler\scheduler_current\config\hi
bernate.cfg.xml
securityManager.realms = $hibernateRealm
cacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager
securityManager.cacheManager = $cacheManager
The information containing users, roles and right are stored in the following tables
März 2015
Seite: 5
Software Open Source
Table with user and passwords.
CREATE TABLE SOS_USER (
"ID"
NUMBER(9,0),
"SOS_USER_NAME"
VARCHAR2(250 BYTE),
"SOS_USER_PASSWORD" VARCHAR2(250 BYTE),
primaray key("ID")
)
/*MD5 Hash*/
Directly assigned rights to roles or users.
CREATE TABLE SOS_USER_RIGHT (
"ID" NUMBER(9,0),
"ROLE_ID" NUMBER(9,0),
"USER_ID" NUMBER(9,0),
"SOS_USER_RIGHT" VARCHAR2(250),
primaray key("ID")
)
Table with roles
CREATE TABLE SOS_USER_ROLE (
"ID" NUMBER(9,0),
"SOS_USER_ROLE" VARCHAR2(250 BYTE),
primaray key("ID")
)
Assignment of roles to users
CREATE TABLE SOS_USER2ROLE (
"ID" NUMBER(9,0),
"USER_ID" NUMBER(9,0),
"ROLE_ID" NUMBER(9,0),
primaray key("ID")
)
Configuration with LDAP
To enable the Realm LDAP, the following shiro.ini must be found in the classpath In the LDAP Realm it is not
possible to assign rights directly to an user. The user in LDAP will have a password which is be used for
authentication. The user also will be assigned to shiro role. The mapping between shiro role and permissions is
specified in the shiro.ini file . The [roles] section specifies the assignment of rights to roles
März 2015
Seite: 6
Software Open Source
[main]
ldapRealm = com.sos.dialog.auth.SOSLdapAuthorizingRealm
ldapRealm.userDnTemplate = cn={0},ou=ehp,cn=Manager,dc=my-domain,dc=com
ldapRealm.searchBase = ou=ehp,cn=Manager,dc=my-domain,dc=com
ldapRealm.contextFactory.url = ldap://<server>:<port>
ldapRealm.groupNameAttribute=cn
ldapRealm.userNameAttribute=sn
#Mapping of a ldap group to roles. You can assign more than one role with the seperator sign |
ldapRealm.groupRolesMap = "<user1>":"<role1>|<role2>", \
"<user2>":"<role>"
rolePermissionResolver = com.sos.dialog.auth.SOSPermissionResolverAdapter
rolePermissionResolver.ini = $iniRealm
ldapRealm.rolePermissionResolver = $rolePermissionResolver
securityManager.realms = $ldapRealm
cacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager
securityManager.cacheManager = $cacheManager
securityManager.sessionManager.globalSessionTimeout = 1800000
[roles]
<role1> = <permission1>, <permission2>
<role2> = <permission1>, <permission2>
Configuration with Ini File
It is possible to specify users, roles and passwords in the shiro.ini file without using ldap or a database.
The list of users in the section [users] asssigns each user a password (first item after assign sign) and a list of
roles.
In the section [roles] is a list of roles which have a comma seperated list of permissions.
März 2015
Seite: 7
Software Open Source
[users]
root = secret, jobscheduler_dashboard_admin
ur = ur, joc, joe
joe = joe, joe, jid
guest = guest
[roles]
admin = sos:products:jid:joe,sos:products:jid:joc,sos:products:jid:events
jobscheduler_dashboard_admin = sos:products:jid:*
joc = sos:products:jid:joc
joc_admin = sos:products:jid:joc:*
joe = sos:products:jid:joe
events = sos:products:jid:events
jobnet = sos:products:jid:jobnet
März 2015
Seite: 8
Software Open Source
3
März 2015
Seite: 9
Software Open Source
4
When the JobScheduler command Restservice is enabled you can execute commands using rest service urls with
http post. The command executer needs a valid login done in the SOS Security server.
The
command
executer
plugin
will
be
installed
by
adding
the
$scheduler_data/config/scheduler.xml
<plugin java_class="com.sos.jobscheduler.tools.webservices.SOSCommandSecurityPlugin">
<plugin.config/>
</plugin>
Here is a list of known commands
•
/plugin/security/login
•
/plugin/security/logout
•
/plugin/security/is_enabled
•
/plugin/security/start_job
•
/plugin/security/modify_order
•
/plugin/security/add_order
•
/plugin/security/job_chain
•
/plugin/security/job_chain_modify
•
/plugin/security/job_chain_node_modify
•
/plugin/security/kill_task
•
/plugin/security/modify_job
•
/plugin/security/modify_spooler
•
/plugin/security/process_class
•
/plugin/security/process_class_remove
•
/plugin/security/consumes
•
/plugin/security/remove_job_chain
•
/plugin/security/remove_order
•
/plugin/security/lock
•
/plugin/security/lock_remove
•
/plugin/security/terminate
Parameters
März 2015
Seite: 10
plugin
in
the
file
Software Open Source
Command: /start_job
|session_id|
|job|
|at|
|force|
|name|
|params|
Command: /modify_order
|session_id|
|job_chain|
|order|
|action|
|at|
|end_state|
|priority|
|setback|
|state|
|suspended|
|title|
|params|
|runtime|
Command: /add_order
|session_id|
|job_chain|
|order|
|at|
|end_state|
|priority|
|replace|
|state|
|title|
|web_service|
|params|
|runtime|
Command: /job_chain
|session_id|
|distributed|
|max_orders|
|name|
|orders_recoverable|
|title|
|visible|
Command: /job_chain_modify
|session_id|
|job_chain|
|state|
Command: /job_chain_node_modify|
|session_id|
|job_chain|
|action|
|state|
Command: /kill_task|
|session_id|
|id|
|immediately|
|job|
Command: /modify_job|
|session_id|
|job|
|cmd|
Command: /modify_spooler|
|session_id|
|cmd|
März 2015
Seite: 11
Software Open Source
|timeout|
Command: /process_class|
|session_id|
|scheduler_id|
|name|
|remote_scheduler|
|replace|
|max_processes|
Command: /process_class_remove|
|session_id|
|process_class|
Command: /remove_job_chain|
|session_id|
|job_chain|
Command: /remove_order|
|session_id|
|job_chain|
|order|
Command: /lock|
|session_id|
|max_non_exclusive|
|name|
Command: /lock_remove|
|session_id|
|lock|
Command: /terminate|
|session_id|
|all_schedulers|
|continue_exclusive_operation|
|restart|
|timeout|
Command: /login|
|user|
|password|
Command: /logout|
|session_id|
The command executer uses the security server configured with the param security_server_address in the file
$scheduler_data/config/scheduler.xml
The answer of the command executer is xml
<sos_security_webservice_answer>
<isEnabled>true</isEnabled>
<jobSchedulerAnswer/>
<message>
user: root, password: ********, resource: http://host:port/jobscheduler/rest/sosPermission --> authenticated
</message>
<resource>
http://host:port/jobscheduler/rest/sosPermission
</resource>
<sessionId>607932d1-7499-4431-aa4c-d8580879a61a</sessionId>
<user>root</user>
</sos_security_webservice_answer>
The login provides a session id which must be used with all commands to get the authorization for the command
März 2015
Seite: 12
- Glossar
Software Open Source
Glossar
Auftrag
Ein Auftrag aktiviert die Verarbeitung einer Job-Kette. Der Auftrag enthält die Parameter für die Jobs einer
Job-Kette. Jeder Job der Job-Kette hat Zugriff auf die Parameter eines Auftrags. Auftrag-Parameter
überschreiben gleichnamige Job-Parameter. Ein Auftrag kann eine Zeitsteuerung enthalten.
Ein Auftrag durchläuft nacheinander die Jobs einer Job-Kette. Tritt ein Verarbeitungsfehler in einem Job auf,
dann kann konfiguriert werden, dass der Auftrag...
•
aus der Job-Kette entfernt wird.
•
von einem weiteren Job der Kette ausgeführt wird.
•
vom fehlerhaften Job wiederholt ausgeführt wird.
•
in der Kette am fehlerhaften Job stehen bleibt, dass heißt die Verarbeitung des Auftrag wird
ausgesetzt, bis dieser wieder manuell fortgesetzt wird.
Job
Programme und Skripte, die vom JobScheduler ausgeführt werden sollen, müssen in Jobs eingebettet
werden. Jobs können beliebige ausführbare Dateien starten oder Job-Skripte enthalten, die die
Programmschnittstelle des JobScheduler verwenden. Jobs können in mehreren Instanzen (Tasks)
ablaufen, wenn dies zur Skalierung der Leistung gewünscht ist.
Es wird zwischen Standalone-Jobs und Auftrags-Jobs unterschieden. Während Auftrags-Jobs durch
Aufträge innerhalb einer Job-Kette gestartet werden, können Standalone-Jobs davon unabhängig gestartet
werden, dass heißt manuell, durch eine Zeitsteuerung oder per Verzeichnis-Überwachung. Standalone-Jobs
können nicht in Job-Ketten eingereiht werden.
Job-Kette
Eine Reihe von Jobs, die nacheinander Aufträge verarbeiten. Der JobScheduler startet die Jobs einer
Job-Kette automatisch, wenn ein Auftrag eintrifft. Job-Ketten bieten die Möglichkeit mehrere Aufträge parallel
zu verarbeiten, indem die Jobs in mehreren Instanzen (Tasks) gestartet werden.
JOC (JobScheduler Operations Center)
JOC (JobScheduler Operations Center) ist die Oberfläche des JobScheduler zur Überwachung und
Steuerung der JobScheduler Objekte, also zum Beispiel Jobs, Job-Ketten und Aufträge.
_JOC
öffnen Sie im Browser mit http://[scheduler_host]:[scheduler_port] , wobei
[scheduler_host] und [scheduler_port] der Hostname und die Nummer des TCP Ports des
JobScheduler sind (z.B. http://localhost:4444).
JOE (JobScheduler Object Editor)
JOE ist der JobScheduler Object Editor. Mit ihm können die JobScheduler Objekte (Jobs, Job-Ketten,
Aufträge, Schedules, Prozess-Klassen, Sperren) konfiguriert werden.
Gestartet wird JOE mit dem Skript:
•
$SCHEDULER_HOME \bin\jobeditor.cmd (Windows™)
•
März 2015
$SCHEDULER_HOME /bin/jobeditor.sh (Unix™)
Seite: 13
- Glossar
Software Open Source
Schedule
Die Zeitsteuerung eines Jobs oder Auftrags kann direkt am Job oder Auftrag angegeben oder in einem
Schedule ausgelagert werden. Dem Job oder Auftrag wird dann lediglich der Schedule zugewiesen. Falls
mehrere Jobs oder Aufträge die gleiche Zeitsteuerung haben sollen, braucht man diese so nur einmal zu
formulieren. Überdies können Schedules für einen bestimmten Zeitraum andere Schedules ersetzen. So
erreicht man in der Verwendung von Schedules noch mehr Flexibilität bei der Zeitsteuerung.
März 2015
Seite: 14

Similar documents