다음을 통해 공유


큐에 대기된 구성 요소 보안

클라이언트가 큐에 대기 중인 개체에 대한 메서드 호출을 수행할 때 호출은 실제로 서버로 메시지의 일부로 패키지되는 레코더에 대해 이루어집니다. 수신기는 큐에서 메시지를 읽고 플레이어에게 전달합니다. 플레이어는 실제 서버 구성 요소를 호출하고 동일한 메서드를 호출합니다. 서버 구성 요소는 플레이어가 메서드를 호출할 때 클라이언트의 보안 호출 컨텍스트(플레이어의 보안 호출 컨텍스트가 아님)를 관찰해야 합니다. 레코더는 클라이언트의 보안 호출 컨텍스트를 메시지로 마샬링하고 플레이어는 메서드를 호출하기 전에 서버에서 메시지를 마샬링합니다. 서버 개체에 관한 한 클라이언트의 직접 호출과 플레이어의 간접 호출 간에는 보안 컨텍스트에 차이가 없습니다. 특히 호출된 메서드는 보낸 사람의 권한으로 실행됩니다.

COM+ 큐에 대기된 구성 요소는 COM+ 애플리케이션에서 사용하도록 빌드된 다른 구성 요소와 마찬가지로 역할 기반 보안 의미 체계를 지원합니다. 따라서 큐에 대기 중인 애플리케이션의 구성 요소는 프로그래밍 인터페이스를 사용하여 호출자(ISecurityCallContext::IsCallerInRole) 또는 특정 사용자(ISecurityCallContext::IsUserInRole)의 역할 멤버 자격을 검색할 수 있습니다. 보안에 영향을 줄 수 있는 큐에 대기 중인 구성 요소는 이러한 인터페이스를 사용하여 보낸 사람의 자격 증명을 명시적으로 검사 것이 좋습니다.

호출자 ID는 메서드 호출과 연결된 ID입니다. 호출자 ID는 역할 기반 보안에서 사용되며 보안 호출 컨텍스트에 있습니다. 큐에 대기 중인 구성 요소에서 호출자 ID는 메시지 큐 메시지의 데이터로 표시됩니다. 메시지 큐는 메시지 보낸 사람 ID를 인증합니다. 호출자 ID와 메시지 발신자 ID가 같으면 메시지 큐는 메시지와 호출자를 모두 인증합니다. 일반적인 경우입니다.

참고

COM+ 큐에 대기 중인 구성 요소는 서버가 클라이언트 ID에 해당하는 액세스 토큰을 가져와서 액세스 제어 검사를 수행하거나 클라이언트 보안 컨텍스트에서 작동하는 데 사용할 수 있는 가장 스타일 보안을 지원하지 않습니다.

 

대기 중인 구성 요소의 호출자가 Out-of-process 레코더를 통해 구성 요소와 상호 작용하는 경우 호출자 및 메시지 보낸 사람(레코더)의 ID가 다를 수 있습니다. 이 경우 COM+ 큐에 대기 중인 구성 요소는 메시지 발신자가 서버에서 QC 신뢰할 수 있는 사용자 역할의 멤버인지 확인합니다. 또한 Out-of-process 레코더는 메시지 큐에 의해 인증되기 때문에 인증 인증서가 필요합니다.

QC 신뢰할 수 있는 사용자 역할의 멤버는 임의의 ID를 지정할 수 있습니다. 즉, 악의적인 멤버가 상승된 권한으로 대기 중인 구성 요소 호출을 실행할 수 있습니다. 따라서 이러한 사용자의 수는 절대 최소로 유지하는 것이 좋습니다.

네트워크를 통해 ID를 전파하는 메커니즘과 관련된 정교한 공격의 위험과 실행 불가능한 요청으로 큐를 넘나드는 간단한 서비스 거부 공격의 위험 때문에 신뢰할 수 있는 호스트 네트워크에만 COM+ 큐에 대기된 구성 요소 서비스를 배포하는 것이 좋습니다. 개인 네트워크 또는 가상 사설망 또는 적절하게 구성된 방화벽 뒤에 있습니다.

COM+ 큐에 대기된 구성 요소는 DCOM을 통해 실행되므로 큐에 대기 중인 애플리케이션의 속성 시트의 보안 탭에서 패킷 개인 정보를인증 호출 수준으로 선택하여 대기 중인 메서드 호출의 무결성 및 비밀을 보호할 수 있습니다.

COM+ 보안

작업 그룹 모드의 보안 제한 사항

인증 프로토콜 지정