Sun Java System Application Server Enterprise Edition 8.1 2005Q2 관리 설명서

10장 메시지 보안 구성

이 장에서는 Application Server의 웹 서비스에 대한 메시지 계층 보안 구성에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.

이 장의 일부 내용은 보안 및 웹 서비스 개념에 대한 기본적인 이해가 필요합니다. 이 장을 시작하기 전에 이 개념에 대한 자세한 내용을 보려면 추가 정보에 나열된 자원을 살펴봅니다.

메시지 보안 정보

메시지 보안 개요

메시지 보안의 경우 보안 정보가 메시지에 삽입되므로 네트워킹 계층을 지나 메시지와 함께 메시지 대상에 도달합니다. 메시지 보안은 메시지 보안을 사용하여 메시지 전송에서 메시지 보호를 분리하여 전송 후에도 메시지가 보호되도록 하는 전송 계층 보안(J2EE 1.4 TutorialSecurity 장에서 설명)과 다릅니다.

웹 서비스 보안: SOAP 메시지 보안(WS-Security)은 Sun Microsystems를 포함한 모든 웹 서비스 기술 주요 제공업체가 OASIS로 공동 개발한 상호 운영 가능한 웹 서비스의 국제적인 표준입니다. WS-Security는 XML 암호화 및 XML 디지털 서명을 사용하여 SOAP에서 전송된 웹 서비스 메시지를 보안 처리하는 메시지 보안 체계입니다. WS-Security 사양에서는 SOAP 웹 서비스 메시지를 암호화하기 위한 X.509 인증서, SAML 명제 및 사용자 이름/비밀번호 토큰 등을 포함한 다양한 보안 토큰 사용을 정의합니다.

WS-Security 사양은 http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf에서 볼 수 있습니다.

Application Server의 메시지 보안 이해

Application Server는 서버의 웹 서비스 클라이언트와 서버측 컨테이너의 WS-Security 표준에 대해 통합 지원을 제공합니다. 이 기능은 Application Server의 컨테이너가 응용 프로그램을 대신하여 웹 서비스 보안을 실행하고 응용 프로그램의 구현을 변경하지 않고 웹 서비스 응용 프로그램을 보호하는 데 적용할 수 있도록 통합되어 있습니다. Application Server에서는 SOAP 계층 메시지 보안 공급자와 메시지 보호 정책을 컨테이너와 컨테이너에 배포된 응용 프로그램에 바인드하는 기능을 제공하여 이러한 효과를 달성합니다.

메시지 보안 책임 지정

Application Server에서는 시스템 관리자 응용 프로그램 배포자 역할에 메시지 보안을 구성하는 기본 책임이 있다고 예상합니다. 일반적인 경우에는 다른 역할에서 개발자의 관여 없이 기존 응용 프로그램의 구현을 변경하지 않고도 기존 응용 프로그램의 보안을 확보할 수 있지만 응용 프로그램 개발자가 기여하는 경우도 있습니다. 다음 절에는 다양한 역할의 책임이 정의되어 있습니다.

시스템 관리자

시스템 관리자의 책임은 다음과 같습니다.

시스템 관리자는 관리 콘솔을 사용하여 서버 보안 설정을 관리하고 명령줄 도구를 사용하여 인증서 데이터베이스를 관리합니다. Platform Edition의 경우 인증서 및 개인 키는 키 저장소에 저장되고 keytool을 사용하여 관리합니다. Standard Edition 및 Enterprise Edition은 인증서와 개인 키를 NSS 데이터베이스에 저장하고 certutil을 사용하여 관리합니다. 이 문서는 기본적으로 시스템 관리자를 대상으로 합니다. 메시지 보안 작업에 대한 개요는 메시지 보안을 위한 Application Server 구성 을 참조하십시오.

응용 프로그램 배포자

응용 프로그램 배포자의 책임은 다음과 같습니다.

이 보안 작업은 Developers’ GuideSecuring Applications 장에 설명되어 있습니다. 이 장에 대한 링크는 추가 정보를 참조하십시오.

응용 프로그램 개발자

응용 프로그램 개발자는 메시지 보안을 설정할 수 있지만 그럴 책임은 없습니다. 모든 웹 서비스가 보안 처리되도록 시스템 관리자가 메시지 보안을 설정하거나 응용 프로그램에 바인드된 공급자나 보호 정책이 컨테이너에 바인드된 것과 달라야 하는 경우 응용 프로그램 개발자가 메시지 보안을 설정할 수 있습니다.

응용 프로그램 개발자나 어셈블러의 책임은 다음과 같습니다.

보안 토큰 및 보안 체계 정보

WS-Security 사양에서는 보안 토큰을 사용하여 SOAP 웹 서비스 메시지를 인증 및 암호화하는 것과 관련해서 확장 가능한 체계를 제공합니다. Application Server와 함께 설치된 SOAP 계층 메시지 보안 공급자는 사용자 이름/비밀번호 및 X.509 인증서 보안 토큰을 사용하여 SOAP 웹 서비스 메시지를 인증하고 암호화하는 데 사용될 수 있습니다. SAML 명제를 포함하여 다른 보안 토큰을 사용하는 추가 공급자가 Application Server의 후속 릴리스와 함께 설치됩니다.

사용자 이름 토큰 정보

Application Server는 SOAP 메시지의 사용자 이름 토큰을 사용하여 메시지 보낸 사람의 인증 아이디를 설정합니다. 포함된 비밀번호 내에 사용자 이름 토큰이 포함된 메시지의 수신자는 보낸 사람이 사용자의 비밀(비밀번호)을 알고 있는지 확인하여 토큰에서 식별된 사용자 역할을 할 수 있는 권한이 있는지 확인합니다.

