클라이언트 권한 부여에 역할 사용

역할 기반 보안을 사용하여 권한 부여 정책을 설정하고 어떤 클라이언트 또는 클라이언트가 어떤 권한을 부여할지 결정합니다. 어떤 작업을 수행하고 어떤 리소스에 액세스할 수 있어야 하는지 결정합니다.

역할은 사용자가 애플리케이션 리소스에 액세스하려고 할 때마다 호출되는 액세스 제어 메커니즘으로 작동하여 이를 용이하게 합니다. 역할은 기본적으로 사용자 목록이며, 더 정확하게는 동일한 보안 권한을 공유하는 사용자의 기호 범주입니다. 애플리케이션 리소스에 역할을 할당할 때 해당 역할의 멤버인 사용자에게 해당 리소스에 대한 액세스 권한을 부여합니다.

따라서 역할로 선언한 다음 특정 리소스에 역할을 할당하여 매우 특별한 보안 권한을 정의할 수 있습니다. 애플리케이션이 배포되면 시스템 관리자는 실제 사용자 및 사용자 그룹으로 역할을 채울 수 있습니다. 애플리케이션이 실행되면 COM+는 역할 검사를 수행하여 정책을 적용합니다.

기본적으로 역할은 COM+ 애플리케이션의 클라이언트에서 호출할 수 있는 메서드인 코드를 보호하는 데 도움이 됩니다. 역할 멤버 자격은 클라이언트가 애플리케이션의 구성 요소에 의해 노출되는 메서드를 호출하려고 할 때마다 확인됩니다. 호출자가 호출된 메서드 또는 리소스에 할당된 역할에 있으면 호출이 성공합니다. 그렇지 않으면 실패합니다.

선언적 Role-Based 보안

선언적 역할 기반 보안을 사용하면 Configuration Services 관리 도구 또는 관리 함수를 사용하여 역할을 관리적으로 선언하고 애플리케이션 리소스에 관리적으로 할당합니다. 선언적 보안을 설정하는 위치와 방법에 따라 애플리케이션에 대한 보안 경계가 그려지는 위치가 결정됩니다. 자세한 내용은 보안 경계를 참조하세요.

전체 애플리케이션, 특정 구성 요소, 구성 요소의 특정 인터페이스 또는 인터페이스의 특정 메서드에 지정된 역할을 할당할 수 있습니다. 역할 할당은 포함의 자연스러운 체인 아래로 상속됩니다. 즉, 구성 요소에 역할을 할당하는 경우 해당 구성 요소에서 노출하는 모든 인터페이스 및 메서드에 암시적으로 할당됩니다.

메서드 수준 역할 할당의 가용성을 사용하면 보안을 염두에 두고 설계되지 않은 구성 요소 및 인터페이스를 효과적으로 보호할 수 있습니다. 그러나 선언적 역할 할당을 사용하여 메서드 자체를 보안할 수 없는 경우 프로그래밍 방식 역할 검사를 수행해야 할 수 있습니다. 일반적으로 방법을 통해 비즈니스 기능을 팩터링하는 방법을 결정할 때 보안을 염두에 두는 것이 좋습니다. 그렇지 않으면 마지막 순간에 보안 관련 코드에 자신을 추가할 수 있습니다.

역할 기반 보안을 설정하는 자세한 절차는 Role-Based 보안 구성을 참조하세요.

프로그래밍 방식 보안

경우에 따라 역할 기반 보안을 사용하는 동안 구성 요소에 보안 논리를 배치할 수 있습니다. 메서드를 통해 모든 액세스 결정을 고려할 수 없거나 선택하지 않을 수도 있습니다. 예를 들어 다른 호출자를 제외하고 메서드의 일부 호출자만 액세스할 수 있도록 허용하려는 프라이빗 애플리케이션 리소스(특정 데이터베이스)가 있을 수 있습니다. 또는 단일 TransferMoney 메서드가 있고 전송할 수 있는 양을 제한하여 일부 호출자를 제한하려고 할 수 있습니다.

이러한 상황에서는 코드에서 역할 검사를 수행할 수 있습니다. 간단한 API가 제공되므로 보안이 켜져 있는지 여부와 호출자 또는 특정 사용자가 지정된 역할에 있는지 여부를 확인할 수 있습니다. 이 기능은 역할 기반 보안을 사용하도록 설정한 경우에만 사용할 수 있습니다. 즉, 필요한 경우 선언적 역할 기반 보안을 계속 활용할 수 있으며 프로그래밍 방식으로 더 세부적인 수준으로 확장할 수 있습니다.

또한 역할 기반 보안을 사용하는 경우 구성 요소에 대한 호출 체인의 모든 업스트림 호출자에 대한 정보에 프로그래밍 방식으로 액세스할 수 있습니다. 이 기능은 자세한 감사 내역을 유지하려는 경우에 특히 유용합니다.

코드에서 역할 체크 인을 수행하는 방법 및 보안 호출 컨텍스트 정보에 액세스하는 방법에 대한 설명은 프로그래밍 방식 구성 요소 보안을 참조하세요.

권한 부여 및 인증

의미 있는 권한 부여는 클라이언트가 실제로 자신이 누구인지 확신한다는 것을 전제로 합니다. 클라이언트 ID 확인은 인증 서비스에 의해 별도로 처리됩니다. 인증이 없으면 기본적으로 호출자가 명예 시스템에 들어오도록 할 수 있습니다. COM+ 애플리케이션에 영향을 미치는 인증에 대한 설명은 클라이언트 인증을 참조하세요.

효과적으로 역할 디자인

보안 경계

보안 통화 컨텍스트 정보

보안 컨텍스트 속성