메시지 레벨에서 WSS API를 사용하여 웹 서비스 애플리케이션 보안
표준 및 프로파일은 웹 서비스 환경에서 교환되는 메시지에 대한 보호를 제공하는 방법을 처리합니다. 웹 서비스 보안은 XML 디지털 서명을 통해 SOAP 메시지 보안, XML 암호화를 통한 기밀성, 보안 토큰을 통한 신임 정보 전파에 기반하는 메시지 레벨 표준입니다.
시작하기 전에
웹 서비스를 보안하려면 인증, 권한 부여, 개인정보 보호, 신뢰, 무결성, 기밀성, 보안 통신 채널, 위임, 다양한 애플리케이션 및 비즈니스 토폴로지에서의 감사를 포함하여 포괄적인 보안 요구사항 세트를 고려해야 합니다. 오늘날 비즈니스 환경에서 보안 모델의 가장 중요한 요구사항 중 하나는, 이기종 환경에서 이전에는 호환되지 않는 보안 기술 간에 상호 운용하는 기능입니다. 전체 웹 서비스 보안 프로토콜 스택 및 기술 로드맵은 웹 서비스 로드맵에서 설명합니다.
이 태스크 정보
OASIS(Organization for the Advancement of Structured Information Standards) 웹 서비스 보안: SOAP 메시지 보안 버전 1.1 스펙은 모든 웹 서비스에 대한 기본 메시징 전송입니다. SOAP 1.2는 보안 웹 서비스를 빌드할 수 있도록 기존 SOAP 1.1 확장에 확장을 추가합니다. SWA(SOAP with Attachments) 프로파일 대신, MTOM(Message Transmission Optimization Mechanism) 및 XOP(XML-binary Optimized Packaging)를 사용하여 SOAP 메시지에 첨부를 추가할 수 있습니다.
OASIS 웹 서비스 보안(WS-Security) 버전 1.1 스펙은 다양한 보안 모델을 수용하기 위해 기타 웹 서비스 및 애플리케이션 특정 프로토콜과 함께 사용하는 빌딩 블록입니다. WebSphere® Application Server의 웹 서비스 보안은 OASIS 웹 서비스 보안 버전 1.1 스펙 및 프로파일에 포함된 특정 표준에 기반합니다.
버전 1.1 스펙은 메시지의 무결성 및 기밀성을 보호하는 추가 기능을 정의합니다. 또한 버전 1.1 스펙은 보안 관련 요청을 메시지와 연관시키는 메커니즘을 제공합니다. WebSphere Application Server에서 지원하는 웹 서비스 보안 버전 1.1 표준은 서명 확인, 암호화된 헤더 요소, 사용자 이름 토큰 프로파일, X.509 토큰 프로파일을 포함합니다. 사용자 이름 토큰 프로파일 및 X.509 토큰 프로파일이 버전 1.1 프로파일로 업데이트되었습니다. X.509 인증서 토큰 프로파일의 경우 하나의 새로운 보안 토큰 참조 유형은 지문 참조로, 바인딩에 지정되어 있습니다.
XML 스키마, 파트 1 및 파트 2는 스키마를 XML 문서로 구성하는 방법을 설명하는 스펙입니다. 두 개의 WS-Security 버전 1.0 스키마를 버전 1.1 스펙으로 업데이트하면 새 버전 1.1 스키마가 추가됩니다. 버전 1.1 스키마는 버전 1.0 스키마를 대체하지 않지만, 버전 1.1 네임스페이스 내 기능의 추가 세트를 정의하여 여기에 대신 빌드한다는 점에 주의하십시오.
- 관리 콘솔을 사용하여 정책 세트를 구성하십시오.
이 방법은 정책 세트에 정의된 부트스트랩 정책을 사용합니다. 서비스 정의 방법에 대한 정책 세트 또는 어설션을 사용하여 웹 서비스에 대한 보안 구성을 단순화할 수 있습니다. 관리 콘솔을 사용하여 사용자 정의 정책 세트를 작성, 수정, 삭제할 수 있습니다. 기본 정책 세트의 세트를 사용할 수 있습니다.
예를 들어, 웹 서비스 신뢰(WS-Trust) SOAP 메시지를 보안하도록 정책 세트에서 부트스트랩 정책을 정의할 수 있습니다.
또한 관리 콘솔을 사용하여 정책 세트 관리 태스크를 수행하고 암호화, 서명, 서명 정보, 보안 토큰을 사용하여 웹 서비스를 보안할 수 있습니다.
다음 단계의 상위 레벨 단계에서는 관리 콘솔을 통해 WS-Security를 사용하고 SOAP 메시지를 보안하도록 WebSphere Application Server를 구성하는 방법에 대해 설명합니다. 다음 단계에서 논의하는 생성기 및 이용자 태스크는 WS-Security 버전 1.0 및 1.1을 사용합니다.- 신뢰 서비스에 대한 시스템 정책 세트 또는 애플리케이션 정책 세트를 작성 및 구성합니다.
- 정책 세트를 작성 및 구성할 때 SOAP 메시지를 보안하도록 사용할 정책 유형을 정의합니다.
- 정책 세트 바인딩을 구성하십시오. 메시지 보호에 사용할 알고리즘과 토큰 유형을 설명하기 위한 대칭 또는 비대칭 바인딩 어설션을 선택하십시오.
- 어셈블리 도구를 사용하여 웹 서비스 보안 사용 애플리케이션을 어셈블하십시오.
- SOAP 메시지 컨텍스트를 구성하도록
웹 서비스 보안 API(WSS API) 사용(클라이언트 전용)
WebSphere Application Server는 새 API 프로그래밍 모델을 사용합니다. 기존 JAX-RPC 프로그래밍 모델 외에도 새 프로그래밍 모델, JAX-WS(Java™ API for XML Web Services)가 추가됩니다. JAX-WS 프로그래밍 표준은 문서 중심 메시징 모델과 맞추어 JAX-RPC(Java API for XML-based RPC) 스펙에서 정의하는 원격 프로시저 호출(RPC) 프로그래밍 모델을 대체합니다.
예를 들어, 애플리케이션은 시스템 정책 세트를 작성하고 WebSphere Application Server WSS API를 사용하여 프로그래밍 API 기반 웹 서비스 보안 대화(WS-SecureConversation)에 대한 보안 컨텍스트 토큰을 확보할 수 있습니다.
또한 관리 콘솔을 사용하여 WSS API가 웹 서비스를 보안하기 위해 수행하는 암호화, 서명, 토큰 구성 태스크를 수행할 수 있습니다.
다음의 상위 레벨 단계에서는 WSS API를 사용하여 WS-Security를 사용하고 SOAP 메시지를 보안하도록 WebSphere Application Server를 구성하는 방법에 대해 설명합니다. 다음 단계에서 논의하는 생성기 및 이용자 태스크는 WS-Security 버전 1.0 및 1.1을 사용합니다.
- WSSSignature API를 사용하여 요청 생성기(클라이언트 측) 바인딩에 대한 서명 정보를
구성합니다.
생성기 측에서 요청의 메시지 보호에 서로 다른 메시지 파트를 지정할 수 있습니다. 필요한 기본 파트는 BODY, ADDRESSING_HEADERS, TIMESTAMP입니다.
또한 WSSSignature API는 메시지 보호에 대한 서명과 함께 사용할 서로 다른 알고리즘 방법을 지정합니다. 기본 서명 메소드는 RSA_SHA1입니다. 기본 정형화 메소드는 EXC_C14N입니다.
- 다이제스트 메소드 및 변환 방법을 변경하려는 경우
WSSSignPart API를 사용합니다.
서명된 기본 파트는 WSSSignature.BODY, WSSSignature.ADDRESSING_HEADERS 및 WSSSignature.TIMESTAMP입니다.
또한 WSSSignPart API는 서명된 파트를 추가하거나 변경한 경우 사용할 서로 다른 알고리즘 방법을 지정합니다. 기본 다이제스트 메소드는 SHA1입니다. 기본 변환 방법은 TRANSFORM_EXC_C14N입니다. 예를 들어, 기본값, SHA1 대신, SHA256 다이제스트 메소드를 사용하여 SOAP 메시지에 대한 서명을 생성하려는 경우 WSSSignPart API를 사용합니다.
- WSSEncryption API를 사용하여
요청 생성기 측에서 암호화 정보를 구성합니다.
생성기 측의 암호화 정보는 요청 생성기(클라이언트 측) 바인딩에 대한 발신 SOAP 메시지를 암호화하는 경우에 사용됩니다. 암호화의 기본 대상은 BODY_CONTENT 및 SIGNATURE입니다.
또한 WSSEncryption API는 메시지 기밀성을 보호하는 데 사용할 서로 다른 알고리즘 방법을 지정합니다. 기본 데이터 암호화 방법은 AES128입니다. 기본 키 암호화 방법은 KW_RSA_OAEP입니다.
- 변환 방법만
설정하려는 경우 WSSEncryptPart API를 사용하십시오.
예를 들어, 데이터 암호화 방법에서 기본값, AES128을 TRIPLE_DES로 변경하려는 경우가 이에 해당합니다.
암호화된 파트에는 알고리즘 방법이 필요하지 않습니다.
- WSS API를 사용하여 생성기 측에서 토큰을
구성하십시오.
보안 토큰의 요구사항은 토큰 유형에 따라 달라집니다. JAAS 로그인 모듈 및 JAAS 콜백 핸들러는 생성기 측에서 보안 토큰 작성을 담당합니다. 서로 다른 독립형 토큰을 요청 및 응답에서 전송할 수 있습니다. 기본 토큰은 X509Token입니다. 서명에 사용할 수 있는 다른 토큰은 DerivedKeyToken으로 웹 서비스 보안 대화(WS-SecureConversation)에서만 사용합니다.
- WSSVerification API를 사용하여 응답 이용자(클라이언트 측) 바인딩에 대한 서명을 확인합니다.
이용자 측에서 응답의 메시지 보호에 서로 다른 메시지 파트를 지정할 수 있습니다. 검증에 필요한 대상은 BODY, ADDRESSING_HEADERS, TIMESTAMP입니다.
또한 WSSVerification API는 서명 확인 및 메시지 보호에 사용할 서로 다른 알고리즘 방법을 지정합니다. 기본 서명 메소드는 RSA_SHA1입니다. 기본 정형화 메소드는 EXC_C14N입니다.
- WSSVerifyPart API를 사용하여 다이제스트 메소드 및 변환 방법을 변경합니다.
필요한 확인 파트는 WSSVerification.BODY,
WSSVerification.ADDRESSING_HEADERS, WSSVerification.TIMESTAMP입니다.
또한 WSSVerifyPart API는 검증 파트를 추가하거나 변경한 경우 사용할 서로 다른 알고리즘 방법을 지정합니다. 기본 다이제스트 메소드는 SHA1입니다. 기본 변환 방법은 TRANSFORM_EXC_C14N입니다.
- WSSDecryption API를 사용하여 응답 이용자(클라이언트 측) 바인딩에 대한 복호화 정보를
구성합니다.
이용자 측에서 복호화 정보는 수신 SOAP 메시지를 복호화하는 데 사용됩니다. 복호화의 기본 대상은 BODY_CONTENT 및 SIGNATURE입니다. 기본 키 암호화 방법은 KW_RSA_OAEP입니다.
복호화에는 알고리즘 방법이 필요하지 않습니다.
- 변환 방법만
설정하려는 경우 WSSDecryptPart API를 사용하십시오.
예를 들어, 데이터 암호화 방법에서 기본값, AES128을 TRIPLE_DES로 변경하려는 경우가 이에 해당합니다.
복호화된 파트에는 알고리즘 방법이 필요하지 않습니다.
- WSS API를 사용하여 이용자 측에서 토큰을
구성하십시오.
보안 토큰의 요구사항은 토큰 유형에 따라 달라집니다. JAAS 로그인 모듈 및 JAAS 콜백 핸들러는 이용자 측에서 보안 토큰 유효성 검증(인증)을 담당합니다. 서로 다른 독립형 토큰을 요청 또는 응답에서 전송할 수 있습니다.
WSS API는 복호화에 사용된 후보 토큰의 정보를 추가합니다. 기본 토큰은 X509Token입니다.
- WSSSignature API를 사용하여 요청 생성기(클라이언트 측) 바인딩에 대한 서명 정보를
구성합니다.
- wsadmin 관리 스크립트 도구를 사용하여 정책 세트를
구성하십시오.
이 방법을 사용하면 명령행에서 정책 세트를 작성, 관리, 삭제하거나 태스크를 자동화하는 스크립트를 작성할 수 있습니다. wsadmin 도구 및 PolicySetManagement 명령 그룹을 사용하여 기본 정책 세트를 관리하고 사용자 정의 정책 세트를 작성하고 정책을 구성하고 첨부 및 바인딩을 관리할 수 있습니다. 자세한 정보는 Information Center에서 정책 세트 스크립트 주제를 사용하십시오.
WebSphere Application Server에서 웹 서비스를 보안하려면 생성기 및 이용자 보안 제한조건을 구성해야 합니다. 여러 개의 서로 다른 구성을 지정해야 합니다. 이러한 서로 다른 구성을 지정하는 특정 시퀀스는 없지만 일부 구성은 기타 구성을 참조합니다. 예를 들어, 복호화 구성은 암호화 구성을 참조합니다.
결과
WebSphere Application Server의 이러한 상위 레벨 단계를 완료하면 암호화 및 복호화, 서명 및 서명 확인 정보, 이용자 및 생성기 토큰을 구성하도록 정책 세트를 구성하고 WSS API를 사용하여 웹 서비스를 보안합니다.