사용자 이름 토큰을 사용할 경우 Application Server에 유효한 사용자 데이터베이스를 구성해야 합니다. 이 항목에 대한 자세한 내용은 영역을 편집하는 방법을 참조하십시오.

디지털서명 정보

Application Server는 XML 디지털 서명을 사용하여 인증 아이디를 메시지 내용에 바인드합니다. 클라이언트는 디지털 서명을 사용하여 전송 계층 보안을 사용할 경우 동일한 작업을 수행하기 위해 기본 인증 또는 SSL 클라이언트 인증서 인증을 사용한 것과 유사하게 호출자 아이디를 설정합니다. 디지털 서명은 메시지 발신자가 다를 수 있는 메시지 내용의 원본을 인증하기 위해 메시지 수신자가 확인합니다.

디지털 서명을 사용할 경우 Application Server에 유효한 keystore 및 truststore 파일을 구성해야 합니다. 이 항목에 대한 자세한 내용은 인증서 파일 정보를 참조하십시오.

암호화 정보

암호화의 목적은 대상만 이해할 수 있도록 데이터를 수정하는 것입니다. 원본 내용을 암호화된 요소로 대체하여 수정합니다. 공개 키 암호화 도구에서 서술한 경우 암호화를 사용하여 메시지를 읽을 수 있는 당사자의 아이디를 설정할 수 있습니다.

암호화를 사용할 경우 암호화를 지원하는 JCE 공급자를 설치해야 합니다. 이 항목에 대한 자세한 내용은 JCE 공급자를 구성하는 방법을 참조하십시오.

메시지 보호 정책 정보

요청 메시지 처리와 응답 메시지 처리에 대해 메시지 보호 정책이 정의되고 원본 또는 수신자 인증을 위한 요구 사항과 관련하여 메시지 보호 정책을 표시합니다. 원본 인증 정책은 메시지를 보냈거나 메시지 내용을 정의한 엔티티의 아이디를 메시지에 설정하여 메시지 수신자가 이를 인증할 수 있도록 하는 요구 사항을 나타냅니다. 수신자 인증 정책은 메시지를 수신할 수 있는 엔티티의 아이디를 메시지 보낸 사람이 설정할 수 있도록 하는 요구 사항을 나타냅니다. SOAP 웹 서비스 메시지 측면에서 메시지 보호 정책이 실현되도록 공급자는 특정 메시지 보안 체계를 적용합니다.

공급자를 컨테이너에 구성할 경우 요청 및 응답 메시지 보호 정책이 정의됩니다. 응용 프로그램 또는 응용 프로그램 클라이언트의 Sun 특정 배포 설명자 내에 웹 서비스 포트나 작업의 단위로 응용 프로그램 관련 메시지 보호 정책을 구성할 수도 있습니다. 어떤 경우든 메시지 보호 정책이 정의된 경우 클라이언트의 요청 및 응답 메시지 보호 정책은 서버의 요청 및 응답 메시지 보호 정책과 일치해야 합니다. 응용 프로그램 관련 메시지 보호 정책 정의에 대한 자세한 내용은 Developers’ GuideSecuring Applications 장을 참조하십시오.

메시지 보안 용어의 용어집

이 문서에서 사용한 용어는 아래에서 설명합니다. 개념에 대해서는 메시지 보안을 위한 Application Server 구성 에도 설명되어 있습니다.

웹 서비스 보안

Application Server에 배포된 웹 서비스는 SOAP 계층 메시지 보안 공급자와 메시지 보호 정책을 응용 프로그램이 배포된 컨테이너나 응용 프로그램에서 처리한 웹 서비스 종점에 바인드하는 작업을 통해 보호됩니다. SOAP 계층 메시지 보안 기능은 SOAP 계층 메시지 보안 공급자와 메시지 보호 정책을 클라이언트 컨테이너나 클라이언트 응용 프로그램에서 선언한 이식 가능한 서비스 참조에 바인드하는 작업을 통해 Application Server의 클라이언트측 컨테이너에 구성됩니다.

Application Server가 설치될 때 SOAP 계층 메시지 보안 공급자는 Application Server의 클라이언트 및 서버측 컨테이너에 구성됩니다. 이들 공급자는 컨테이너 또는 컨테이너에 배포된 개별 응용 프로그램이나 클라이언트에서 사용할 바인딩에 사용할 수 있습니다. 설치 중 공급자는 간단한 메시지 보호 정책으로 구성됩니다. 즉, 컨테이너나 컨테이너의 응용 프로그램 또는 클라이언트에 바인드된 경우 모든 요청 및 응답 메시지의 내용 원본을 디지털 서명으로 인증하게 됩니다.

Application Server의 관리 인터페이스를 사용하여 Application Server의 서버측 컨테이너에서 사용하기 위해 기존 공급자를 바인드하거나 공급자가 실행한 메시지 보호 정책을 수정하거나 대체 메시지 보호 정책으로 새로운 공급자 구성을 만들 수 있습니다. 이 작업은 보안에 대한 관리 콘솔 작업에 정의되어 있습니다. 응용 프로그램 클라이언트를 위한 메시지 보안을 활성화하는 방법에 정의된 대로 비슷한 관리 작업을 응용 프로그램 클라이언트 컨테이너의 SOAP 메시지 계층 보안 구성에서 수행할 수 있습니다.

