6.4. Jakarta Enterprise Bean에 대한 원격 액세스
6.4.1. 원격 자카르타 엔터프라이즈 빈 클라이언트에서 보안 영역 사용 링크 복사링크가 클립보드에 복사되었습니다!
Jakarta Enterprise Bean을 원격으로 호출하는 클라이언트에 보안을 추가하는 한 가지 방법은 보안 영역을 사용하는 것입니다. 보안 영역은 사용자 이름/암호 쌍과 사용자 이름/역할 쌍으로 이루어진 간단한 데이터베이스입니다. 또한 용어는 웹 컨테이너의 컨텍스트에서도 약간 다른 의미를 가집니다.
Jakarta Enterprise Bean에 대해 보안 영역에 있는 특정 사용자 이름/암호 쌍을 인증하려면 다음 단계를 따르십시오.
- 도메인 컨트롤러 또는 독립 실행형 서버에 새 보안 영역을 추가합니다.
다음 예와 같이 애플리케이션의 클래스 경로에 있는
wildfly-config.xml파일을 구성합니다.<configuration> <authentication-client xmlns="urn:elytron:client:1.2"> <authentication-rules> <rule use-configuration="default" /> </authentication-rules> <authentication-configurations> <configuration name="default"> <sasl-mechanism-selector selector="DIGEST-MD5" /> <set-user-name name="admin" /> <credentials> <clear-password password="password123!" /> </credentials> </configuration> </authentication-configurations> </authentication-client> <jboss-ejb-client xmlns="urn:jboss:wildfly-client-ejb:3.0"> <connections> <connection uri="remote+http://127.0.0.1:8080" /> </connections> </jboss-ejb-client> </configuration>- 새 보안 영역을 사용하는 도메인 또는 독립 실행형 서버에 사용자 지정 원격 커넥터를 생성합니다.
- 사용자 지정 Remoting 커넥터로 프로필을 사용하도록 구성된 서버 그룹에 Jakarta Enterprise Bean을 배포하거나 관리형 도메인을 사용하지 않는 경우 독립 실행형 서버에 배포합니다.
6.4.2. 새 보안 영역 추가 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 실행합니다.
jboss-cli.sh또는jboss-cli.bat스크립트를 실행하고 서버에 연결합니다.새 보안 영역 자체를 생성합니다.
다음 명령을 실행하여 도메인 컨트롤러 또는 독립 실행형 서버에
MyDomainRealm이라는 새 보안 영역을 생성합니다.도메인 인스턴스의 경우 다음 명령을 사용하십시오.
/host=master/core-service=management/security-realm=MyDomainRealm:add()독립 실행형 인스턴스의 경우 다음 명령을 사용하십시오.
/core-service=management/security-realm=MyDomainRealm:add()myfile.properties라는 속성 파일을 만듭니다 :독립 실행형 인스턴스의 경우
EAP_HOME/standalone/configuration/myfile.properties파일을 생성하고 도메인 인스턴스에 대해EAP_HOME/domain/configuration/myfile.properties파일을 생성합니다. 이러한 파일에는 파일 소유자의 읽기 및 쓰기 액세스 권한이 있어야 합니다.$ chmod 600 myfile.properties새 역할에 대한 정보를 저장할 속성 파일에 대한 참조를 생성합니다.
다음 명령을 실행하여 새 역할과 관련된 속성을 포함할
myfile.properties파일에 대한 포인터를 생성합니다.참고속성 파일은 포함된
add-user.sh 및스크립트로 생성되지 않습니다. 외부에서 생성해야 합니다.add-user.bat도메인 인스턴스의 경우 다음 명령을 사용하십시오.
/host=master/core-service=management/security-realm=MyDomainRealm/authentication=properties:add(path=myfile.properties)독립 실행형 인스턴스의 경우 다음 명령을 사용하십시오.
/core-service=management/security-realm=MyDomainRealm/authentication=properties:add(path=myfile.properties)
새 보안 영역이 생성됩니다. 이 새 영역에 사용자와 역할을 추가하면 기본 보안 영역과 별도의 파일에 정보가 저장됩니다. 자체 애플리케이션 또는 절차를 사용하여 이 새 파일을 관리할 수 있습니다.
add-user.sh 스크립트를 사용하여 application-users.properties 이외의 기본이 아닌 파일에 사용자를 추가하는 경우 --user-properties myfile.properties 인수를 전달해야 합니다. 그렇지 않으면application-users.properties 를 사용하려고 합니다.
6.4.3. 보안 영역에 사용자 추가 링크 복사링크가 클립보드에 복사되었습니다!
-
add-user스크립트를 실행합니다. 터미널을 열고 디렉터리를EAP_HOME/bin/디렉터리로 변경합니다. Red Hat Enterprise Linux 또는 기타 UNIX 유사 운영 체제인 경우add-user.sh를실행합니다. Windows Server인 경우add-user.bat를실행합니다. -
관리 사용자 또는 애플리케이션 사용자를 추가할지 여부를 선택합니다. 이 절차의 경우
b를 입력하여 애플리케이션 사용자를 추가합니다. -
사용자가 추가할 영역을 선택합니다. 기본적으로 사용 가능한 유일한 영역은
ApplicationRealm입니다. 사용자 지정 영역을 추가한 경우 대신 사용자를 추가할 수 있습니다. -
메시지가 표시되면 사용자 이름, 암호 및 역할을 입력합니다. 메시지가 표시되면 원하는 사용자 이름, 암호 및 선택적 역할을 입력합니다.
yes를 입력하여 선택 사항을 확인하거나,no를 입력하여 변경 사항을 취소합니다. 변경 사항은 보안 영역의 각 속성 파일에 작성됩니다.
6.4.4. 보안 도메인과 보안 영역 간의 관계 링크 복사링크가 클립보드에 복사되었습니다!
Jakarta Enterprise Beans를 보안 영역으로 보호하려면 보안 영역에서 사용자 자격 증명을 검색하도록 구성된 보안 도메인을 사용해야 합니다. 즉, 도메인에는 Remoting 및 RealmDirect 로그인 모듈이 포함되어야 합니다. 보안 도메인 할당은 @SecurityDomain 주석으로 수행되며 Jakarta Enterprise Bean에 적용할 수 있습니다.
other 보안 도메인은 기본 보안 영역에서 사용자 및 암호 데이터를 검색합니다. 이 보안 도메인은 Jakarta Enterprise Beans에 @SecurityDomain 주석이 없는 경우 기본 도메인이지만 Jakarta Enterprise Beans에는 보안으로 간주되는 기타 보안 관련 주석이 포함되어 있습니다.
클라이언트에서 연결을 설정하는 데 사용하는 기본 http-remoting 커넥터 는 사용되는 보안 영역을 결정합니다. http-remoting 커넥터에 대한 자세한 내용은 JBoss EAP 구성 가이드의 하위 시스템 제거 정보를 참조하십시오.
기본 커넥터의 보안 영역은 다음과 같은 방식으로 변경할 수 있습니다.
/subsystem=remoting/http-connector=http-remoting-connector:write-attribute(name=security-realm,value=MyDomainRealm)
6.4.5. SSL 암호화를 사용하여 원격 자카르타 엔터프라이즈 빈 액세스 정보 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 EJB2의 RMI(Remote Method Invocation) 및 Jakarta Enterprise Beans3 Bean에 대한 네트워크 트래픽은 암호화되지 않습니다. 암호화가 필요한 경우 클라이언트와 서버 간의 연결이 암호화되도록 SSL(Secure Sockets Layer)을 사용할 수 있습니다. SSL을 사용하면 방화벽 구성에 따라 네트워크 트래픽이 일부 방화벽을 통과하도록 허용하는 추가 이점이 있습니다.
Red Hat은 영향을 받는 모든 패키지에서 TLSv1.1 또는 TLSv1.2를 기반으로 SSLv2, SSLv3 및 TLSv1.0을 명시적으로 비활성화하는 것이 좋습니다.