엔터프라이즈 Bean 메소드에 보안 역할을 지정하여 이를 보호할 수 있습니다.
보안 역할을 지정하기 전에 어떤 EJB(Enterprise JavaBeans) 메소드가 보호가 필요한지와 이를 보호하는 방법에 대해 알아야 합니다.
이 태스크 정보
EJB 메소드 세트를 역할 세트에 지정할 수 있습니다.
EJB 메소드가 역할 세트를 연관시켜서 보안되면 해당 메소드에 액세스할 수 있도록 해당 세트에 하나 이상의 역할을 부여하십시오.
EJB 메소드 세트를 액세스로부터 제외하려면 세트를 제외됨으로 표시하십시오.
이러한 메소드를 지워서 엔터프라이즈 Bean 메소드 세트에 대한 액세스를 모든 사람에게 제공할 수 있습니다.
다른 엔터프라이즈 Bean을 호출하기 전에 runAs ID를 실행하여
엔터프라이즈 Bean을 다른 ID로서 실행할 수 있습니다.
참고: 이 프로시저는 어셈블리 도구를 사용할 때 필요한 단계와
일치하지 않거나 사용 중인 어셈블리 도구의 버전과 일치합니다. 사용 중인 도구와 버전에 대한 지시사항을 따라야 합니다.
어셈블리 도구 사용에 대한 자세한 정보는 어셈블리 도구
Information Center를 참조하십시오.
엔터프라이즈 Bean 애플리케이션을 보안하려면 다음 단계를 수행하십시오.
프로시저
- 어셈블리 도구에서 하나 이상의 웹 모듈을 포함하는 EJB(Enterprise JavaBeans) Java™ 아카이브 (JAR) 파일 또는 애플리케이션 아카이브(EAR) 파일을 가져오십시오.
Rational Application Developer 문서에서
EJB JAR 파일 가져오기 또는 엔터프라이즈 애플리케이션 EAR 파일 가져오기에 대한 정보를 참조하십시오.
- 프로젝트 탐색기에서 EJB 프로젝트 디렉토리를 클릭하고 애플리케이션의
이름을 클릭하십시오.
- 배치 디스크립터를 마우스 오른쪽 단추로 클릭하고 연결 프로그램 > 배치 디스크립터 편집기를 클릭하십시오. 엔터프라이즈 Bean .jar 파일을 선택한 경우에는 EJB 배치 디스크립터 편집기가 열립니다.
엔터프라이즈 애플리케이션 .ear 파일을 선택하면 애플리케이션 배치 디스크립터 편집기가 열립니다.
편집기에 대한 온라인 정보를 보려면
F1을 누르고 편집기 이름을 클릭하십시오.
- 보안 역할을 작성하십시오. 애플리케이션 레벨 또는 EJB 모듈 레벨에서 보안 역할을 작성할 수 있습니다.
EJB 모듈 레벨에서 보안을 작성하는 경우에는 역할이 애플리케이션 레벨에 표시됩니다.
보안 역할이 애플리케이션 레벨에서 작성되면 역할은 모든 EJB 모듈에 표시되지는 않습니다.
애플리케이션 레벨에서 작성한 하나 이상의 EJB 모듈 보안 역할을 복사하여 붙여넣을 수 있습니다.
- EJB 모듈 레벨에서 역할을 작성하십시오. EJB 배치 디스크립터 편집기에서
어셈블리 탭을 클릭하십시오. 보안 역할 아래에서 추가를 클릭하십시오. 보안 역할 추가 마법사에서 보안 역할의 이름을 지정하고 설명한 다음
완료를 클릭하십시오.
- 애플리케이션 레벨에서 역할을 작성하십시오. 애플리케이션 배치 디스크립터 편집기에서 보안 탭을 클릭하십시오.
보안 역할의 목록 아래에서 추가를 클릭하십시오. 보안 역할 추가 마법사에서 보안 역할의 이름을 지정하고 설명한 다음
완료를 클릭하십시오.
- 메소드 권한을 작성하십시오. 메소드 권한은 하나 이상의 메소드를 역할 세트에 맵핑합니다.
엔터프라이즈 Bean에는 home methods, remote methods, LocalHome methods 및 로컬 메소드의 네 가지 유형의 메소드가 있습니다.
메소드 레벨에서 엔터프라이즈 Bean에 권한을 추가할 수 있습니다.
하나 이상의 보안 역할을 이미 정의하지 않는 한 엔터프라이즈 Bean에 메소드 권한을 추가할 수 없습니다.
버전 2.0 EJB 프로젝트의 경우 선택되지 않은 옵션은 선택된 Bean으로부터 선택된 메소드에 실행 권한이 필요하지 않음을 지정합니다.
엔터프라이즈 Bean에 메소드 권한을 추가하려면 다음을 수행하십시오.
- EJB 배치 디스크립터 편집기의 어셈블리 탭에서, 메소드 권한 아래에서 추가를 클릭하십시오.
메소드 권한 추가 마법사가 열립니다.
- 발견된 역할 목록에서 보안 역할을 선택하고 다음을 클릭하십시오.
- 발견된 Bean 목록에서 하나 이상의 엔터프라이즈 Bean을 선택하십시오.
모두 선택 또는 모두 선택 취소를 클릭하여 목록에서 모든 엔터프라이즈 Bean을 선택하거나 지울 수 있습니다.
다음을 클릭하십시오.
- 보안 역할에 바인드하려는 메소드를 선택하십시오.
메소드 요소 페이지는 엔터프라이즈 Bean과 연관된 모든 메소드를 나열합니다. 모두에 적용 또는 모두 선택 취소를 클릭하여 여러 메소드를 신속하게 선택하거나 지울 수 있습니다.
선택은 각 Bean의 기본(*) 메소드에만 영향을 미칩니다. 정확한 메소드 서명에 대한 메소드
권한을 작성하면 기본 (*) 메소드 권한 설정이
대체됩니다. 기본(*) 메소드는 Bean 내의 모든 메소드를
나타냅니다. 각 인스턴스에는 또한 기본(*) 메소드가 있습니다. 트리에서 개별 메소드를 모두 선택하지 않음으로서 나머지 메소드에 다른 권한을 설정할 수 있습니다.
- 완료를 클릭하십시오.
메소드 권한이 작성된 후 트리에서 새 메소드 권한을 볼 수 있습니다.
트리를 펼쳐서 Bean 및 메소드 권한에 정의된 메소드를 보십시오.
- 메소드에 대한 사용자 액세스 제외 사용자는 제외된 메소드에 액세스할 수 없습니다.
역할에 지정되지 않았거나 제외되지 않은 엔터프라이즈 Bean에 있는 모든 메소드는 배치자가 애플리케이션을 설치하는 동안 지워집니다.
- EJB 배치 디스크립터 편집기의 어셈블리 탭에서, 제외 목록 아래에서 추가를 클릭하십시오.
제외 목록 마법사가 열립니다.
- 발견된 Bean 목록에서 하나 이상의 엔터프라이즈 Bean을 선택하고 다음을 클릭하십시오.
- 보안 ID를 위해 하나 이상의 메소드 요소를 선택하고 완료를 클릭하십시오.
- security-role-ref 및 role-name을 role-link에 맵핑하십시오. 엔터프라이즈 Bean을 개발할 때 security-role-ref
요소를 작성할 수 있습니다. security-role-ref 요소에는 role-name 필드만이 포함됩니다. role-name 필드는
호출자가 지정된 role(isCallerInRole()) 역할에 있는지와 코드에서 참조되는 역할 이름을 포함하는지 여부를 판별합니다.
어셈블리 단계 중에 보안 역할을 작성하기 때문에 개발자는 어셈블러가 실제 역할(role-link)을 맵핑할 수 있도록
role-name 필드에서 논리 역할 이름을 사용하고
설명 필드에 충분한 정보를 제공합니다. security-role-ref
요소는 EJB 레벨에 있습니다. 엔터프라이즈 Bean에는 0개 이상의 security-role-ref 요소가 있을 수 있습니다.
- EJB 배치 디스크립터 편집기의 참조 탭에서, 참조 목록 아래에서 추가를 클릭하십시오.
참조 추가 마법사가 열립니다.
- 보안 역할 참조를 선택하고 다음을 클릭하십시오.
- 보안 역할 참조의 이름을 지정하고, 보안 역할을 선택하여 참조를 링크하고, 보안 역할 참조를 설명하고
완료를 클릭하십시오.
- 이전 단계를 사용하여 개발 중에 사용되는 모든 role-name을 역할(role-link)에 맵핑하십시오.
- 엔터프라이즈 Bean 컴포넌트를 위해 RunAs ID를 지정하십시오. 엔터프라이즈 Bean의 RunAs ID가 EJB 호출의 체인에서 다음 엔터프라이즈 Bean을 호출하는 데 사용됩니다. 다음 엔터프라이즈 Bean이 호출되면
RunAsIdentity ID가 다음 엔터프라이즈 Bean에서 권한 부여 확인을 수행하기 위해 다음 엔터프라이즈 Bean에 전달됩니다.
RunAs ID가 지정되지 않으면 클라이언트 ID가 다음 엔터프라이즈 Bean으로 전파됩니다.
RunAs ID는 각 엔터프라이즈 Bean을 나타내거나 엔터프라이즈 Bean에 있는 각 메소드를 나타낼 수 있습니다.
- EJB 배치 디스크립터 편집기의 액세스 탭에서
보안 ID(Bean 레벨) 필드 옆에서 추가를 클릭하십시오.
보안 ID 추가 마법사가 열립니다.
- 적합한 실행을 모드로 선택하고, 보안 ID를 설명하고, 다음을 클릭하십시오. 보안 서비스에게 프린시펄의 신임 정보 설정을 변경하지 않도록 지시하려면 호출자의 ID 사용 모드를 선택하십시오. Bean 메소드를 실행하기 위해 지정된 보안 역할에 지정된 프린시펄을 사용하려면
특정 역할에 지정된 ID 사용 모드를 선택하십시오. 이 연관은 역할이 해당 역할을 부여받은 사용자의 사용자 ID와
비밀번호와 연관되는 애플리케이션 바인딩의 일부입니다. 특정 역할에 지정된 ID 사용
모드를 선택한 경우에는 역할 이름 및 역할 설명을 지정해야 합니다.
- 발견된 Bean 목록에서 하나 이상의 엔터프라이즈 Bean을 선택하고 다음을 클릭하십시오.
다음을 사용할 수 없으면 완료를 클릭하십시오.
- 옵션: 메소드 요소 페이지에서 보안 ID의 하나 이상의 메소드 요소를 선택하고
완료를 클릭하십시오.
- 배치 디스크립터 편집기를 닫고, 프롬프트가 표시되면 예를 클릭하여 변경사항을 저장하십시오.
결과
EJB 애플리케이션을 보안한 후 결과로 나오는
.jar 파일에는
해당 배치 디스크립터에 보안 정보가 포함됩니다. EJB 모듈의 보안 정보가
ejb-jar.xml 파일에 저장됩니다.
다음에 수행할 작업
어셈블리 도구를 사용하여 EJB 애플리케이션을 보안한 후에
관리 콘솔을 사용하여 EJB 애플리케이션을 설치할 수 있습니다.
보안된 EJB 애플리케이션의 설치 동안에 이 주제의 단계, 보안된 애플리케이션 배치를 수행하여
EJB 애플리케이션 보안 태스크를 완료하십시오.