보안 속성 전파

WebSphere® Application Server보안 속성 전파를 사용하여 하나의 서버에서 해당 구성 내 다른 서버로 보안 속성(인증된 Subject 컨텐츠 및 보안 컨텍스트 정보)을 전송할 수 있습니다. WebSphere Application Server는 정적 속성을 조회하는 엔터프라이즈 사용자 레지스트리 또는 정적 속성이나 동적 속성을 조회할 수 있는 사용자 정의 로그인 모듈에서 이러한 보안 속성을 가져올 수 있습니다. 본질적으로 사용자 정의할 수 있는 동적 보안 속성은 연결에 사용할 인증 강도, 원래 호출자의 ID, 원래 호출자의 위치, 원래 호출자의 IP 주소 등을 포함할 수 있습니다.

보안 속성 전파는 주제에 포함된 오브젝트의 Java™ 직렬화를 사용하여 전파 서비스를 제공합니다. 그러나 Java 코드는 이러한 오브젝트를 직렬화 및 직렬화 해제할 수 있어야 합니다. Java 프로그래밍 언어는 Java 코드의 오브젝트 직렬화 방법에 대한 규칙을 지정합니다. 서로 다른 플랫폼 및 소프트웨어 버전을 처리할 때 문제가 발생할 수 있으므로 WebSphere Application Server는 사용자 정의 직렬화 기능을 사용 가능하게 하는 토큰 프레임워크도 제공합니다. 토큰 프레임워크는 토큰의 고유성을 식별할 수 있다는 장점이 있습니다. 이 고유성은 주제의 캐시 방법과 토큰의 목적을 결정합니다. 토큰 프레임워크는 WebSphere Application Server 런타임을 사용하여 토큰의 전파 방법을 결정할 수 있는 네 가지 마커 토큰 인터페이스를 정의합니다.

중요사항: 이 프레임워크에 사용된 사용자 정의 토큰은 권한이나 인증을 위해 WebSphere Application Server에 사용되지 않습니다. 프레임워크는 이러한 토큰이 특정 방식으로 전파되도록 WebSphere Application Server에 알리는 방법으로 사용됩니다. WebSphere Application Server는 전파 세부사항을 처리하지만 사용자 정의 토큰의 직렬화 또는 직렬화 해제는 처리하지 않습니다. 이러한 사용자 정의 토큰의 직렬화 및 직렬화 해제는 구현을 통해 수행되고 사용자 정의 로그인 모듈에 의해 처리됩니다.

WebSphere Application Server 버전 6.0 이상에서는 Java EE(Java Platform, Enterprise Edition) 애플리케이션에 대해 액세스 제어를 수행하도록 사용자 정의 JACC(Java Authorization Contract for Container) 제공자를 구성할 수 있습니다. 사용자 정의 JACC 제공자는 액세스 제어 결정을 내릴 때 호출자 JAAS 주제에서 사용자 정의 보안 속성을 탐색할 수 있습니다.

요청을 인증할 때는 로그인 모듈에서 이 요청이 초기 로그인 또는 전파 로그인인지 여부를 판별합니다. 초기 로그인은 사용자 정보(보통 사용자 ID 및 비밀번호)를 인증한 후 원격 사용자 레지스트리 API(application programming interface)를 호출하여 사용자 액세스 권한을 표시하는 보안 속성을 찾는 프로세스입니다. 전파 로그인은 사용자 정보(일반적으로 LTPA(Lightweight Third Party Authentication) 토큰)의 유효성을 검증한 다음 WebSphere Application Server에 알려진 사용자 정의 오브젝트와 토큰 프레임워크 오브젝트를 구성하는 일련의 토큰을 직렬화 해제하는 프로세스입니다.