기본적으로 메시지 계층 보안은 Application Server에서 비활성화됩니다. Application Server에 대한 메시지 계층 보안을 구성하려면 메시지 보안을 위한 Application Server 구성 에 설명된 단계를 수행합니다. Application Server에 배포된 모든 웹 서비스 응용 프로그램을 보호하기 위해 웹 서비스 보안을 사용하려면 메시지 보안을 위해 공급자를 활성화하는 방법의 단계를 수행합니다.

Application Server를 다시 시작해야 할 수도 있는 위 단계를 완료하면 웹 서비스 보안이 Application Server에 배포된 모든 웹 서비스 응용 프로그램에 적용됩니다.

응용 프로그램 관련 웹 서비스 보안 구성

응용 프로그램의 Sun 특정 배포 설명자에 요소를 정의하여 응용 프로그램 어셈블리 시 응용 프로그램 관련 웹 서비스 보안 기능이 구성됩니다. 이 요소를 사용하여 특정 공급자나 메시지 보호 정책을 웹 서비스 종점이나 서비스 참조와 연관시킬 수 있고 해당하는 종점이나 참조 대상 서비스의 특정 포트나 메소드에 적용할 수 있습니다.

응용 프로그램 관련 메시지 보호 정책 정의에 대한 자세한 내용은 Developers’ GuideSecuring Applications 장을 참조하십시오. 이 장에 대한 링크는 추가 정보를 참조하십시오.

샘플 응용 프로그램 보안

Application Server는 xms라는 샘플 응용 프로그램과 함께 제공됩니다. xms 응용 프로그램은 J2EE EJB 종점 및 Java Servlet 종점 모두에서 구현되는 간단한 웹 서비스 기능을 합니다. 두 종점은 동일한 서비스 종점 인터페이스를 공유합니다. 서비스 종점 인터페이스는 문자열 인수를 취하는 단일 작업 sayHello를 정의하고 사전 보류 중인 Hello가 구성한 String을 호출 인수에 반환합니다.

xms 샘플 응용 프로그램은 Application Server의 WS-Security 기능을 사용하여 기존의 웹 서비스 응용 프로그램을 보안하는 방법을 보여주기 위해 제공됩니다. 샘플과 함께 제공된 지침에서는 xms 응용 프로그램을 보안하기 위해 사용한 Application Server의 WS-Security 기능을 활성화하는 방법에 대해 설명합니다. 샘플은 응용 프로그램 관련 웹 서비스 보안 구성 응용 프로그램에 설명된 대로 WS-Security 기능을 응용 프로그램에 직접 바인딩하는 방법도 보여줍니다.

xms 샘플 응용 프로그램은 다음 디렉토리에 설치됩니다. install-dir/samples/webservices/security/ejb/apps/xms/

xms 샘플 응용 프로그램의 컴파일, 패키지화 및 실행에 대한 자세한 내용은 Developers’ GuideSecuring Applications 장을 참조하십시오.

메시지 보안을 위한 Application Server 구성

요청 및 응답 정책 구성 작업

다음 표에서는 메시지 보호 정책 구성과 해당 구성의 WS-Security SOAP 메시지 보안 공급자가 수행한 메시지 보안 작업 결과를 보여줍니다.

표 10–1 메시지 보호 정책과 WS-Security SOAP 메시지 보안 작업 매핑

메시지 보호 정책 

WS-Security SOAP 메시지 보호 작업 결과 

auth-source="sender" 

메시지에는 wsse:UsernameToken(비밀번호 포함)을 포함하는 wsse:Security 헤더가 들어 있습니다.

auth-source="content" 

SOAP 메시지 본문의 내용을 서명합니다. 메시지에는 ds:Signature로 표시되는 메시지 본문 서명을 포함하는 wsse:Security 헤더가 들어 있습니다.Signature.

auth-source="sender" 

auth-recipient="before-content" 

또는 

auth-recipient="after-content" 

SOAP 메시지 본문의 내용이 암호화되고 xend:EncryptedData 결과와 대체됩니다. 메시지에는 wsse:UsernameToken(비밀번호 포함)xenc:EncryptedKey가 포함된 wsse:Security 헤더가 들어 있습니다. xenc:EncryptedKey는 SOAP 메시지 본문을 암호화하는 데 사용한 키를 포함합니다. 키는 수신자의 공개 키에 암호화되어 있습니다.

auth-source="content" 

auth-recipient="before-content" 

SOAP 메시지 본문의 내용이 암호화되고 xend:EncryptedData 결과와 대체됩니다. xenc:EncryptedData가 서명됩니다. 메시지에는 xenc:EncryptedKeyds:Signature가 포함된 wsse:Security 헤더가 들어 있습니다.Signature. xenc:EncryptedKey는 SOAP 메시지 본문을 암호화하는 데 사용한 키를 포함합니다. 키는 수신자의 공개 키에 암호화되어 있습니다.

auth-source="content" 

auth-recipient="after-content" 

SOAP 메시지 본문의 내용이 서명 및 암호화되고 xend:EncryptedData 결과와 대체됩니다. 메시지에는 xenc:EncryptedKeyds:Signature가 포함된 wsse:Security 헤더가 들어 있습니다. xenc:EncryptedKey는 SOAP 메시지 본문을 암호화하는 데 사용한 키를 포함합니다. 키는 수신자의 공개 키에 암호화되어 있습니다.

auth-recipient="before-content" 

또는 

auth-recipient="after-content" 

