次の方法で共有


Schannel を使用した認証の実行

すべての Schannel プロトコルでは、その ID の証明として、信頼された 証明機関 (CA) から証明書をサーバーに提供する必要があります。 このプロセスは、サーバー認証と呼ばれます。 クライアントが ID の証明を提供するクライアント認証は省略可能であり、サーバーからいつでも要求できます。

サーバーの認証

Schannel の既定の動作では、WinVerifyTrust 関数を使用して、サーバー証明書整合性 と所有権を確認します。 この機能を無効にするには、InitializeSecurityContext (Schannel) 関数を呼び出すときにISC_REQ_MANUAL_CRED_VALIDATIONを指定します。 「Schannel の資格情報を手動で検証する方法の詳細については、参照してください。」

クライアントの認証

Schannel はクライアントの証明書を検証しません。サーバーはこの認証を手動で実行する必要があります。 通常、サーバーは、ユーザー アカウント情報を含むデータベース内のクライアントの ID を確認します。 証明書を使用してクライアントのアカウントを取得する必要があるサーバーについては、「マッピング証明書の」を参照してください。

サーバーがクライアント認証を要求する場合、クライアントはサーバーに証明書の 1 つを送信する必要があります。 既定では、Schannel はクライアントへの通知なしで、クライアント証明書 を見つけてサーバーに送信しようとします。 この機能を無効にするために、クライアントは InitializeSecurityContext (Schannel) 関数を呼び出すときにISC_REQ_USE_SUPPLIED_CREDSを指定します。 このフラグを指定すると、サーバーが認証を要求し、クライアントが以前に証明書を指定していない場合、Schannel はクライアントにSEC_I_INCOMPLETE_CREDENTIALSを返します。