웹 서비스 보안 권한 모델
서블릿 또는 EJB(Enterprise JavaBeans) 중 하나로 구현된 제공자 애플리케이션은 웹 서비스를 사용할 수 있으며 웹 서비스 보안으로 보호될 수 있습니다. Java EE(Java Platform, Enterprise Edition) 역할 기반 권한은 서블릿 또는 EJB로 구현되는 웹 서비스 제공자 애플리케이션에 대한 액세스를 제어하는 데 사용할 수 있습니다. 서블릿 및 EJB 구현의 보안 역할은 동일한 방법으로 구성되지만 서비스에 대한 액세스는 구현에 따라 다릅니다.
- 보안 토큰이 SOAP 요청의 HTTP 헤더에서 전달됩니다.
- 웹 컨테이너는 보안 토큰을 인증한 후 사용자의 역할 기반 권한을 부여합니다.
- 사용자 권한이 부여되면 웹 컨테이너는 인바운드 메시지로 웹 서비스 엔진을 호출합니다.
다음 그림은 서블릿에 대한 역할 기반 권한 부여 프로세스의 각 단계를 설명합니다.

- 사용자 ID의 보안 토큰이 SOAP 요청의 보안 헤더에서 전달됩니다.
- 웹 서비스 보안이 토큰을 인증합니다.
- 호출자 구성으로 웹 서비스 보안이 현재 스레드에서 인증된 토큰의 ID를 설정합니다.
- 웹 서비스 엔진에서 엔드포인트 호출 시, EJB 컨테이너는 현재 스레드에서 ID에 대한 역할 기반 권한을 부여합니다.
다음 그림은 EJB에 대한 역할 기반 권한 부여 프로세스의 각 단계를 설명합니다.

웹 서비스 제공자가 서블릿으로 구현된 경우, 웹 서비스 보안이 SOAP 요청의 보안 헤더에서 전달하는 토큰은 서비스 액세스를 위한 역할 기반 권한을 부여하는 데 사용될 수 없습니다.
웹 서비스 제공자가 EJB로 구현된 경우, 웹 서비스 보안이 SOAP 요청의 보안 헤더에서 전달하는 토큰은 활성 웹 서비스 보안 제한조건이 있는 경우 서비스 액세스를 위해 EJB 컨테이너에서 역할 기반 권한을 부여하는 데만 사용될 수 있습니다.
EJB로 구현된 웹 서비스 제공자는 웹 컨테이너를 사용하여 역할 기반 권한을 부여할 수도 있습니다. 이를 수행하기 위해 그림 웹 서비스 보안의 EJB 권한 부여의 라우터 서블릿은 HTTP 기본 인증으로 보호됩니다. 이를 수행하고 나면 그림 웹 서비스 보안의 서블릿 권한 부여와 같이 프로세스가 진행됩니다.
인바운드 토큰의 활성 웹 서비스 보안 제한조건에서 호출자 구성이 있는 경우 해당 토큰은 현재 스레드의 보안 컨텍스트에서 runAs ID로 설정됩니다. 보호된 제공자 애플리케이션은 해당 ID에 따라 권한 부여 의사결정을 스스로 수행할 수 있습니다. 서블릿 및 EJB 모두에 적용됩니다.