서비스 프로그래밍 인터페이스(SPI)
웹 서비스 보안 서비스 프로그래밍 인터페이스(WSS SPI)는 웹 서비스 보안 보안을 위한 프로그래밍 인터페이스를 제공합니다.
웹 서비스 보안 스펙은 메시지 컨텐츠 무결성 및 기밀성을 구현하기 위한 보안 웹 서비스 빌드를 위한 유연한 프레임워크를 제공합니다. 이 스펙은 특정 토큰 형식을 정의하지 않지만, 대신 다양한 보안 토큰 형식 및 해당 토큰 사용을 위한 시맨틱을 정의하는 별도의 프로파일 문서를 연관시킵니다. 웹 서비스 보안 서비스 프로그래밍 모델은 새 토큰 형식 및 메시지 보호를 위해 필요한 키를 얻기 위한 메소드와 통합하기 위한 확정점을 제공하여 유연한 프레임워크를 지원합니다. 웹 서비스 보안은 이 프로그래밍 모델을 사용하여 표준 X.509 토큰 프로파일, Username 토큰 프로파일, Kerberos 토큰 프로파일을 위한 지원을 구현합니다. 프로그래밍 모델은 또한 LTPA 보안 토큰 및 새로운 보안 토큰 유형에 대한 지원을 구현하는 데도 사용됩니다.
웹 서비스 보안 런타임 토큰 생성 및 토큰 이용 서비스 프로그래밍 인터페이스(SPI)는 동일한 보안 토큰 인터페이스 및 JAAS 로그인 모듈 구현이 WSS API 및 SPI 모두에 대해 사용될 수 있도록 재설계되었습니다. 서비스 제공자를 위한 WSS SPI가 보안 토큰 유형을 확장하며 서명, 서명 검증, 암호화 및 복호화를 위한 키 및 파생 키를 제공합니다.
웹 서비스 보안 서비스 프로그래밍 모델은 사용자 정의 보안 토큰을 처리하고 서명 및 암호화에서 사용자 정의 토큰을 사용하고 암호화 및 서명 키를 검색하는 메커니즘을 제공합니다. JAX-RPC 런타임 및 JAX-WS 런타임을 위한 웹 서비스 보안 서비스 프로그래밍 인터페이스는 유사하지만 같지는 않습니다.
JAX-RPC 런타임
- Token Generator, KeyLocator 및 Callback Handler
- TokenGenerator 클래스는 보안 토큰을 XML 요소로 형식화할 책임을 갖습니다. 이 클래스는 TokenGeneratorConfig 오브젝트에서 지정되는 CallbackHandler 클래스를 호출하는데, 이것은 보안 토큰 입력 데이터를 얻은 후 결과 보안 토큰을 Subject 오브젝트 개인용 신임 정보에 저장합니다.
- Token Consumer, KeyLocator 및 JAAS LoginModule
- KeyLocator 클래스는 KeyStoreConfig 및 KeyLocatorConfig 구성에 의해 지정되는 키 저장소의 SOAP 메시지 요소의 서명 및 암호화를 위한 필수 키를 확보할 책임을 갖습니다. TokenConsumer 클래스는 XML 보안 토큰 표시로부터 토큰 데이터를 추출하고 이를 JAAS LoginModule을 사용하여 JAAS Subject에 저장합니다. 지정된 KeyLocator 클래스가 호출되어 디지털 서명 검증 및 SOAP 메시지 요소 복호화를 위해 필요한 키를 찾습니다.
JAX-WS 런타임
JAX-WS 런타임을 위한 플러그인 프로그래밍 인터페이스는 인바운드 및 아웃바운드 SOAP 메시지 처리 둘 다를 위해 JAAS 프로그래밍 모델을 기반으로 합니다. JAAS LoginModule과 CallbackHandler가 SOAP 메시지의 보안 토큰 처리를 책임집니다. Login Module과 Callback Handler 모두가 토큰을 검색 및 생성하며 런타임에서 SecurityToken 오브젝트를 저장합니다. 이들이 TokenGenerator, TokenConsumer, KeyLocator 인터페이스의 기능을 대체합니다.
프로그래밍 모델의 차이로 인해, 모든 WebSphere® Application Server 또는 웹 서비스 보안 버전 6.1 런타임의 사용자 정의 SPI 구현은 버전 6.1 웹 서비스용 기능팩을 갖는 웹 서비스 보안 런타임 또는 버전 7.0 이상 웹 서비스 보안 런타임에서 실행하도록 지원되지 않습니다. 그러나, 웹 서비스 보안 버전 6.1 런타임은 버전 6.1 웹 서비스용 기능팩과 동시에 지원되는데, 이는 버전 6.1 SPI 구현이 여전히 원래 런타임을 통해 지원됨을 의미합니다. 새 웹 서비스 보안 런타임을 사용하기 전에, SPI를 사용할 수 있기 전에 버전 6.1 DOM 기반 SPI를 웹 서비스용 기능팩의 AXIOM 기반 SPI로 재프로그램하기 위한 코드 마이그레이션이 필요합니다.