SOAP 메시지 본문의 내용이 암호화되고 xend:EncryptedData 결과와 대체됩니다. 메시지에는 xenc:EncryptedKey가 포함된 wsse:Security 헤더가 들어 있습니다. xenc:EncryptedKey는 SOAP 메시지 본문을 암호화하는 데 사용한 키를 포함합니다. 키는 수신자의 공개 키에 암호화되어 있습니다.

지정된 정책이 없습니다. 

모듈에서 보안 작업을 수행하지 않습니다. 

Procedure기타 보안 기능을 구성하는 방법

Application Server는 SOAP 처리 계층에 통합된 메시지 보안 공급자를 사용하여 메시지 보안을 구현합니다. 메시지 보안 공급자는 Application Server의 다른 보안 기능에 따라 달라집니다.

  1. Java SDK 1.5.0 이전의 버전을 사용하고 암호화 기술을 사용할 경우 JCE 공급자를 구성합니다.

    JCE 공급자 구성은 JCE 공급자를 구성하는 방법에 설명되어 있습니다.

  2. 사용자 이름 토큰을 사용할 경우 필요하면 사용자 데이터베이스를 구성합니다. 토큰을 사용할 경우 해당하는 영역을 구성하고 영역에 해당하는 사용자 데이터베이스를 구성해야 합니다.

    사용자 데이터베이스 구성은 영역을 편집하는 방법에 설명되어 있습니다.

  3. 필요한 경우 인증서 및 개인 키를 관리합니다.

    인증서 및 개인 키 관리는 인증서 파일 정보에 설명되어 있습니다.

다음 순서

Application Server의 기능이 메시지 보안 공급자가 사용할 수 있게 구성되면 Application Server와 함께 설치된 공급자가 메시지 보안을 위해 공급자를 활성화하는 방법에 설명된 대로 활성화될 수 있습니다.

ProcedureJCE 공급자를 구성하는 방법

J2SE 1.4.x가 포함된 JCE(Java Cryptography Extension) 공급자는 RSA 암호화를 지원하지 않습니다. WS-Security에서 정의한 XML 암호화는 대개 RSA 암호화를 기반으로 하기 때문에 WS-Security를 사용하여 SOAP 메시지를 암호화하려면 RSA 암호화를 지원하는 JCE 공급자를 다운로드 및 설치해야 합니다.


주 –

RSA는 RSA Data Security, Inc.에서 개발한 공개 키 암호화 기술입니다. RSA는 기술 발명자인 Rivest, Shamir, Adelman의 약자입니다.


Application Server를 1.5 버전의 Java SDK에서 실행할 경우 JCE 공급자는 이미 올바르게 구성되어 있습니다. Application Server를 1.4.x 버전의 Java SDK에서 실행할 경우 다음과 같이 JCE 공급자를 정적으로 JDK 환경의 일부로 추가할 수 있습니다.

  1. JCE 공급자 JAR(Java ARchive) 파일을 다운로드하여 설치합니다.

    다음 URL에서는 RSA 암호화를 지원하는 JCE 공급자 목록을 제공합니다. http://java.sun.com/products/jce/jce14_providers.html

  2. JCE 공급자 JAR 파일을 java-home/jre/lib/ext/에 복사합니다.

  3. Application Server를 중지합니다.

    Application Server를 중지하지 않고 나중에 이 프로세스에서 다시 시작하면 Application Server가 JCE 공급자를 인식하지 않습니다.

  4. 텍스트 편집기에서 java-home/jre/lib/security/java.security 등록 정보 파일을 편집합니다. 다운로드한 JCE 공급자를 이 파일에 추가합니다.

    java.security 파일에는 이 공급자를 추가하기 위한 자세한 지침이 포함되어 있습니다. 기본적으로 유사한 등록 정보를 가진 위치에 다음 형식의 행을 추가해야 합니다.


    security.provider.n=provider-class-name
    

    이 예에서 n은 보안 공급자를 평가할 때 Application Server에서 사용하는 기본 설정 순서입니다. 추가한 JCE 공급자에 대해 n2로 설정합니다.

    예를 들어, Legion of the Bouncy Castle JCE 공급자를 다운로드한 경우 다음 행을 추가합니다.


    security.provider.2=org.bouncycastle.jce.provider.
       BouncyCastleProvider

    Sun 보안 공급자가 값 1을 가진 가장 높은 기본 설정을 유지하는지 확인합니다.


    security.provider.1=sun.security.provider.Sun

    다른 보안 공급자의 수준을 하향 조정하여 각 수준에 하나의 보안 공급자만 있도록 합니다.

    다음은 필요한 JCE 공급자를 제공하고 기존 공급자를 올바른 위치에 보관하는 java.security 파일의 예입니다.


    security.provider.1=sun.security.provider.Sun
    security.provider.2=org.bouncycastle.jce.provider.
       BouncyCastleProvider
    security.provider.3=com.sun.net.ssl.internal.ssl.Provider
    security.provider.4=com.sun.rsajca.Provider
    security.provider.5=com.sun.crypto.provider.SunJCE
    security.provider.6=sun.security.jgss.SunProvider
  5. 파일을 저장하고 닫습니다.

  6. Application Server를 다시 시작합니다.

메시지 보안에 대한 관리 콘솔 작업

메시지 보안을 사용하기 위해 Application Server를 설정하는 대부분의 단계는 관리 콘솔이나 asadmin 명령줄 도구를 사용하여 수행하거나 시스템 파일을 수동으로 편집하여 수행할 수 있습니다. 일반적으로 시스템 파일을 편집하는 것은 의도하지 않은 변경으로 인해 Application Server가 제대로 실행되지 못하게 할 수 있기 때문에 권장하지 않습니다. 따라서 가능한 한 관리 콘솔을 사용하여 Application Server를 구성하는 단계가 먼저 표시되고 asadmin 도구 명령을 사용한 단계는 나중에 표시됩니다. 관리 콘솔이나 해당 asadmin 명령이 없을 경우에만 시스템 파일을 수동으로 편집하는 단계가 표시됩니다.

