Share via


인터페이스 프록시 수준에서 보안 설정

경우에 따라 클라이언트는 특정 인터페이스 호출에 대한 보안에 대한 세분화된 제어가 필요합니다. 예를 들어 보안은 프로세스에 대해 낮은 수준으로 설정될 수 있지만 특정 인터페이스를 호출하려면 암호화와 같은 더 높은 인증 수준이 필요할 수 있습니다. IClientSecurity 인터페이스의 메서드를 사용하면 클라이언트가 인터페이스 프록시 수준에서 보안 설정을 제어하여 특정 인터페이스에 대한 호출과 관련된 보안 설정을 변경할 수 있습니다.

클라이언트는 IClientSecurity 에 대한 기존 개체를 쿼리한 다음 IClientSecurity::QueryBlanket 메서드를 호출하여 특정 인터페이스 프록시에 대한 현재 보안 설정이 무엇인지 확인할 수 있습니다. IClientSecurity::SetBlanket 메서드를 사용하여 인터페이스의 메서드 중 하나를 호출하기 전에 개체의 개별 인터페이스 프록시에 대한 보안 설정을 수정할 수 있습니다. 새 설정은 이 특정 인터페이스의 이후 호출자에게 적용됩니다. IClientSecurity::CopyProxy 메서드는 클라이언트가 인터페이스 프록시를 복사하여 복사본의 SetBlanket에 대한 후속 호출이 원래 프록시의 호출자에게 영향을 미치지 않도록 하는 방법을 제공합니다.

SetBlanket 은 일반적으로 특정 인터페이스 프록시에 대한 인증 수준을 더 높은 수준의 보안 보호로 높이는 데 사용됩니다. 그러나 경우에 따라 특정 인터페이스 프록시에 대한 인증 수준을 낮추는 것도 유용할 수 있습니다. instance 경우 프로세스의 기본 인증 수준이 RPC_C_AUTHN_LEVEL_NONE 이외의 값이고 클라이언트와 서버가 서로를 신뢰하지 않는 별도의 도메인에 있다고 가정합니다. 이 경우 클라이언트가 SetBlanket 을 호출하여 인증 수준을 RPC_C_AUTHN_LEVEL_NONE 않는 한 서버에 대한 호출이 실패합니다.

프록시 관리자가 제공하는 IClientSecurity의 기본 구현을 사용하는 클라이언트는 IClientSecurity 메서드를 직접 호출하는 대신 CoQueryProxyBlanket, CoSetProxyBlanketCoCopyProxy 도우미 함수를 호출할 수 있습니다. 도우미 함수는 코드를 단순화하지만 해당 IClientSecurity 메서드를 직접 호출하는 것보다 약간 덜 효율적입니다.

IClientSecurity 인터페이스는 프록시 관리자에 의해 클라이언트에 대해 로컬로 구현됩니다. 일부 사용자 지정 마샬링된 개체는 IClientSecurity를 지원하지 않을 수 있습니다.

IClientSecurity는 지원되는 모든 인증 서비스(현재 NTLMSSP, Schannel 및 Kerberos v5 프로토콜)에서 작동합니다.

COM 애플리케이션에 대한 보안 설정