z/OS Connect를 위한 보안 구성

z/OS Connect 애플리케이션에는 인증되고 zosConnectAccess 역할의 권한이 부여된 사용자가 액세스할 수 있습니다. 서비스 정의 레벨에서 그룹 권한 부여를 구성할 수 있습니다. 그룹 권한 부여는 SAF 및 LDAP 그룹 유형에 대해 지원됩니다.

이 태스크 정보

z/OS Connect 애플리케이션에 액세스하려면 사용자는 우선 인증되어야 합니다.

z/OS Connect에 필요한 기본 인증 메커니즘은 CLIENT_CERT입니다. z/OS Connect 애플리케이션에 액세스하려면 사용자에게 zosConnectAccess 역할의 권한이 부여되어야 합니다. 필요한 전송 메커니즘은 HTTPS입니다.

requireSecure 및 requireAuth 속성 정의를 설정하여 보안 제한조건 없이 실행하도록 z/OS Connect를 구성할 수 있습니다. 이 속성은 zosConnectManager 요소 아래에서 정의되어 모든 구성된 서비스에 적용되거나 특정 서비스에 대한 zosConnectService 요소 아래에서 정의됩니다. 속성이 zosConnectService 요소 아래와 글로벌로 zosConnectManager 요소 아래에서 모두 정의되는 경우에는 zosConnectService 아래에서 정의된 값이 사용됩니다. 해당 속성에 대한 자세한 정보는 zosConnectManagerzosConnectService를 침조하십시오.

더 좋은 레벨의 보안을 제공하기 위해 z/OS Connect는 SAF 또는 LDAP을 통해 구성할 수 있는 그룹 권한을 기반으로 액세스를 제한하는 기능을 제공합니다. 이를 위해 z/OS Connect는 세 가지 레벨의 권한을 정의합니다.

  • 관리자 - 관리자 권한이 있는 사용자는 서비스를 조회하고 서비스에 대해 조작 태스크를 수행하고 서비스를 호출할 수 있는 권한이 있습니다.
  • 조작 - 조작 권한이 있는 사용자는 서비스에 대해 중지, 시작 등의 태스크를 수행할 수 있는 권한이 있지만 서비스를 호출할 수 있는 권한은 없습니다.
  • 호출 - 호출 권한이 있는 사용자는 서비스를 호출할 수 있지만 다른 권한은 없습니다.

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입니다. 이 값이 지정된 경우에는 글로벌로 정의된 값을 대체합니다.

권한 부여 인터셉터가 글로벌 레벨에 정의된 경우, 모든 서비스에 대해 한 번의 권한 검사가 수행됩니다. 둘 이상의 서비스 및 서비스 발견에 대해 /zosConnect/operations/getStatistics 요청을 사용하는 경우, 사용자는 다음 조건이 존재할 때 z/OS Connect에 등록된 모든 서비스에 대한 정보를 가져옵니다.
  • 사용자가 권한 검사를 통과함
  • 서비스 정보가 리턴되는 것을 방해하는 다른 조건이 없음
권한 부여 인터셉터가 서비스 레벨 정의에 있는 경우, 해당 서비스의 정보에 대한 액세스는 그 서비스 정의에 있는 사용자로 제한됩니다.

예를 들어, 서비스 레벨에서 정의된 권한 부여 인터셉터가 있는 다음 구성이 주어진 경우:

사용자 "USR1" 그룹: ADMINS1, ADMINS2

사용자 "USR2" 그룹: OPERATS1

사용자 "USR3" 그룹: ADMINS2, OPERATS1

z/OS Connect 구성:
<!-- 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" .../>
표 1. . 사용자 데이터 액세스
  service1 service2 service3
USR1 X X X
USR2 -- -- X
USR3 X -- X