메시지 계층 보안 지원이 플러그 가능한 인증 모듈 양식으로 클라이언트 컨테이너와 Application Server에 통합됩니다. 기본적으로 메시지 계층 보안은 Application Server에서 비활성화됩니다. 다음 절에서는 메시지 보안 구성 및 공급자를 활성화 작성 편집 및 삭제하는 것과 관련한 세부 사항을 제공합니다.

Procedure메시지 보안을 위해 공급자를 활성화하는 방법

Application Server에 배포된 웹 서비스 종점에 대한 메시지 보안을 활성화하려면 서버측에서 기본적으로 사용되는 공급자를 지정해야 합니다. 메시지 보안을 위한 기본 공급자를 활성화한 경우 Application Server에 배포된 웹 서비스의 클라이언트에서 사용할 공급자도 활성화해야 합니다. 클라이언트가 사용하는 공급자를 활성화하는 방법에 대한 자세한 내용은 응용 프로그램 클라이언트를 위한 메시지 보안을 활성화하는 방법을 참조하십시오.

배포된 종점에서 발생한 웹 서비스 호출에 대해 메시지 보안을 활성화하려면 기본 클라이언트 공급자를 지정해야 합니다. Application Server에 대한 기본 클라이언트 공급자를 활성화한 경우 Application Server에 배포된 종점에서 호출한 모든 서비스가 메시지 계층 보안과 호환 가능하게 구성되도록 해야 합니다.

  1. 관리 콘솔 트리 구성 요소에서 구성 노드를 확장합니다.

  2. 구성할 인스턴스를 선택합니다.

    • 특정 인스턴스를 구성하려면 해당 인스턴스 구성 노드를 선택합니다. 예를 들어, 기본 인스턴스 server에 대해 server-config 노드를 선택합니다.

    • 모든 인스턴스의 기본 설정을 구성하려면 default-config 노드를 선택합니다.

  3. 보안 노드를 확장합니다.

  4. 메시지 보안 노드를 확장합니다.

  5. SOAP 노드를 확장합니다.

  6. 메시지 보안 탭을 선택합니다.

  7. 메시지 보안 구성 편집 탭에서 바인드되지 않은 특정 공급자의 모든 응용 프로그램에 대해 서버측에서 사용할 공급자와 클라이언트측에서 사용할 공급자를 지정합니다.

    다음 선택적 등록 정보를 수정하여 이를 수행합니다.

    • 기본 공급자 – 특정 서버 공급자가 바인드되지 않은 응용 프로그램에 대해 호출할 서버 공급자의 아이디입니다.

      기본적으로 Application Server에 대한 공급자 구성은 선택되어 있지 않습니다. 서버측 공급자를 식별하려면 ServerProvider를 선택합니다. 옵션을 선택하면 기본적으로 서버측에서 메시지 보안 공급자가 호출되지 않음을 의미합니다.

      이 필드에 대해 일반적으로 ServerProvider를 선택합니다.

    • 기본 클라이언트 공급자 – 특정 클라이언트 공급자가 바인드되지 않은 응용 프로그램에 대해 호출할 클라이언트 공급자의 아이디입니다.

      기본적으로 Application Server에 대한 공급자 구성은 선택되어 있지 않습니다. 클라이언트측 공급자를 식별하려면 ClientProvider를 선택합니다. Null 옵션을 선택하면 기본적으로 클라이언트측에서 메시지 보안 공급자가 호출되지 않음을 의미합니다.

      이 필드에 대해 일반적으로 Null을 선택합니다. 기본 공급자와 메시지 보호 정책을 활성화하여 Application Server에 배포된 웹 서비스 종점에서 시작된 웹 서비스 호출에 적용하려면 ClientProvider를 선택합니다.

  8. 저장을 누릅니다.

  9. 클라이언트나 서버 공급자를 활성화하고 활성화된 공급자의 메시지 보호 정책을 수정하려는 경우, 이 단계에서 활성화된 메시지 보안 공급자를 수정하는 방법에 대한 자세한 내용은 메시지 보안 공급자를 구성하는 방법을 참조하십시오.

해당 asadmin 명령

Procedure메시지 보안 공급자를 구성하는 방법

