配置 z/OS Connect 的安全性
亦獲授權具備 zosConnectAccess 角色的已鑑別使用者可以存取 z/OS Connect 應用程式。您可以在服務定義層次配置群組授權。SAF 和 LDAP 群組類型支援群組授權。
關於這項作業
使用者必須經過鑑別,才能存取 z/OS Connect 應用程式。
z/OS Connect 需要的預設鑑別機制是 CLIENT_CERT。使用者必須獲授權具備 zosConnectAccess 角色,才能存取 z/OS Connect 應用程式。 HTTPS 是必要的傳輸機制。
您可以設定 requireSecure 和 requireAuth 屬性定義,將 z/OS Connect 配置成在沒有任何安全限制的情況下執行。 這些屬性是定義在 zosConnectManager 元素之下,適用於所有已配置的服務,或定義在 zosConnectService 元素之下,適用於特定服務。 如果這些屬性既定義在 zosConnectService 元素之下,又定義在廣域範圍的 zosConnectManager 元素之下,會使用 zosConnectService 下所定義的值。 請參閱 zosConnectManager 和 zosConnectService,以取得這些屬性的相關資訊。
為了提供更好的安全層次,z/OS Connect 可讓您根據群組授權(可透過 SAF 或 LDAP 來配置),來限制存取權。基於此因,z/OS Connect 定義了三個授權層次:
- 管理者 - 具備管理者權限的 IUser 有權查詢服務、對服務執行運行作業,以及呼叫它們。
- 作業 - 具備作業權限的使用者能夠對服務執行停止、啟動等之類的作業,但是無權呼叫服務。
- 呼叫 - 具備呼叫權限的使用者能夠呼叫服務,但不具備其他任何權限。
z/OS Connect 提供一個實作 com.ibm.wsspi.zos.connect.Interceptor() SPI 的授權攔截程式。這個攔截程式同時支援 SAF 和 LDAP。這個攔截程式在內部使用 getGroupsforUser() 安全 API,來判斷現行使用者所在的群組,然後將這些群組與服務定義或廣域定義中提供的群組相互比較。
當啟用 z/OS Connect 提供的授權攔截程式時,與使用者相關聯的 RACF 或 LDAP 群組名稱,也可以與先前在廣域或服務定義層次所提及的任何群組相關聯。在廣域層次,它們可以定義在 <zosConnectManager> 配置元素之下。 定義在這個層次的屬性包括:globalAdminGroup、globalOperationsGroup 和 globalInvokeGroup。如果有配置的話,則會將它們套用至所有配置的服務。如果希望更精細,也可以在服務層次將群組配置在 <zosConnectService> 配置元素之下。定義在該層次的屬性為:adminGroup、operationsGroup 和 invokeGroup。如果有指定這些值的話,則會置換廣域定義的值。
- 使用者通過授權檢查
- 沒有其他條件阻止傳回服務資訊
例如,在下列配置中,授權攔截程式定義在服務層次:
User "USR1" Groups: ADMINS1, ADMINS2
User "USR2" Groups: OPERATS1
User "USR3" Groups: ADMINS2, OPERATS1
<!-- z/OS Connect global configuration. It applies to all services. -->
<zosConnectManager globalAdminGroup="ADMINS1" globalOperationsGroup="OPERATS1" globalInvokeGroup="INVOKES1"/>
<!-- Interceptor configuration -->
<zosConnectInterceptors id="interceptorList1" interceptorRef="zosConnectAuthorizationInterceptor"/>
<authorizationInterceptor id="zosConnectAuthorizationInterceptor"/>
<!--Service 1-->
<zosConnectService serviceName="service1" serviceRef="service1Ref" adminGroup="ADMINS2" operationsGroup="OPERATS2" interceptorsRef="interceptorList1" .../>
<!--Service 2-->
<zosConnectService serviceName="service2" serviceRef="service2Ref" operationsGroup="OPERATS2" interceptorsRef="interceptorList1" .../>
<!--Service 3-->
<zosConnectService serviceName="service3" serviceRef="service3Ref" adminGroup="ADMINS1" interceptorsRef="interceptorList1" .../>
service1 | service2 | service3 | |
---|---|---|---|
USR1 | X | X | X |
USR2 | -- | -- | X |
USR3 | X | -- | X |