セキュリティ パッケージの使用
セキュリティ サポート プロバイダー インターフェイス (SSPI) は、次のセキュリティ パッケージと共に使用できます。
Kerberos プロトコルと NTLM プロトコルは、オペレーティング システムに付属のSecur32.dll セキュリティ サポート プロバイダー (SSP) からセキュリティ パッケージとして実装されます。 既定では、Kerberos 認証と NTLM 認証の両方のサポートは、システムの起動時にコンピューター上の ローカル セキュリティ機関 (LSA) によって読み込まれます。 Windows Server または Windows ドメインでは、いずれかのパッケージを使用して、ネットワーク ログオンとクライアント/サーバー接続を認証できます。 どちらを使用するかは、接続の反対側にあるコンピューターの機能によって異なります。 Kerberos プロトコルは、使用可能な場合は常に優先されます。
対話型ユーザーのセキュリティ コンテキストが確立されると、メッセージの交換、署名、検証、暗号化、および暗号化解除をサポートするために、ユーザーのセキュリティ コンテキストで実行されているプロセスによって、Kerberos または NTLM パッケージの別のインスタンスを読み込むことができます。 ただし、LSA 以外のプロセスでは、資格情報キャッシュ内の セッション キー またはチケットへのアクセスは許可されません。
システム サービスとトランスポート レベルのアプリケーションは、SSPI を介して SSP にアクセスします。これにより、システムで使用可能なセキュリティ パッケージを列挙し、パッケージを選択し、そのパッケージを使用してそのパッケージを使用して認証された接続を取得するための機能が提供されます。
SSPI のメソッドは、開発者が特定の セキュリティ プロトコルの詳細を知らなくても使用できる汎用ルーチンです。 たとえば、クライアント/サーバー接続が認証されると、次のようになります。
- 接続のクライアント側のアプリケーションは、SSPI 関数 InitializeSecurityContext (General) を使用して資格情報をサーバーに送信します。
- 接続のサーバー側のアプリケーションは、SSPI 関数 AcceptSecurityContext (General) で応答します。
- 接続が認証されると、サーバー上の LSA はクライアントからの情報を使用して アクセス トークンを構築します。
- その後、サーバーは SSPI 関数 ImpersonateSecurityContext を呼び出して、サービスの偽装スレッドにアクセス トークンをアタッチできます。
Kerberos セキュリティ パッケージ
Kerberos セキュリティ パッケージ は、 Kerberos 認証プロトコルに基づいています。
Kerberos プロトコルを使用してクライアント/サーバー接続を認証する場合、 InitializeSecurityContext (Kerberos) は、クライアントからのKRB_AP_REQ メッセージを含む GSSAPI メッセージを生成します。 AcceptSecurityContext (Kerberos) は、サーバーからのKRB_AP_REP メッセージを含む GSSAPI メッセージを生成します。
Kerberos プロトコルの実装でバックグラウンドで実行される手順の背景情報については、「 Microsoft Kerberos」を参照してください。
すべての分散サービスは、SSPI を使用して Kerberos プロトコルにアクセスします。 Kerberos プロトコルを認証に使用する方法の一部の一覧には、次のものが含まれます。
- 印刷スプーラー サービス
- CIFS/SMB リモート ファイル アクセス
- Active Directory に対する LDAP クエリ
- 分散ファイル システムの管理と紹介
- IPsec ホスト間セキュリティ機関認証
- ネットワークのサービス品質に関する予約要求
- インターネット インフォメーション サービスへのイントラネット認証
- 認証済み RPC を使用したリモート サーバーまたはワークステーション管理
- ドメイン ユーザーとコンピューターの証明書サービスに対する証明書要求
NTLM セキュリティ パッケージ
NTLM セキュリティ パッケージは、NTLM 認証プロトコルに基づいています。