프로시저

  1. z/OS Connect 애플리케이션에 액세스하기 위한 사용자 인증을 설정하십시오. 클라이언트 인증서 인증을 설정하려면 클라이언트 인증서 인증을 위한 사용자의 웹 애플리케이션 및 서버 구성에 대한 문서를 참조하십시오. 레지스트리를 통해 인증을 설정하려면 Liberty에서 사용자 인증에 대한 문서를 참조하십시오.

    샘플 1: Liberty의 기본 사용자 레지스트리 구성에 관한 문서에서 간략하게 설명된 단계를 사용한 기본 레지스트리 구성.

    Server.xml:
    <featureManager>
    	<feature>zosConnect-1.0</feature> 
    	<feature>ssl-1.0</feature>     
    	<feature>appSecurity-2.0</feature>
    </featureManager>
    
    <!-- Define a keystore. --> 
    <keyStore id="defaultKeyStore" password="Liberty"/>
    
    
    <!-- Fail over to basic authenitcation --> 
    <webAppSecurity allowFailOverToBasicAuth="true"/> 
    
    
    <!-- Basic registry definition -->
    <basicRegistry id="basic1" realm="zosConnect">    
    	<user name="Fred" password="fredpwd"/>
    </basicRegistry>

    샘플 2: z/OS에서 SAF 레지스트리 활성화 및 구성에 관한 문서에서 요약된 단계를 사용하는 SAF 레지스트리 구성.

    Server.xml:
    <featureManager>
    	<feature>zosConnect-1.0</feature>
    	<feature>ssl-1.0</feature>
    	<feature>appSecurity-2.0</feature>
    	<feature>zosSecurity-1.0</feature>
    </featureManager>
    <!-- Saf registry definition -->  
    <safRegistry id="saf" realm="zosConnect"/>

    RACF 설정. 세부사항은 Liberty: WZSSAD를 사용한 z/OS 보안 자원 액세스에 대한 문서를 따르십시오.

    # Define the APPL class based on the default security prefix called BBGZDFLT.
    RDEFINE APPL BBGZDFLT UACC(NONE)
    
    # Activate the APPL class. 
    SETROPTS CLASSACT(APPL)
    
    # For FRED to be authenticated by the server, assign FRED READ access to the APPLID in the APPL class.                                       
    PERMIT BBGZDFLT ID(FRED) ACCESS(READ) CLASS(APPL)
    
    # The unauthenticated user ID (i.e. WSGUEST by default) requires READ access to the APPLID in the APPL class
    PERMIT BBGZDFLT CLASS(APPL) ACCESS(READ) ID(unauthenticatedUserId)  
    
    # Grant the server permission to make authentication calls.
    RDEFINE SERVER BBG.SECPFX.BBGZDFLT UACC(NONE)
    PERMIT BBG.SECPFX.BBGZDFLT ID(serverId) ACCESS(READ) CLASS(SERVER)

    서버에는 SAFCRED 권한 부여 서비스 루틴을 사용하기 위한 권한이 부여되어야 합니다. 세부사항은 z/OS용 Liberty에서 z/OS 권한 부여 서비스 사용에 대한 문서를 참조하십시오.

  2. 사용자에게 zosConnectAccess 역할을 지정하여 z/OS Connect 애플리케이션에 액세스하기 위한 사용자 권한을 설정하십시오. 이를 수행하려면 Liberty에서 애플리케이션의 권한 구성에 대한 문서를 참조하십시오.
    샘플 1의 1단계에서 아웃라인된 server.xml 파일 구성에 다음을 추가하십시오.
    <authorization-roles id="zos.connect.access.roles"> 
    	<security-role name="zosConnectAccess">           
    		<user name="Fred"/>  
    	</security-role>  
    </authorization-roles>

    샘플 2: SAF/RACF을 사용하여 권한 부여 구성:

    1. 샘플 2의 1단계에서 아웃라인된 구성에 다음을 추가하십시오.
      <safAuthorization id="saf2" />
    2. RACF 설정. FRED에게 zosConnectAccess 역할을 지정하는 명령:
      RDEFINE EJBROLE BBGZDFLT.zos.connect.access.roles.zosConnectAccess 
      UACC(NONE)                                                       
      PERMIT BBGZDFLT.zos.connect.access.roles.zosConnectAccess 
      CLASS(EJBROLE) ID(FRED) ACCESS(READ)
  3. (선택사항) z/OS Connect의 권한 부여 인터셉터를 사용하는 경우 권한 부여를 위한 그룹을 정의하십시오.
    샘플 1: SAF를 사용하는 경우 RACF 그룹 정의:
    ADDGROUP OPERATS1 OMVS(GID(xxx)) OWNER(xxxx)
    
    # Add user FRED under the OPERATS1 group
    ADDUSER FRED DFLTGRP(OPERATS1) OMVS(UID(xxx) HOME(/xxxx) PROGRAM(/bin/sh)) NAME('USER FRED') NOPASSWORD
    ALTUSER FRED PASSWORD(xxxxxxx) NOEXPIRED
    
    # Connect user Fred to the OPERATS1 group
    CONNECT FRED GROUP(OPERATS1)

    그런 다음에는 z/OS Connect의 권한 부여 인터셉트가 사용할 권한 부여 그룹을 정의할 때 "OPERATS1" 그룹을 사용할 수 있습니다. 예: <zosConnectManager globalOperationsGroup="OPERATS1"/> 또는 <zosConnectService serviceRef="service1" operationsGroup="OPERATS1"/>


주제의 유형을 표시하는 아이콘 태스크 주제

파일 이름: twlp_zconnect_security.html