일반적으로 공급자 유형 구현 클래스 및 공급자별 구성 등록 정보를 수정할 수 있더라도 메시지 보호 정책을 수정하기 위해 공급자가 다시 구성됩니다.

  1. 관리 콘솔 트리 구성 요소에서 구성 노드를 확장합니다.

  2. 구성할 인스턴스를 선택합니다.

    • 특정 인스턴스를 구성하려면 해당 인스턴스 구성 노드를 선택합니다. 예를 들어, 기본 인스턴스 server에 대해 server-config 노드를 선택합니다.

    • 모든 인스턴스의 기본 설정을 구성하려면 default-config 노드를 선택합니다.

  3. 보안 노드를 확장합니다.

  4. 메시지 보안 노드를 확장합니다.

  5. SOAP 노드를 확장합니다.

  6. 공급자 탭을 선택합니다.

  7. 편집할 메시지 보안 공급자를 선택합니다.

    Application Server와 함께 제공된 ClientProviderServerProvider

  8. 공급자 구성 편집 페이지의 공급자 구성 섹션에서 다음 등록 정보를 수정할 수 있습니다.

    • 공급자 유형client, server 또는 client-server를 선택하여 공급자를 클라이언트 인증 공급자, 서버 인증 공급자 또는 둘 다(클라이언트-서버 공급자)로 사용할지 여부를 설정합니다.

    • 클래스 이름 - 공급자의 Java 구현 클래스를 입력합니다. 클라이언트 인증 공급자는 com.sun.enterprise.security.jauth.ClientAuthModule 인터페이스를 구현해야 합니다. 서버측 공급자는 com.sun.enterprise.security.jauth.ServerAuthModule 인터페이스를 구현해야 합니다. 공급자는 두 가지 인터페이스를 모두 구현할 수 있지만 공급자 유형에 해당하는 인터페이스는 반드시 구현해야 합니다.

  9. 공급자 구성 만들기 페이지의 요청 정책 섹션에서 필요한 경우 다음과 같은 선택적 값을 입력합니다.

    이 등록 정보는 선택적이지만 지정하지 않을 경우 요청 메시지에 인증이 적용되지 않습니다.

    요청 정책은 인증 공급자가 수행한 요청 처리와 연관된 인증 정책 요구 사항을 정의합니다. 정책은 메시지 수신자가 해당 서명을 확인하기 전에 메시지를 해독해야 함을 의미하는 내용이 표시된 이후에 암호화가 발생하는 요구 사항과 같은 메시지 보낸 사람 순서에 표시됩니다.

    • 인증 소스sender, content 또는 Null(빈 옵션)을 선택하여 메시지 계층 보낸 사람 인증을 위한 요구 사항(예: 사용자 이름 비밀번호), 내용 인증을 위한 요구 사항(예: 디지털 서명) 또는 요청 메시지에 적용할 인증 없음을 정의합니다. Null을 지정한 경우 요청의 소스 인증이 필요하지 않습니다.

    • 인증 수신자beforeContent 또는 afterContent를 선택하여 요청 메시지 수신자의 보낸 사람에 대한 메시지 계층 인증을 위한 요구 사항(예: XML 암호화)을 정의합니다. 값이 지정되지 않은 경우에는 기본값인 afterContent로 지정됩니다.

    다음의 메시지 보호 정책의 결과로 SOAP 메시지 보안 공급자가 수행하는 작업에 대한 자세한 내용은 요청 및 응답 정책 구성 작업을 참조하십시오.

  10. 공급자 구성 만들기 페이지의 응답 정책 섹션에서 필요한 경우 다음과 같은 선택적 값을 입력합니다.

    이 등록 정보는 선택적이지만 지정하지 않을 경우 응답 메시지에 인증이 적용되지 않습니다.

    응답 정책은 인증 공급자가 수행한 응답 처리와 연관된 인증 정책 요구 사항을 정의합니다. 정책은 메시지 수신자가 해당 서명을 확인하기 전에 메시지를 해독해야 함을 의미하는 내용이 표시된 이후에 암호화가 발생하는 요구 사항과 같은 메시지 보낸 사람 순서에 표시됩니다.

    • 인증 소스sender, content 또는 Null(빈 옵션)을 선택하여 응답 메시지에 적용할 메시지 계층 보낸 사람 인증을 위한 요구 사항(예: 사용자 이름 비밀번호)이나 내용 인증을 위한 요구 사항(예: 디지털 서명)을 정의합니다. Null을 지정한 경우 응답의 소스 인증이 필요하지 않습니다.

    • 인증 수신자beforeContent 또는 afterContent를 선택하여 응답 메시지 수신자의 보낸 사람에 대한 메시지 계층 인증을 위한 요구 사항(예: XML 암호화)을 정의합니다. 값이 지정되지 않은 경우에는 기본값인 afterContent로 지정됩니다.

    다음의 메시지 보호 정책의 결과로 SOAP 메시지 보안 공급자가 수행하는 작업에 대한 자세한 내용은 요청 및 응답 정책 구성 작업을 참조하십시오.

  11. 등록 정보 추가 버튼을 눌러 다른 등록 정보를 추가합니다.

    Application Server와 함께 제공된 공급자는 아래 나열된 등록 정보를 지원합니다. 다른 공급자를 사용할 경우 등록 정보와 유효한 값에 대한 자세한 내용은 해당 설명서를 참조하십시오.

    • server.config – 서버 구성 정보를 포함하는 XML 파일의 디렉토리와 파일 이름입니다. 예를 들어, domain-dir/config/wss-server-config.xml입니다.

  12. 저장을 누릅니다.

해당 asadmin 명령

응답 정책을 설정하려면 다음 명령에서 단어 requestresponse로 바꿉니다.

Procedure메시지 보안 공급자 만들기

