WZSSAD를 사용한 z/OS 보안 자원 액세스

WZSSAD(WLP z/OS® System Security Access Domain)는 Liberty 서버에 부여되는 권한을 참조합니다. 이 권한은 사용자 인증 및 권한 부여 시 서버가 조회할 수 있는 SAF(System Authorization Facility) 애플리케이션 도메인 및 자원 프로파일을 제어합니다.

예를 들어, 두 개의 Liberty 서버 인스턴스(하나는 프로덕션용, 다른 하나는 테스트용)를 설정하며 프로덕션 및 테스트 간에 서로 다른 역할 액세스 권한을 원하는 경우에는 두 개의 서로 다른 시스템 보안 액세스 도메인을 설정할 수 있습니다.

Liberty 서버는 비-관리자 또는 권한 없는 사용자가 구성하고 실행할 수 있는 권한 없는 프로그램입니다. 따라서 사용자가 서버를 활용하여 명시적으로 권한이 부여되지 않은 보안 조작을 실행하지 못하도록 방지하는 것이 시스템 보안 및 무결성 용도로 중요합니다.

참고: 서버가 인증 및 권한 부여를 위해 권한 부여된 SAF 서비스를 사용하고 있는 경우에만 WZSSAD가 적용됩니다. 이는 엔젤 프로세스가 실행 중이고 서버가 SAFCRED 권한 부여된 서비스 루틴을 사용하도록 권한을 부여받았다는 것을 의미합니다.
다음과 같이 WZSSAD에서 보호되는 세 개의 SAF 조작이 있습니다.
  • 사용자 인증
  • Java™ EE 역할에 주제 권한 부여
  • 주제에 기타 SAF 자원에 대한 권한 부여
기본적으로, WZSSAD는 구성되지 않습니다. 이는 서버에 인증하거나 권한을 부여할 권한이 없음을 의미합니다. 예를 들어, 관리자가 일부 또는 전체 조작을 수행하도록 해당 권한을 부여할 때까지 Liberty 서버는 인증 또는 권한 부여를 위해 권한 부여된 SAF 서비스를 사용할 수 없습니다.

사용자 인증

서버는 APPL 클래스에서 APPLID라는 자원을 정의하여 구성한 특정 SAF 도메인에 대해 사용자를 인증합니다. 도메인에 대해 사용자를 인증하려면, 사용자는 APPL 클래스의 APPLID 자원에 대한 읽기 액세스 권한이 있어야 합니다.또한 APPL 클래스가 활성 상태일 때마다 인증되지 않은 사용자(기본적으로 WSGUEST)도 APPL 클래스의 APPLID 자원에 대한 읽기 액세스 권한이 필요합니다.

서버가 사용하는 APPLID 자원 이름은 <safCredentials> 구성 요소의 profilePrefix 속성으로 지정됩니다. 이 요소를 지정하지 않으면, BBGZDFLT의 기본 profilePrefix가 사용됩니다.

다음 예제에서는 server.xml 파일에서 BBGZDFLT의 profilePrefix를 구성하는 방법을 보여줍니다.
<safCredentials profilePrefix="BBGZDFLT"/>
다음 예제에서는 RACF® 명령을 사용하여 APPLID를 BBGZDFLT로 구성하는 방법을 보여줍니다.
// Define the BBGZDFLT APPLID to RACF.
RDEFINE APPL BBGZDFLT UACC(NONE)

// Activate the APPL class. 
//If not active, the domain is not restricted, which means anyone can authenticate to it.
SETROPTS CLASSACT(APPL)

//All users to be authenticated by the server must have READ access to the APPLID in the APPL class:
PERMIT BBGZDFLT CLASS(APPL) ACCESS(READ) ID(UserID)
//The unauthenticated user ID requires READ access to the APPLID in the APPL class:
PERMIT BBGZDFLT CLASS(APPL) ACCESS(READ) ID(WSGUEST)
또한 제공된 APPLID 도메인에서 인증 호출을 작성하려면 WZSSAD 내에서 서버에 권한을 부여해야 합니다. 이렇게 하면 권한 없는 사용자가 권한 부여된 SAF 서비스의 서버 사용을 이용하지 못하게 되어 APPLID를 인증할 수 있는 것과 인증할 수 없는 것에 관한 정보를 발견하지 못하게 됩니다. 특정 APPLID 도메인에서 인증하기 위한 서버 권한을 부여하려면, Liberty 서버의 시작 태스크 ID에 SERVER 클래스의 BBG.SECPFX.<APPLID> 프로파일에 대한 READ 액세스 권한이 부여되어야 합니다.
RDEFINE SERVER BBG.SECPFX.BBGZDFLT UACC(NONE)
PERMIT BBG.SECPFX.BBGZDFLT CLASS(SERVER) ACCESS(READ) ID(serverUserId)