다음과 같은 마커 토큰이 프레임워크에 사용됩니다.
권한 토큰
권한 토큰에는 전파된 권한 관련 보안 속성의 대부분이 들어 있습니다. 기본 권한 토큰은 Java EE(Java Platform, Enterprise Edition) 권한을 결정하기 위해 WebSphere Application Server 권한 엔진에 사용됩니다. 서비스 제공자는 사용자 정의 권한 토큰 구현을 사용하여 다른 토큰의 데이터를 분리하고 사용자 정의 직렬화/직렬화 해제를 수행하며 적절한 시기에 토큰의 정보를 사용하여 사용자 정의 권한을 결정할 수 있습니다. 이 토큰 유형의 사용 및 구현 방법에 대한 자세한 정보는 보안 속성을 전파하기 위해 기본 전파 토큰 사용보안 속성 전파에 대한 사용자 정의 전파 토큰 구현의 내용을 참조하십시오.
싱글 사인온(SSO) 토큰
주제에 추가된 사용자 정의 SingleSignonToken 토큰은 자동으로 응답에 HTTP 쿠키로 추가되며 웹 브라우저로 다시 전송되는 속성을 포함합니다. 토큰 인터페이스 getName 메소드는 getVersion 메소드와 함께 쿠키 이름을 정의합니다. WebSphere Application Server는 기본 SingleSignonToken 토큰을 LtpaToken 이름과 버전 2로 정의합니다. 추가된 쿠키 이름은 LtpaToken2입니다. 중요한 정보, 기밀 정보 또는 암호화되지 않은 데이터를 응답 쿠키에 추가하지 마십시오.

언제든지 쿠키를 사용하고 SSL(Secure Sockets Layer) 프로토콜을 사용하여 요청을 보호하는 것이 좋습니다. 웹 사용자는 SSO 토큰을 사용하여 한 번의 인증으로 여러 WebSphere Application Server의 웹 자원에 액세스할 수 있습니다. 사용자 정의 SSO 토큰은 사용자 정의 처리를 싱글 사인온 시나리오에 추가하여 이 기능을 확장합니다. SSO 토큰에 대한 자세한 정보는 웹 사용자 인증을 최소화하기 위해 싱글 사인온 구현의 내용을 참조하십시오. 이 토큰 유형의 사용 및 구현 방법에 대한 자세한 정보는 보안 속성을 전파하기 위해 기본 또는 사용자 정의 토큰 팩토리로 기본 싱글 사인온 토큰 사용보안 속성 전파를 위해 사용자 정의 단일 싱글 사인온 토큰 구현의 내용을 참조하십시오.

전파 토큰
전파 토큰은 인증된 사용자와 연관되지 않으므로 주제에 저장되지 않습니다. 대신, 전파 토큰은 스레드에 저장되며 호출을 따릅니다. 요청이 다른 서버에 아웃바운드로 전송되는 경우 요청과 함께 해당 스레드의 전파 토큰이 전송되고 이 토큰은 대상 서버에서 실행됩니다. 스레드에 저장된 속성은 Java EE(Java Platform, Enterprise Edition) RunAs 사용자 전환과 관계없이 전파됩니다.

기본 전파 토큰은 모든 사용자 전환과 호스트 전환을 모니터 및 로그합니다. WSSecurityHelper API(application programming interface)를 사용하여 기본 전파 토큰에 정보를 추가할 수 있습니다. 전파 토큰의 사용자 정의 구현을 검색하고 설정하려면 WSSecurityPropagationHelper 클래스를 사용할 수 있습니다. 이 토큰 유형의 사용 및 구현 방법에 대한 자세한 정보는 보안 속성을 전파하기 위해 기본 전파 토큰 사용보안 속성 전파에 대한 사용자 정의 전파 토큰 구현의 내용을 참조하십시오.

인증 토큰
인증 토큰은 다운스트림 서버로 흐르고 사용자의 ID를 포함합니다. 이 토큰 유형은 이전 버전에서 LTPA(Lightweight Third Party Authentication) 토큰과 같은 기능으로 사용됩니다. 이 토큰 유형은 보통, 내부 WebSphere Application Server용으로 예약되어 있지만 이 토큰은 주제에 추가할 수 있으며 토큰 인터페이스의 getBytes 메소드를 사용하여 전파됩니다.

