COM+ 보안 개념
COM+은 관리적으로 구성하는 서비스부터 코드 내에서 호출할 수 있는 API에 이르기까지 COM+ 애플리케이션을 보호하는 데 사용할 수 있는 몇 가지 보안 기능을 제공합니다.
가능하면 COM+ 애플리케이션의 경우 구성 요소 내에서 보안을 구성하는 대신 선언적 역할 기반 보안 및 인증과 같은 자동 보안을 사용하는 것이 좋습니다. 자동 보안을 사용하면 구성 요소를 더 쉽게 작성하고 유지 관리하고, 전체 애플리케이션에서 보안을 쉽게 디자인할 수 있으며, 관리적으로 구성되므로 애플리케이션의 보안 정책을 더 쉽게 수정할 수 있습니다. 이러한 자동 보안 서비스를 사용하면 모든 보안 관련 기능을 구성 요소에서 제외할 수 있습니다. 서비스를 켜고 적절하게 구성할 수 있는 경우 COM+는 지정한 보안 정책을 적용하는 세부 정보를 처리합니다.
그러나 COM+의 자동 보안 서비스가 필요한 작업을 정확하게 수행하지 않으면 COM+에서 제공하는 자동 보안 플랫폼을 기반으로 확장할 수 있습니다. 자동 보안을 사용하지 않도록 선택하거나 사용하려고 하지만 애플리케이션의 보안 요구 사항에 맞게 빌드해야 하는 경우 프로그래밍 방식으로 보안을 구성하기 위한 다음 옵션이 있습니다.
- 프로그래밍 방식의 역할 기반 보안(예: 역할 검사)은 애플리케이션에 대해 역할 기반 보안을 사용하도록 설정할 때 사용할 수 있습니다.
- 가장 - 클라이언트의 ID를 사용하여 보호된 리소스에 액세스하려는 경우를 위한 것입니다.
- 보안 호출 컨텍스트 정보를 기반으로 하는 감사 기능- 역할 기반 보안을 사용하는 경우에도 사용할 수 있습니다.
지정된 애플리케이션을 보호하는 데 사용하는 메커니즘은 해당 애플리케이션의 특정 요구 사항에 따라 달라집니다. 일부 보안 선택은 구성 요소를 작성하는 방법에 영향을 줄 수 있으며 일부는 애플리케이션 디자인에 큰 영향을 줄 수 있습니다. 애플리케이션에 대한 보안 전략을 구현하는 방법에 대한 결정을 내리기 전에 성능 요구 사항, 데이터 액세스, 물리적 디자인 등 전체 디자인의 컨텍스트에서 보안 요구 사항을 고려하고 가장 적합한 보안 기능 조합을 선택해야 합니다. 프로그래밍 방식 보안을 구현하는 방법에 대한 자세한 내용은 프로그래밍 방식 구성 요소 보안을 참조하세요.
COM+ 보안 범주, 기능 및 문제에 대한 간략한 설명이 여기에 제공되며, 이 섹션의 topics 대한 링크와 함께 각 중요한 영역에 대한 자세한 설명을 제공합니다.
참고
이 섹션에서는 설명하지 않았지만 대기 중인 구성 요소에는 사용할 수 있는 보안 기능과 관련된 특정 문제도 있습니다. 자세한 내용은 대기 중인 구성 요소 보안 및 큐에 대기 중인 구성 요소 개발을 참조하세요.
역할 기반 보안
역할 기반 보안은 COM+ 애플리케이션 보안의 핵심 기능입니다. 역할을 사용하여 애플리케이션에 대한 권한 부여 정책을 관리적으로 생성하여 사용자가 어떤 리소스에 액세스할 수 있는지(필요한 경우 메서드 수준까지) 선택할 수 있습니다. 또한 역할은 애플리케이션에 세분화된 액세스 제어가 필요한 경우 코드 내에서 보안 검사를 적용하기 위한 프레임워크를 제공합니다.
역할 기반 보안은 구성 요소에 대한 호출 체인의 모든 업스트림 호출자에 대한 보안 정보를 검색할 수 있는 일반적인 메커니즘을 기반으로 합니다. 이 기능은 특히 자세한 감사 및 로깅을 수행하려는 경우에 유용합니다. COM+에서 제공하는 감사 기능에 대한 설명은 보안 통화 컨텍스트 정보 액세스를 참조하세요.
사용 시 고려해야 하는 역할 기반 보안 및 관리 문제에 대한 설명은 역할 기반 보안 관리를 참조하세요.
클라이언트 인증
클라이언트가 리소스에 액세스할 수 있도록 권한을 부여하려면 먼저 클라이언트가 자신이 누구인지 확신해야 합니다. 이 ID 확인을 사용하도록 설정하기 위해 COM+는 인증 서비스를 제공합니다. 이러한 서비스는 실제로 COM 및 Microsoft Windows를 통해 보다 기본적인 수준에서 제공되지만 COM+ 애플리케이션을 사용하면 애플리케이션에 투명하게 작동하도록 인증 서비스를 관리적으로 켤 수 있습니다. 인증 서비스에 대한 설명은 클라이언트 인증을 참조하세요.
클라이언트 가장 및 위임
경우에 따라 애플리케이션은 클라이언트의 ID를 사용하여 클라이언트를 대신하여 작업을 수행해야 합니다(예: 원래 클라이언트를 인증하려는 데이터베이스에 액세스할 때). 이렇게 하려면 애플리케이션이 클라이언트를 가장해야 합니다. COM+는 다양한 수준의 가장을 가능하게 하는 기능을 제공합니다. 가장은 관리적으로 구성되지만 애플리케이션 구성 요소의 코드로 가장에 대한 지원도 제공해야 합니다. 가장 및 사용과 관련된 문제에 대한 설명은 클라이언트 가장 및 위임을 참조하세요.
COM+에서 소프트웨어 제한 정책 사용
소프트웨어 제한 정책은 사용자의 권한을 오용할 수 없도록 제한된 환경에서 신뢰할 수 없고 잠재적으로 유해한 코드를 실행하는 방법을 제공합니다. 사용자가 실행할 수 있는 파일에 신뢰 수준을 할당하여 이 작업을 수행합니다. 예를 들어 특정 시스템 파일을 완전히 신뢰할 수 있고 사용자의 권한에 대한 무제한 액세스 권한을 부여할 수 있지만 인터넷에서 다운로드한 파일은 완전히 신뢰할 수 없으므로 보안에 민감한 사용자 권한을 사용할 수 없는 제한된 환경에서만 실행할 수 있습니다.
시스템 전체 소프트웨어 제한 정책은 관리자가 개별 파일에 대한 신뢰 수준을 구성할 수 있도록 하는 로컬 보안 정책 관리 도구를 통해 제어됩니다. 그러나 모든 COM+ 서버 애플리케이션은 dllhost.exe 파일에서 실행됩니다. 따라서 COM+는 각 서버 애플리케이션에 대한 소프트웨어 제한 정책을 지정하여 dllhost.exe 파일의 제한 정책에 의존할 필요가 없도록 하는 방법을 제공합니다. COM+에서 소프트웨어 제한 정책을 사용하는 방법에 대한 자세한 내용은 COM+에서 소프트웨어 제한 정책 사용을 참조하세요.
라이브러리 애플리케이션 보안
라이브러리 애플리케이션에는 특별한 보안 고려 사항이 있습니다. 이러한 애플리케이션은 클라이언트 프로세스에서 실행되므로 프로세스 수준 보안을 제어할 수 없지만 호스팅 프로세스에 의해 적용되는 보안의 영향을 받습니다. 라이브러리 애플리케이션에 대해 고려해야 할 요소에 대한 설명은 라이브러리 애플리케이션 보안을 참조하세요.
다중 계층 애플리케이션 보안
COM+ 애플리케이션은 일반적으로 중간 계층 애플리케이션입니다. 즉, 클라이언트와 백 엔드 리소스(예: 데이터베이스) 간에 정보를 이동합니다. 보안이 적용되어야 하는 위치와 어느 정도까지 결정해야 하는지 결정하는 데 어려운 선택이 있을 수 있습니다. 보안에는 기본적으로 성능 절충이 포함됩니다. 이러한 중 가장 심각한 일부는 데이터 계층과 중간 계층 모두에서 보안 검사를 적용해야 할 때 발생합니다. 고려해야 할 문제에 대한 논의는 다중 계층 애플리케이션 보안을 참조하세요.
관련 항목