Liberty 批次架構可讓您配置對所有批次管理作業的角色型存取權,也可讓您檢視批次工作的相關聯 meta 資料和日誌。
開始之前
批次儲存器已定義批次角色。單一使用者可以具備多個批次角色。
- batchAdmin
- batchAdmin 對所有批次作業具備不受限的存取權。所包含的許可權包括:提交新工作、停止並重新啟動任何使用者的工作、檢視批次網域中任何使用者提交的任何 meta 資料和工作日誌,以及清除任何工作。batchAdmin 不一定是 WebSphere® Application Server 管理者。
batchGroupAdmin
如果使用者具備 batchGroupAdmin 角色,並且是獲指派工作之作業群組的成員,則可以存取這些工作的所有批次作業。具備 batchGroupAdmin
角色的使用者可以停止、重複、重新啟動和檢視任何工作,但是無法提交新工作,除非同時具備了
batchSubmitter 角色。batchGroupAdmin 使用者可以檢視工作 meta 資料和工作日誌,也可以清除相同作業群組中之其他使用者所提交的工作。batchGroupAdmin 使用者不一定是
WebSphere Application Server 管理者。
- batchSubmitter
- batchSubmitter 有權提交新工作,但只能對其自己的工作,執行停止、重新啟動或清除等之類的批次作業。batchSubmitter 無法檢視或修改其他使用者的工作。比方說,如果 user1 和 user2 都定義為 batchSubmitter,且 user1 提交工作,則 user2 無法檢視與 user1 工作相關聯的工作實例資料。
- batchMonitor
- 擁有 batchMonitor 角色的使用者具備所有工作的唯讀權。這個角色的使用者可以檢視所有的工作實例和執行程序,並具備所有工作日誌的存取權。具備 batchMonitor 角色的使用者無法提交自己的工作,或是停止、重新啟動或清除任何工作。
batchGroupMonitor
batchGroupMonitor 對於與使用者所屬作業群組相關聯的所有工作,具備唯讀許可權。這個角色的使用者可以檢視所有的工作實例和執行程序,並且有權存取其作業群組範圍內之工作的所有工作日誌。batchGroupMonitor 無法提交、停止、重新啟動或清除工作。
註: 一旦啟用批次安全,會根據授與現行使用者的批次角色,來過濾會傳回清單的任何 JobOperator API 方法或 REST 作業。比方說,當只具備 batchSubmitter 許可權的使用者要求所有工作實例清單時,將只會傳回現行使用者所提交的工作實例。
程序
- 依預設,batch-1.0 特性不會啟用任何安全。對於所有使用者(不管是否經過鑑別),JobOperator 方法都維持開啟。這些方法維持開啟,只為了開發用途,並不需要任何的安全配置。 batchManagement-1.0 特性會啟用批次 REST API。REST API 一律需要鑑別使用者,即使未啟用 appSecurity-2.0 特性也是如此,但是所有使用者都被視為批次管理者,可以對任何工作實例執行所有批次作業。一旦啟用 appSecurity-2.0,將會執行批次角色型安全授權,且會限制使用者只能執行其給定批次角色所定義的批次作業。
- 透過 JobOperator API 來啟用批次角色型安全。
<featureManager>
<feature>batch-1.0</feature>
<feature>appSecurity-2.0</feature>
</featureManager>
- 透過 REST API 來啟用批次角色型安全。
註: batchManagement-1.0 特性包含 batch-1.0 特性。
<featureManager>
<feature>batchManagement-1.0</feature>
<feature>appSecurity-2.0</feature>
</featureManager>
- 將 server.xml 檔配置成支援角色型安全。 下列範例說明用來定義使用者清單的基本使用者登錄。此登錄供批次角色型安全配置範例使用:
<basicRegistry id="basic" realm="ibm/api">
<user name="alice" password="alicepwd" />
<user name="bob" password="bobpwd" />
<user name="jane" password="janepwd" />
<user name="joe" password="joepwd" />
<user name="phyllis" password="phyllispwd" />
<user name="kai" password="kaipwd" />
</basicRegistry>
在本例中,一個使用者擔任多個角色。
<authorization-roles id="com.ibm.ws.batch">
<security-role name="batchAdmin" >
<user name="alice" />
</security-role>
<security-role name="batchSubmitter" >
<user name="jane" />
<user name="phyllis" />
<user name="bob" />
</security-role>
<security-role name="batchMonitor" >
<user name="joe" />
<user name="bob" />
</security-role>
</authorization-roles>
在本例中,一個使用者擔任多個角色。所有使用者都具備 batchSubmitter 角色。
<authorization-roles id="com.ibm.ws.batch">
<security-role name="batchAdmin" >
<user name="alice" />
</security-role>
<security-role name="batchSubmitter" >
<special-subject type="ALL_AUTHENTICATED_USERS"/>
</security-role>
<security-role name="batchMonitor" >
<user name="joe" />
<user name="bob" />
</security-role>
</authorization-roles>
在本例中,一個使用者擔任多個角色。容許所有使用者(包括那些未鑑別的使用者)都具備 batchMonitor 角色。<authorization-roles id="com.ibm.ws.batch">
<security-role name="batchAdmin" >
<user name="alice" />
</security-role>
<security-role name="batchSubmitter" >
<user name="joe" />
<user name="bob" />
</security-role>
<security-role name="batchMonitor" >
<special-subject type="EVERYONE"/>
</security-role>
</authorization-roles>