사용자 정의 인증 토큰은 주제에 추가한 서비스 제공자용으로만 사용됩니다. WebSphere Application Server 인증에 사용되는 기본 인증 토큰이 있으므로 WebSphere Application Server는 이 토큰 유형을 인증 목적으로 사용하지 않습니다. 이 토큰 유형은 사용자 정의 데이터가 토큰을 사용하여 사용자 정의 인증을 결정하는 방법을 식별하기 위해 서비스 제공자에 사용할 수 있습니다. 이 토큰 유형의 사용 및 구현 방법에 대한 자세한 정보는 기본 인증 토큰보안 속성 전파를 위해 사용자 정의 인증 토큰 구현의 내용을 참조하십시오.

Kerberos 인증 토큰
Kerberos 인증 토큰에는 Kerberos 프린시펄 이름, GSSCredential 및 Kerberos 위임 신임 정보 같은 Kerberos 신임 정보가 있습니다. 이 토큰은 다운스트림 서버로 전파됩니다. 이 토큰 유형은 보통, 내부 WebSphere Application Server용으로 예약되어 있지만, 이 토큰 유형에 GSSCredential이 포함되어 있으면 getGSSCredential 메소드를 사용하여 GSSCredential을 추출할 수 있습니다. 그런 다음, 주제에 배치하여 애플리케이션에 사용할 수 있습니다. 이 토큰은 SPNEGO 웹 또는 Kerberos 인증을 통해 WebSphere Application Server를 인증하는 경우 작성됩니다.

수평 전파 대 다운스트림 전파

WebSphere Application Server에서는 웹 요청에 대해 싱글 사인온을 사용하는 수평 전파와, RMI/IIOP(Remote Method Invocation over the Internet Inter-ORB Protocol)를 사용하여 엔터프라이즈 Bean에 액세스하는 다운스트림 전파를 사용할 수 있습니다.

수평 전파

수평 전파에서 보안 속성은 프론트 엔드 서버 간에 전파됩니다. 직렬화된 보안 속성(주제 내용 및 전파 토큰)에는 정적 속성과 동적 속성이 포함될 수 있습니다. 싱글 사인온(SSO) 토큰은 수평 전파에 필요한 추가 시스템 특정 정보를 저장합니다. SSO 토큰에 포함된 정보는 원래 서버가 있는 위치와 해당 서버와 통신하는 방법을 수신 서버에 알려줍니다. 또한 SSO 토큰에는 직렬화된 속성을 찾기 위한 키도 있습니다. 수평 전파를 사용하려면 싱글 사인온 토큰 및 웹 인바운드 보안 속성 전파 기능을 구성해야 합니다. 관리 콘솔에서 두 기능을 모두 구성할 수 있습니다.

프론트 엔드 서버가 동일 DRS(data replication service) 복제 도메인에 구성되어 있으면, 애플리케이션 서버는 자동으로 동일 도메인의 모든 서버에 직렬화된 정보를 전파합니다. 그림 1에서, 애플리케이션 1은 서버 1 및 서버 2에서 배치되고 두 서버는 모두 동일 DRS 복제 도메인의 멤버입니다. 요청이 서버 2의 애플리케이션 1에서 시작되고 서버 2의 애플리케이션 2로 방향이 재지정된 경우, 원래 로그인 속성은 추가 원격 요청 없이 서버 2에서 발견됩니다.

그러나 요청이 서버 1이나 서버 2의 애플리케이션 1에서 시작하지만 서버 1이나 서버 2의 애플리케이션 2로 요청 방향이 재정될 경우, 동일 복제 도메인에 서버가 구성되어 있지 않으므로 직렬화된 정보는 DRS 캐시에서 발견되지 않습니다. 결과적으로, 원격 JMX(Java Management Extensions) 요청은 애플리케이션이 원래 로그인 정보를 사용할 수 있도록 직렬화된 정보를 확보하기 위해 애플리케이션 1을 호스트하는 개시 서버로 다시 전송됩니다. 개시 서버로의 단일 JMX 원격 콜백을 사용하여 직렬화된 정보를 확보하면 다음과 같은 이점을 얻을 수 있습니다.
  • 원래 서버에서 로그인 정보를 검색하는 기능을 얻을 수 있습니다.
  • 애플리케이션 서버는 직렬화된 정보에서 주제를 다시 생성할 수 없으므로 원격 사용자 레지스트리 호출을 수행하지 않아도 됩니다. 이 기능이 없으면 애플리케이션 서버는 5, 6가지 개별 원격 호출을 수행할 수 있습니다.
