다음을 통해 공유


인증(Windows Media Format 11 SDK)

[Windows Media Format 11 SDK 이 페이지와 연결된 기능은 레거시 기능입니다. 원본 판독기 싱크 작성기 대체되었습니다. 원본 판독기싱크 기록기 Windows 10 및 Windows 11에 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 원본 판독기싱크 기록기 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

판독기 개체는 다이제스트 인증 및 NTLM 인증을 포함하여 네트워크 인증 문제를 처리할 수 있습니다. 경우에 따라 애플리케이션은 콜백 인터페이스를 통해 사용자의 자격 증명을 제공해야 합니다.

  • 다이제스트 인증: 애플리케이션은 이 항목의 뒷부분에 설명된 대로 IWMCredentialCallback 인터페이스를 구현해야 합니다.

  • NTLM 인증: 판독기는 사용자의 로그온 자격 증명으로 자동으로 응답합니다. 현재 사용자에게 서버에 로그온할 권한이 있는 경우 애플리케이션은 아무 작업도 수행할 필요가 없습니다. 사용자에게 권한 부여가 없는 경우 애플리케이션은 IWMCredentialCallback 인터페이스를 구현해야 합니다.

    메모

    Windows Media Services 버전 4.1은 프록시 서버를 통한 NTLM 인증을 지원하지 않습니다. NTLM 인증에는 동일한 연결에서 여러 클라이언트 서버 교환이 필요하며 버전 4.1은 프록시와의 영구 연결을 유지하지 않습니다. Microsoft Windows Server 2003의 Windows Media Services 9 시리즈는 프록시가 연결 유지 연결을 지원하는 한 프록시 서버를 통한 NTLM 인증을 지원합니다.

     

앞에서 설명한 것처럼 경우에 따라 애플리케이션은 사용자의 자격 증명을 제공해야 합니다. 이는 AcquireCredentials 단일 메서드가 있는 IWMCredentialCallback 인터페이스를 통해 발생합니다. 인증을 지원하려면 애플리케이션에서 이 인터페이스를 구현합니다. 판독기 개체는 IWMReader::Open 메서드의 애플리케이션에서 받은 IWMReaderCallback 포인터에서 QueryInterface 호출하여 이 인터페이스를 쿼리합니다. 판독기 개체가 사용자의 자격 증명을 가져와야 하는 경우 애플리케이션의 AcquireCredentials 메서드를 호출합니다.

자격 증명이 암호화 없이 네트워크를 통해 전송되는 경우 판독기는 pdwFlags 매개 변수에서 WMT_CREDENTIAL_CLEAR_TEXT 플래그를 설정합니다. 이렇게 하면 애플리케이션에서 사용자에게 자신의 자격 증명이 일반 텍스트로 전송될 것이라고 경고할 수 있습니다.

그렇지 않으면 판독기 개체는 네트워크를 통해 보내기 전에 자격 증명을 자동으로 암호화합니다. 애플리케이션은 일반 텍스트로 판독기 개체에 반환할 수 있습니다. 또한 판독기 개체가 WMT_CREDENTIAL_ENCRYPT 플래그를 설정하는 경우 판독기가 애플리케이션에서 암호화된 자격 증명 가져오기를 지원한다는 의미입니다. 이 경우 애플리케이션은 자격 증명을 일반 텍스트로 반환하거나 플랫폼 SDK 설명서에 설명된 CryptProtectData 함수를 사용하여 자격 증명을 암호화할 수 있습니다. 애플리케이션이 자격 증명을 암호화하는 경우 메서드가 반환되기 전에 pdwFlags 매개 변수에서 WMT_CREDENTIAL_ENCRYPT 플래그를 설정해야 합니다.

일반적으로 판독기 개체는 필요한 경우 데이터를 암호화하기 때문에 데이터를 암호화할 필요가 없습니다. 그러나 암호화는 공격자가 프로세스의 메모리 덤프를 검사할 수 없으므로 애플리케이션이 사용자 이름과 암호를 메모리에 유지하는 경우에 유용할 수 있습니다.

IWMCredentialCallback 인터페이스

IWMReader 인터페이스