기존 공급자를 구성하려면 메시지 보안 공급자를 구성하는 방법의 단계를 수행합니다.

  1. 관리 콘솔 트리 구성 요소에서 구성 노드를 확장합니다.

  2. 구성할 인스턴스를 선택합니다.

    • 특정 인스턴스를 구성하려면 해당 인스턴스 구성 노드를 선택합니다. 예를 들어, 기본 인스턴스 server에 대해 server-config 노드를 선택합니다.

    • 모든 인스턴스의 기본 설정을 구성하려면 default-config 노드를 선택합니다.

  3. 보안 노드를 확장합니다.

  4. 메시지 보안 노드를 확장합니다.

  5. SOAP 노드를 확장합니다.

  6. 공급자 탭을 선택합니다.

  7. 공급자 구성 페이지에서 새로 만들기를 누릅니다.

  8. 공급자 구성 만들기 페이지의 공급자 구성 섹션에서 다음을 입력합니다.

    • 기본 공급자 – 새로운 메시지 보안 공급자를 특정 공급자가 바인드되지 않은 응용 프로그램에 대해 호출할 공급자로 만들려면 이 필드 옆에 있는 확인란을 선택합니다. 공급자가 기본 클라이언트 공급자 기본 서버 공급자 또는 둘 다가 될지 여부는 공급자 유형에 대해 선택한 값에 따라 다릅니다.

    • 공급자 유형client, server 또는 client-server를 선택하여 공급자를 클라이언트 인증 공급자, 서버 인증 공급자 또는 둘 다(클라이언트-서버 공급자)로 사용할지 여부를 설정합니다.

    • 공급자 아이디 - 이 공급자 구성에 대한 아이디를 입력합니다. 현재 공급자 구성 목록에 이 이름이 표시됩니다.

    • 클래스 이름 - 공급자의 Java 구현 클래스를 입력합니다. 클라이언트 인증 공급자는 com.sun.enterprise.security.jauth.ClientAuthModule 인터페이스를 구현해야 합니다. 서버측 공급자는 com.sun.enterprise.security.jauth.ServerAuthModule 인터페이스를 구현해야 합니다. 공급자는 두 가지 인터페이스를 모두 구현할 수 있지만 공급자 유형에 해당하는 인터페이스는 반드시 구현해야 합니다.

  9. 공급자 구성 만들기 페이지의 요청 정책 섹션에서 필요한 경우 다음과 같은 선택적 값을 입력합니다.

    이 등록 정보는 선택적이지만 지정하지 않을 경우 요청 메시지에 인증이 적용되지 않습니다.

    • 인증 소스sender, content 또는 Null(빈 옵션)을 선택하여 응답 메시지에 적용할 메시지 계층 보낸 사람 인증을 위한 요구 사항(예: 사용자 이름 비밀번호), 내용 인증을 위한 요구 사항(예: 디지털 서명) 또는 요청 메시지에 적용할 인증 없음을 정의합니다. Null을 지정한 경우 요청의 소스 인증이 필요하지 않습니다.

    • 인증 수신자beforeContent 또는 afterContent를 선택하여 요청 메시지 수신자의 보낸 사람에 대한 메시지 계층 인증을 위한 요구 사항(예: XML 암호화)을 정의합니다. 값이 지정되지 않은 경우에는 기본값인 afterContent로 지정됩니다.

    다음의 메시지 보호 정책의 결과로 SOAP 메시지 보안 공급자가 수행하는 작업에 대한 자세한 내용은 요청 및 응답 정책 구성 작업을 참조하십시오.

  10. 공급자 구성 만들기 페이지의 응답 정책 섹션에서 필요한 경우 다음과 같은 선택적 값을 입력합니다.

    이 등록 정보는 선택적이지만 지정하지 않을 경우 응답 메시지에 인증이 적용되지 않습니다.

    • 인증 소스sender, content 또는 Null(빈 옵션)을 선택하여 응답 메시지에 적용할 메시지 계층 보낸 사람 인증을 위한 요구 사항(예: 사용자 이름 비밀번호)이나 내용 인증을 위한 요구 사항(예: 디지털 서명)을 정의합니다. Null을 지정한 경우 응답의 소스 인증이 필요하지 않습니다.

    • 인증 수신자beforeContent 또는 afterContent를 선택하여 응답 메시지 수신자의 보낸 사람에 대한 메시지 계층 인증을 위한 요구 사항(예: XML 암호화)을 정의합니다. 값이 지정되지 않은 경우에는 기본값인 afterContent로 지정됩니다.

    다음의 메시지 보호 정책의 결과로 SOAP 메시지 보안 공급자가 수행하는 작업에 대한 자세한 내용은 요청 및 응답 정책 구성 작업을 참조하십시오.

  11. 등록 정보 추가 버튼을 눌러 다른 등록 정보를 추가합니다.

    Application Server와 함께 제공된 공급자는 아래 나열된 등록 정보를 지원합니다. 다른 공급자를 사용할 경우 등록 정보와 유효한 값에 대한 자세한 내용은 해당 설명서를 참조하십시오.

    • server.config – 서버 구성 정보를 포함하는 XML 파일의 디렉토리와 파일 이름입니다. 예를 들어, domain-dir/config/wss-server-config.xml입니다.

  12. 이 구성을 저장하려면 확인을 누르거나 저장하지 않고 중지하려면 취소를 누릅니다.

해당 asadmin 명령

create-message-security-provider

Procedure메시지 보안 구성을 삭제하는 방법

  1. 관리 콘솔 트리 구성 요소에서 구성 노드를 확장합니다.

  2. 구성할 인스턴스를 선택합니다.

    • 특정 인스턴스를 구성하려면 해당 인스턴스 구성 노드를 선택합니다. 예를 들어, 기본 인스턴스 server에 대해 server-config 노드를 선택합니다.

    • 모든 인스턴스의 기본 설정을 구성하려면 default-config 노드를 선택합니다.

  3. 보안 노드를 확장합니다.

  4. 메시지 보안 노드를 선택합니다.

  5. 삭제할 메시지 보안 구성 왼쪽에 있는 확인란을 선택합니다.

  6. 삭제를 누릅니다.