그림 1. 수평 전파수평 전파

수평 전파에 대한 성능 영향

DRS 또는 JMX 원격 호출에 대한 성능상의 영향은 환경에 따라 다릅니다. DRS 또는 JMX 원격 호출은 초기 로그인 속성에 사용됩니다. 수평 전파를 사용하면 많은 원격 사용자 레지스트리 호출로 애플리케이션에 대해 가장 큰 성능 문제점을 야기하는 경우 이 호출이 줄어듭니다. 그러나 이러한 오브젝트의 직렬화 해제는 성능 저하를 야기할 수도 있습니다. 그러나 이러한 저하는 원격 사용자 레지스트리 호출보다 덜할 수 있습니다. 수평 전파가 사용 가능한 환경과 사용 불가능한 환경을 테스트하는 것이 좋습니다. 원래 로그인 속성을 보존하기 위해 수평 전파를 사용해야 하는 경우, DRS 또는 JMX 중 어느 것이 사용자 환경에서 더 나은 성능을 제공하는지 테스트하십시오. 일반적으로, 장애 조치(failover) 및 성능을 위해서는 DRS를 구성하는 것이 바람직합니다. 그러나 DRS는 정보를 동일 복제 도메인(액세스 또는 액세스하지 않는 서버에 관계없이)의 모든 서버에 전파하므로 동일 복제 도메인에 서버가 많을 경우에는 성능이 저하될 수 있습니다. 이 경우에는 복제 도메인에 있는 서버 수를 줄이거나 DRS 복제 도메인에 서버를 구성하지 마십시오. 나중 방법을 사용하면 JMX 원격 호출에서 필요할 때마다 속성을 검색하므로 가장 빠를 수 있습니다.

보안 캐시(WSSecureMap)

그림 1에서, 보안 캐시(WSSecureMap)는 보안 속성 전파에 사용되는 동적 캐시입니다. WSSecureMap 캐시는 사용자 신임 정보를 재작성하는 데 사용되는 보안 속성을 저장합니다. 로그인하는 사용자 수에 따라 확장합니다. WSSecureMap의 기본 수명은 LTPA 토큰 제한시간과 같습니다. 즉, WSSecureMap 캐시 항목은 사용자가 로그아웃될 때 해제됩니다. WSSecureMap의 사용 패턴은 규칙적입니다.

관리 콘솔에서 WSSecureMap 캐시 크기를 설정하고(보안 > 글로벌 보안 > 사용자 정의 특성 > 새로 작성) com.ibm.ws.security.WSSecureMapInitAtStartupcom.ibm.ws.security.WSSecureMapSize를 정의하여 캐시가 사용되는 방법을 조정합니다.

다운스트림 전파

다운스트림 전파에서 주제는 전파 로그인이나 사용자 레지스트리 로그인을 통해 웹 프론트 엔드 서버에서 생성됩니다. WebSphere Application Server는 RMI(Remote Method Invocation) 아웃바운드와 인바운드 전파를 사용할 수 있는 경우 엔터프라이즈 Bean 호출을 위한 보안 정보를 다운스트림으로 전파합니다.

보안 속성 전파의 이점

