認証 (Windows Media Format 11 SDK)
リーダー オブジェクトは、ダイジェスト認証や NTLM 認証など、ネットワーク認証の課題に対処できます。 場合によっては、アプリケーションはコールバック インターフェイスを介してユーザーの資格情報を提供する必要があります。
ダイジェスト認証: このトピックで後述するように、アプリケーションは IWMCredentialCallback インターフェイスを実装する必要があります。
NTLM 認証: 閲覧者は、ユーザーのログオン資格情報で自動的に応答します。 現在のユーザーがサーバーへのログオンを許可されている場合、アプリケーションは何もする必要はありません。 ユーザーが承認されていない場合、アプリケーションは IWMCredentialCallback インターフェイスを実装する必要があります。
Note
Windows Media サービス バージョン 4.1 では、プロキシ サーバー経由の NTLM 認証はサポートされていません。 NTLM 認証では、同じ接続で複数のクライアントとサーバーの交換が必要であり、バージョン 4.1 ではプロキシとの永続的な接続は保持されません。 Microsoft Windows Server 2003 の Windows Media サービス 9 シリーズでは、プロキシがキープアライブ接続をサポートしている限り、プロキシ サーバー経由の NTLM 認証がサポートされます。
説明したように、場合によっては、アプリケーションでユーザーの資格情報を提供する必要があります。 これは、単一のメソッド AcquireCredentials を持つ IWMCredentialCallback インターフェイスを介して発生 します。 認証をサポートするには、アプリケーションにこのインターフェイスを実装します。 リーダー オブジェクトは、IWMReader::Open メソッドでアプリケーションから受信した IWMReaderCallback ポインターで QueryInterface を呼び出して、このインターフェイスに対してクエリを実行します。 リーダー オブジェクトは、ユーザーの資格情報を取得する必要がある場合は、アプリケーションの AcquireCredentials メソッドを 呼び出します。
資格情報が暗号化なしでネットワーク経由で送信される場合、リーダーは pdwFlags パラメーターに WMT_CREDENTIAL_CLEAR_TEXT フラグを設定します。 これにより、アプリケーションは自分の資格情報がプレーン テキストで送信されることをユーザーに警告する機会を与えます。
それ以外の場合、リーダー オブジェクトは、ネットワーク経由で送信する前に資格情報を自動的に暗号化します。 アプリケーションは、プレーン テキストでリーダー オブジェクトに返すことができます。 さらに、リーダー オブジェクトが WMT_CREDENTIAL_ENCRYPT フラグを設定した場合、リーダーはアプリケーションからの暗号化された資格情報の取得をサポートします。 その場合、アプリケーションはプレーン テキストで資格情報を返すか、プラットフォーム SDK ドキュメントで説明されている CryptProtectData 関数を使用して資格情報自体を暗号化できます。 アプリケーションが資格情報を暗号化する場合は、 メソッドが戻る前に pdwFlags パラメーターに WMT_CREDENTIAL_ENCRYPT フラグを設定する必要があります。
一般に、必要に応じてリーダー オブジェクトによってデータが暗号化されるため、データを暗号化する必要はありません。 ただし、暗号化は、攻撃者がプロセスのメモリ ダンプを検査するのを防ぐため、アプリケーションがユーザー名とパスワードをメモリに保持する場合に役立つ可能性があります。
関連トピック