http://blog.naver.com/hyonzzang83/20036442452
WS-Security
WS-Security는 XML Encryption을 이용한 암호화, XML Signature를 이용한 데이
터 무결성 기능을 제공하는 SOAP 보안 익스텐션을 정의하고 있습니다. 또 WSSecurity는
WS-Security 헤더에 인증, 권한할당 등의 목적으로 다양한 종류의 바
이너리/XML 보안 토큰을 삽입하는 방법을 정의한 프로파일을 포함하고 있습니다.
• 유저네임 및 패스워드(옵션)의 적용 (웹 서비스 사용자가 인증 수단으로
유저네임을 전달하는 방법을 정의합니다. 유저네임에 해쉬 처리된 패스워
드를 적용할 수도 있습니다.)
• X.509 Certificate (수신자에게 퍼블릭 키를 전송하기 위해 설계된, 서명된
데이터 구조)
• Kerberos 티켓 (인증, 세션 토큰)
• Security Assertion Markup Language (SAML) 정의 (SAML에 대해서
는 뒷부분에서 셜명)
• REL 문서(REL(rights expression language) 라이센스 토큰을 WSSecurity
헤더에 삽입하고 인증 목적으로 활용)
• XCBF 문서(XML Common Biometric Format (XCBF) 언어를 이용하여
WS-Security 표준 기반 인증을 수행하는 방법을 정의)
WS-Security 프레임워크 |
WS-Policy |
WS-Trust |
WS-Privacy |
WS-SecureConversation |
WS-Federation |
WS-Authorization |
WS-Policy
웹 서비스 제공자는 서비스가 제공되기 위한 조건(또는 정책)을 정의할 수 있습니
다. WS-Policy 프레임워크는 웹 서비스 제공자가 정책을 정의하고 (Oracle Web
Services Manager와 같은) 웹 서비스 애플리케이션을 통해 처리할 수 있는 환경을
제공합니다. 정책(policy)은 하나 또는 그 이상의 정책 선언(policy assertion)을 통
해 표현됩니다. 예를 들어, 하나의 정책 선언을 통해 웹 서비스에 대한 요청이 암호
화되어야 함을 규정할 수 있습니다. 또는 정책 선언을 통해 웹 서비스가 수용할 수
있는 최대 메시지 사이즈를 정의할 수도 있습니다. WS-Policy에 정의된 내용은
WS-PolicyAttachment 스펙을 통해 다양한 웹 서비스 컴포넌트와 연계됩니다.
Web Services Trust (WS-Trust)
WS-Security만을 사용하는 메시지 교환 환경에서는, 메시지 교환에 참여하는 양자
가 보안 정보의 공유를 위해 사용되는 보안 토큰의 종류에 미리 합의하였다고 가정
됩니다. 하지만 이러한 사전 합의가 존재하지 않는 경우가 있을 수 있으며, 이러한
경우 메시지 교환 이전에 트러스트(trust) 관계가 성립되어야 합니다. SOAP/WSSecurity
기반 메시지를 교환하는 당사자 간의 트러스트는 WS-Trust 스펙을 기준
으로 성립됩니다.
WS-Trust는 보안 토큰 서비스(STS)를 이용한 보안 토큰의 호환성을 보장하고,
전송/수신자가 신뢰할 수 있는 대상을 통해 보안 토큰을 발급받을 수 있게 합니다.
예를 들어, 단순한 형태의 유저네임/패스워드 인증을 사용하는 Company A가
SAML 기반 보안 인증을 요구하는 Company B와 비즈니스를 수행하기 위해 신뢰할
수 있는 대상으로부터 SAML 정의를 요청할 수 있습니다.
WS-Privacy
WS-Policy와 WS-Trust와 결합에 의해 동작하고 개인정보 보호 정책을 논의하기 위해 사용할 수 있다.
WS-SecureConversation
다양한 보안 모델이 웹서비스 사이의 보안 정보를 교환하기 위한 표준 메커니즘을 제공하는 이 명세로 보충된다.
보안 컨텍스트 및 관련된 세션 키의 생성 및 교환을 위한 형식적인 정의를 제공한다.
WS-SecureConversation은 WS-Security와 WS-Trust를 활용하고 있습니다.
WS-SecureConversation은 커뮤니케이션 당사자 간의 보안 컨텍스트 생성 및 공유를 정의합니다. 보안 컨텍스트는 다양한 메시지 교환 환경에 수반되는 오버헤드를 절감하는 효과를 제공합니다. WS-SecureConversation은 보안 컨텍스트의 요구사항을 지원하기 위한 Secure Context Token(SCT) 엘리먼트를 정의하고 있습니다. SCT는 메시지의 서명 및 암호화를 위한 공유 비밀번호(shared secret)를사용합니다.
WS-Federation
WS-Policy, WS-Security, WS-Trust 표준을 이용할 때 다른 트러스트 도메인을 통합하는 다양한 방법이 있다. WS-Federation 명세는 연합을 이루기 위한 일련의 표준과 보안 모델을 제공한다.
WS-Federation은 아이덴티티, 속성, 인증, 권한할당 정보의 (인터넷 도메인을 통
한) 보안 배포를 지원합니다. WS-Security와 WS-Trust에 정의된 모델을 기반으
로 하는 WS-Federation은 트러스트 관계의 설정, 보안 토큰의 교환, 아이덴티티/속
성 정보 보안을 통한 개인정보 보호, 페더레이티드 사인아웃(federated sign-out)
등을 가능하게 합니다. WS-Federation은 메타데이터의 정의/전달을 위해 WSPolicy와
WS-MetadataExchange를 사용합니다
WS-Authorization
WS-Authorization는 권한 부여와 접근 정책을 위해 사용하는 정보를 관리하기 위한 표준을 제공한다. 이 표준의 일부로서 보안 토큰 내에서 요구사항을 표현하는 방법을 제공한다.
WS-ReliableMessageing
성공적인 메일 전송과 전송 실패 통보의 알림을 위한 표준프로세스를 확립한다.
WS-ReliableMessage를 경쟁 관계인 WS-Reliability 명세와는 다르다.
메시지를 보냈다면 잘 도착하였는지 메시지가 도착하지 않았다면 도착하지 않았다는 메시지, 그리고 전송을 시도 하여 전송시도 실패시의 메시지 등의 문서 메일의 확인을 할 수 있다.
확실한 보증을 위해 전송보증을 사용한다.
전송보증
- AtMostOnce 보증은 단 한 번만 전송을 시도하는 메시지를 보증한다.
- AtLeastOnce 보증은 여러 번 전송되는 메시지를 보증하며, 최소한 한번은 전송되었음을 보증한다.
- ExactlyOnce 전송 보증은 오직 한 번만 전송될 메시지를 필요로 한다.
- InOrder 보증은 메시지가 보내진 순서에 따라 전송되는 것을 보증한다.
WS-Security, WS-Policy, WS-Coordination, WS-Transaction과 동시에 사용 될 수 있다.
WS-Addressing
신뢰할수 있는 메시지를 논할 때 WS-Addressing명세를 언급한다.
메시지에서 웹 서비스 종점을 표현하는 표준 방법뿐만 아니라 다수의 추가적인 주소를 제공한다.
WS-Addressing은 메시지의 엔드-투-엔드 엔드포인트 보안을 위해 웹 서비스 엔
드포인트를 확인하는 XML 프레임워크를 제공합니다. 웹 서비스 엔드포인트(web
service endpoint)란 웹 서비스 메시지가 전달되는 리소스(애플리케이션, 프로세서
등)를 의미합니다. Oracle Web Services Manager의 경우 메트릭 상호 연계를 위해
WS-Addressing을 사용하고 있습니다.
Business Process Execution Language (WS-BPEL)
서비스 지향형 모델에서, 서비스는 스탠드얼론 애플리케이션으로 사용되지 않습니
다. 일반적으로 서비스는 보다 큰 단위의 프로세스(예: 대출 애플리케이션 프로세
스)를 이루는 구성요소로서 활용됩니다. WS-BPEL 표준은 서비스 기반으로 프로
세스들을 조합하고, 이를 다시 WSDL을 통해 정의하기 위한 표준적인 방법을 제시
하기 위한 목적에서 개발되었습니다. 통합된 BPEL 프로세스에는 (단순 서비스 호
출만을 실행하는) 단순 작업만이 포함될 수도 있고, 또는 (복잡한 변환 작업, JOIN
작업, 루프, 비동기식 호출 등의) 다단계 작업(이를 액티비티라 부릅니다)이 포함될
수도 있습니다.
Oracle BPEL Process Manager는 WS-BPEL 1.1 표준을 완벽하게 지원할 뿐 아니
라, 복잡한 프로세스의 구현에 필요한 부가적인 기능을 함께 제공하고 있습니다. 복
잡한 프로세스의 한 가지 예로, WS-BPEL 서비스를 기반으로 다양한 설정 옵션을
제공하는 수작업 태스크를 들 수 있습니다. WSDL을 이용하여 인터페이스를 공개하
는 모든 서비스가 SOAP/HTTP 바인딩을 사용하는 것은 아닙니다. Apache Web
Service Invocation Framework(WSIF)를 이용하면, Oracle BPEL PM과 Oracle
ESB를 확장하여 J2CA, SOAP, EJB, POJO 등의 바인딩을 지원하는 것이 가능합니
다. Oracle BPEL PM과 Oracle ESB 간의 커뮤니케이션은 트랜잭션 기반으로 수행
됩니다. 두 애플리케이션은 WSIF를 이용하여 동일한 글로벌 트랜잭션을 공유하며,
따라서 미션 크리티컬 애플리케이션의 긴밀한 통합이 가능합니다.
WS-Attachments
첨부를 통해 데이터를 전송하는 SOAP 메시지는 첨부 데이터를 부호화하기 위한 표준을 필요로 한다.
WS-Attachments 명세는 주 메시지(기본적인 SOAP메세지)와 첨부를 표현하는 2차 메시지 부분으로 구성된 복합 SOAP 구조를 소개한다. 주 메시지가 표준 href애트리뷰트를 사용하는 2차 메시지를 참조하고, 2차 메시지를 참조하는 메커니즘을 제공한다.
그리고 WS-Attachments는 첨부로 DIME형식을 사용한다.
결론적으로 DIME와 WS-Attachments는 SOAP메시지로 첨부를 패키징하는 단순하고 효율적인 솔루션을 형성합니다. 이것은 SOAP메시지 안에 JPEG이미지, 디지털 사인 문서, 두 번째 SOAP메시지, 그리고 심지어 메인 SOAP메시지 안에 다른 DIME패키지와 같은 어떠한 데이터의 포맷도 포함할 수 있는 능력을 제공합니다. 이것은 또한 패키지 안에 SOAP메시지 안에 첨부된 데이터를 참조하는 메커니즘을 정의하고 있습니다. 다양한 웹 서비스 툴킷들은 DIME와 WS-Attachment를 지원하며, 그리고 미래에는 더 잘 구현된 것을 기대해 볼 수 있을 겁니다. SOAP메시지에 첨부를 포함한다는 생각은 웹 서비스와 어느 플랫폼에서의 웹 서비스 소비자에게든 표준적인 특징이 될 것이다.
WS–Messaging
WS-Eventing
Notification과 Eventing 서비스를 지원하기 위한 WS-Eventing
WS-Enumeration
기존의 soap에서 사용한 단순한 request 모델은 대용량의 데이터를 전송하기 부적합하므로,
Session의 추상화를 이용하여 SOAP에서 Network Enumeration 형태로 데이터를 전송하는 기법.
WS-Transfer
Web Service의 Resource 를 좀더 잘 관리하기 위한 Spec으로 Resource의 생성,변경,변환 등을 관리
WS-Atomic Transaction
기존의 ACID 속성을 가진 Transaction을 지원하기 위한 방법
WS-Coordination
Long Running Transaction과 Workflow를 지원하기 위한 방법으로 Orchestration에 해당한다.
WS-BusinessActivity
Coordination의 확장된 개념으로 Web Service의 참가자를 관리하기 위한 프로토콜로, Choreography를 잘 지원하기 위한 Spec이다.