Java EE 역할에 주제 권한 부여

서버는 주제가 EJBROLE 클래스에서 정의되는 SAF 자원 프로파일에 권한 부여되는지 여부를 검사하여 Java EE 애플리케이션 보안 역할 이름에 대해 주제를 권한 부여합니다. SAF 자원 프로파일 이름은 SAF 역할 맵퍼를 통해 애플리케이션 역할 이름에서 맵핑됩니다. SAF 역할 맵퍼는 제공된 애플리케이션 역할 이름 및 애플리케이션 자원 이름에 대한 SAF 프로파일 이름을 생성합니다. 기본적으로, 패턴 {profilePrefix}.{resource}.{role}을 사용하여 SAF 프로파일 이름을 생성합니다. 예:
profilePrefix="BBGZDFLT"

Application resource name = "MYAPP"

Application role name = "ADMIN"

Mapped profile name = "BBGZDFLT.MYAPP.ADMIN"

추가 정보는 Liberty: SAF 프로파일에 역할을 맵핑하는 방법 제어의 내용을 참조하십시오.

WZSSAD는 서버가 권한 부여를 수행할 수 있게 허용한 EJBROLE 클래스의 SAF 프로파일을 제한합니다. 이렇게 하면 권한 없는 사용자가 권한 부여된 SAF 서비스의 서버 사용을 이용하지 못하게 되어 EJBROLE 프로파일을 인증할 수 있는 것과 인증할 수 없는 것에 관한 정보를 발견하지 못하게 됩니다. EJBROLE 프로파일 이름의 HLQ에 대해 권한 검사를 실행하도록 서버에 권한을 부여해야 합니다. 프로파일 이름의 HLQ는 프로파일 이름의 첫 번째 세그먼트로 첫 번째 '.'을 포함하지 않습니다. 예:
EJBROLE profile name = "BBGZDFLT.ADMIN" 
HLQ = "BBGZDFLT"
프로파일 HLQ에 대해 권한 검사를 실행하기 위한 서버 권한을 부여하려면, 서버 프로세스와 연관된 사용자에게 SERVER 클래스의 BBG.SECPFX.<HLQ> 프로파일에 대한 READ 액세스 권한이 부여되어야 합니다.
RDEFINE SERVER BBG.SECPFX.BBGZDFLT UACC(NONE)
PERMIT BBG.SECPFX.BBGZDFLT CLASS(SERVER) ACCESS(READ) ID(serverUserId)
예제에서는 SAF 역할 맵퍼가 맵핑된 프로파일의 HLQ를 profilePrefix로 설정하기 때문에, 동일한 프로파일 BBG.SECPFX.BBGZDFLT는 APPLID 인증 권한 및 EJBROLE 프로파일 권한 부여 권한 모두를 제어합니다.

주제에 기타 SAF 자원에 대한 권한 부여

Java EE 애플리케이션은 EJBROLE 이외의 SAF 클래스에 대한 액세스 제어 검사를 수행합니다. WZSSAD는 서버가 권한을 부여할 수 있는 EJBROLE 외부의 SAF 클래스를 제한합니다. 이렇게 하면 권한 없는 사용자나 애플리케이션이 권한 부여된 SAF 서비스의 서버 사용을 이용하지 못하게 되어 사용자나 애플리케이션이 권한 부여되거나 권한 부여받지 못한 비-EJBROLE SAF 클래스의 자원 프로파일에 관한 정보를 발견하지 못하게 됩니다.

비-EJBROLE SAF 클래스에 대한 권한 검사를 수행하기 위한 서버 권한을 부여하려면, 서버 프로세스와 연관된 사용자에게 SERVER 클래스의 BBG.SECCLASS.<SAF-CLASS> 프로파일에 대한 READ 액세스 권한이 부여되어야 합니다. 예를 들어, FACILITY 클래스의 프로파일에 대해 권한을 부여하려면 다음을 수행하십시오.
RDEFINE SERVER BBG.SECCLASS.FACILITY UACC(NONE)
PERMIT BBG.SECCLASS.FACILITY CLASS(SERVER) ACCESS(READ) ID(serverUserId)
참고: 서버가 권한을 부여할 수 있는 비-EJBROLE 클래스 내의 자원 프로파일에 제한이 없습니다. 비-EJBROLE 클래스에 대해 권한 검사를 수행하도록 서버에 권한을 부여한 경우, 해당 클래스의 프로파일에 대해 권한을 부여할 수 있습니다.

주제의 유형을 표시하는 아이콘 참조 주제

파일 이름: rwlp_WZSSAD_zos.html