WebSphere Application Server의 보안 속성 전파 기능에는 다음과 같은 이점이 있습니다.

  • WebSphere Application Server를 통해 인증과 권한을 위해 보안 속성 정보를 사용할 수 있습니다. 보안 속성을 전파하면 호출할 때 각 원격 홉에서 사용자 레지스트리 호출을 할 필요가 없습니다. WebSphere Application Server의 이전 버전은 인증된 사용자의 사용자 이름만 전파하지만 원격 사용자 레지스트리 호출을 사용하여 다운스트림으로 재생성해야 하는 다른 보안 속성 정보는 무시했습니다. 이 새로운 기능의 이점을 극대화하려면 다음 예를 고려하십시오.

    이전 릴리스에서는 WebSEAL과 같은 RPSS(Reverse Proxy Server)를 사용하여 사용자를 인증하고 그룹 정보를 수집하며 다른 보안 속성을 수집할 수 있었습니다. 앞에서 설명한 것처럼 WebSphere Application Server는 인증된 사용자의 ID를 승인했지만 추가 보안 속성 정보는 무시했습니다. 필요한 WSCredential과 WSPrincipal 오브젝트가 들어 있는 JAAS(Java Authentication and Authorization Service) 주제를 작성하기 위해 WebSphere Application Server는 사용자 레지스트리를 5 - 6회 호출했습니다. WSCredential 오브젝트에는 Java EE 자원에 권한을 부여하는 데 필요한 여러 보안 정보가 들어 있습니다. WSPrincipal 오브젝트에는 주제의 프린시펄을 표시하는 사용자와 영역 이름이 들어 있습니다.

    현재 Application Server 릴리스의 경우 역방향 프록시 서버에서 가져온 정보는 WebSphere Application Server에 사용되고 사용자 레지스트리를 추가로 호출하지 않아도 다른 서버 자원에 다운스트림으로 전파될 수 있습니다. 보안 속성 정보를 보관하면 적절한 권한과 신뢰 기반 결정을 통해 서버 자원을 올바르게 보호할 수 있습니다. Java EE RunAs 구성으로 인한 사용자 전환을 통해 애플리케이션 서버에서 원래 호출자 정보가 유실되지 않습니다. 이 정보는 실행 중인 스레드에 있는 PropagationToken에 저장됩니다.

  • 타사 제공자를 사용하여 사용자 정의 토큰에 플러그인할 수 있습니다. 토큰 인터페이스에는 토큰 구현을 사용하여 사용자 정의 직렬화, 암호화 방법 또는 둘 다를 정의할 수 있는 getBytes 메소드가 들어 있습니다.
  • 다른 제공자가 작성한 주제 내에 같은 유형의 토큰을 여러 개 가질 수 있는 기능을 제공합니다. WebSphere Application Server는 같은 목적으로 여러 개의 토큰을 처리할 수 있습니다. 예를 들어, 주제에 여러 개의 권한 토큰을 둘 수 있으며 각 토큰은 다른 제공자가 생성한 고유한 권한 속성을 가질 수 있습니다.
  • 동적 속성이 사용자 로그인의 컨텍스트를 변경할 수 있는 경우 사용자 이름보다 더 고유한 주제 ID를 형성하는 데 사용되는 각 토큰 유형에 해당하는 고유 ID를 가질 수 있는 기능을 제공합니다. 토큰 유형에는 캐싱을 위해 고유한 문자열을 리턴하는 데 사용하는 getUniqueId() 메소드가 있습니다. 예를 들어, 사용자가 시스템에 로그인한 위치를 나타내는 위치 ID를 전파해야 합니다. 이 위치 ID는 원래 로그인 중에 역방향 프록시 서버 또는 WEB_INBOUND 로그인 구성을 사용하여 생성되고 직렬화 전에 주제에 추가될 수 있습니다. 다른 속성도 마찬가지로 주제에 추가되고 고유 ID를 사용할 수 있습니다. 전체 주제의 고유성을 위해 모든 고유 ID를 고려해야 합니다. WebSphere Application Server는 주제의 정보에 대한 고유한 사항(사용자가 나중에 주제에 액세스하는 방법에 영향을 줄 수 있음)을 지정할 수 있습니다.

주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=csec_secattributeprop
파일 이름:csec_secattributeprop.html