Procedure메시지 보안 공급자를 삭제하는 방법

  1. 관리 콘솔 트리 구성 요소에서 구성 노드를 확장합니다.

  2. 구성할 인스턴스를 선택합니다.

    • 특정 인스턴스를 구성하려면 해당 인스턴스 구성 노드를 선택합니다. 예를 들어, 기본 인스턴스 server에 대해 server-config 노드를 선택합니다.

    • 모든 인스턴스의 기본 설정을 구성하려면 default-config 노드를 선택합니다.

  3. 보안 노드를 확장합니다.

  4. 메시지 보안 노드를 확장합니다.

  5. SOAP 노드를 확장합니다.

  6. 공급자 페이지를 선택합니다.

  7. 삭제할 공급자 구성 왼쪽에 있는 확인란을 선택합니다.

  8. 삭제를 누릅니다.

해당 asadmin 명령

delete-message-security-provider

Procedure응용 프로그램 클라이언트를 위한 메시지 보안을 활성화하는 방법

클라이언트 공급자의 메시지 보호 정책이 클라이언트 공급자가 상호 작용하는 서버측 공급자의 메시지 보호 정책과 동등하도록 구성해야 합니다. Application Server가 설치될 때 구성되었지만 활성화되지 않은 공급자의 경우 이미 이 상태로 되어 있습니다.

클라이언트 응용 프로그램에 대한 메시지 보안을 활성화하려면 응용 프로그램 클라이언트 컨테이너의 Application Server 관련 구성을 수정합니다.

  1. 클라이언트 컨테이너 설명자를 사용하는 클라이언트 응용 프로그램을 중지합니다.

  2. 텍스트 편집기에서 domain-dir/config/sun-acc.xml에 위치한 응용 프로그램 클라이언트 컨테이너를 엽니다.

  3. 파일에 default-client-provider 요소를 추가하여 응용 프로그램 클라이언트의 기본 클라이언트 공급자를 활성화합니다.

    클라이언트 응용 프로그램의 메시지 보안을 활성화하기 위한 코드가 있는 곳을 표시하기 위해 다른 코드를 제공합니다. 다른 코드는 설치에 따라 약간씩 달라집니다. 이것을 변경하지 마십시오.


    <client-container>
      <target-server name="your-host" address="your-host"
          port="your-port"/>
      <log-service file="" level="WARNING"/>
      <message-security-config auth-layer="SOAP"
          default-client-provider="ClientProvider">
        <provider-config
            class-name="com.sun.enterprise.security.jauth.ClientAuthModule"
            provider-id="ClientProvider" provider-type="client">
          <request-policy auth-source="sender"/>
          <response-policy/>
            <property name="security.config"
              value="C:/Sun/AppServer/lib/appclient/wss-client-config.xml"/>
        </provider-config>
      </message-security-config>
    </client-container>

    클라이언트 컨테이너에 구성된 메시지 보안 공급자에는 개인 키와 트러스트된 인증서에 대한 액세스가 필요합니다. 응용 프로그램 클라이언트 시작 스크립트에 다음 시스템 등록 정보에 대한 해당 값을 정의하여 이를 수행합니다.

    -Djavax.net.ssl.keyStore
    -Djavax.net.ssl.trustStore

응용 프로그램 클라이언트 구성에 대한 요청 및 응답 정책 설정

요청 및 응답 정책에서는 인증 공급자가 수행한 요청 및 응답 처리와 연관된 인증 정책 요구 사항을 정의합니다. 정책은 메시지 수신자가 해당 서명을 확인하기 전에 메시지를 해독해야 함을 의미하는 내용이 표시된 이후에 암호화가 발생하는 요구 사항과 같은 메시지 보낸 사람 순서에 표시됩니다.

메시지 보안을 달성하려면 서버와 클라이언트 모두에서 요청 및 응답 정책을 활성화해야 합니다. 클라이언트와 서버에 정책을 구성할 경우 응용 프로그램 수준 메시지 바인딩에서 요청 응답 보호를 위해 서버 정책과 클라이언트 정책이 일치해야 합니다.

응용 프로그램 클라이언트 구성에 대한 요청 정책을 설정하려면 응용 프로그램 클라이언트를 위한 메시지 보안을 활성화하는 방법에 설명된 대로 응용 프로그램 클라이언트 컨테이너에 대한 Application Server 관련 구성을 수정합니다. 응용 프로그램 클라이언트 구성 파일에 다음과 같이 request-policyresponse-policy를 추가하여 요청 정책을 설정합니다.

참조를 위해 다른 코드가 제공됩니다. 다른 코드는 설치에 따라 약간씩 달라집니다. 이것을 변경하지 마십시오.


<client-container>
  <target-server name="your-host" address="your-host"
      port="your-port"/>
  <log-service file="" level="WARNING"/>
  <message-security-config auth-layer="SOAP"
      default-client-provider="ClientProvider">
    <provider-config
        class-name="com.sun.enterprise.security.jauth.ClientAuthModule"
        provider-id="ClientProvider" provider-type="client">
      <request-policy auth-source="sender | content"
        auth-recipient="after-content | before-content"/>
      <response-policy auth-source="sender | content"
        auth-recipient="after-content | before-content"/>
       <property name="security.config"
           value="install-dir/lib/appclient/wss-client-config.xml"/>
    </provider-config>
  </message-security-config>
</client-container>

auth-source의 유효한 값에 sendercontent가 포함됩니다. auth-recipient의 유효한 값에 before-contentafter-content가 포함됩니다. 이 값이 다양하게 결합된 결과를 설명하는 표는 요청 및 응답 정책 구성 작업에 있습니다.

요청이나 응답 정책을 지정하지 않으려면 예를 들어 다음 요소를 비워둡니다.


<response-policy/>

추가 정보