次の方法で共有


DsBindWithSpnExA 関数 (ntdsapi.h)

DsBindWithSpnEx 関数は、相互認証に指定された資格情報と特定のサービス プリンシパル名 (SPN) を使用してドメイン コントローラーにバインドします。 この関数は、DsBindWithSpn 関数に似ていますが、この関数では、BindFlags パラメーターを使用して、より多くのバインド オプションを使用できます。

この関数は、相互認証を完全に制御する必要がある場合に提供されます。 この関数は、DsBind がサーバーを見つけることを想定している場合は使用しないでください。SPN はコンピューター固有であり、指定した SPN が DsBind が検索するサーバー 一致する可能性は低いためです。 servicePrincipalName 引数NULL を指定すると、DsBindWithCredと同じ動作になります。

構文

NTDSAPI_POSTXP DWORD DsBindWithSpnExA(
  [in, optional] LPCSTR                   DomainControllerName,
  [in, optional] LPCSTR                   DnsDomainName,
  [in, optional] RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  [in, optional] LPCSTR                   ServicePrincipalName,
  [in, optional] DWORD                    BindFlags,
  [out]          HANDLE                   *phDS
);

パラメーター

[in, optional] DomainControllerName

バインドするドメインの完全修飾 DNS 名を含む null で終わる文字列へのポインター。 詳細については、「DsBind」トピックの DomainControllerName の説明を参照してください。

[in, optional] DnsDomainName

バインドするドメインの完全修飾 DNS 名を含む null で終わる文字列へのポインター。 詳細については、「DsBind」トピックの DnsDomainName の説明を参照してください。

[in, optional] AuthIdentity

バインドに使用する資格情報を表す RPC_AUTH_IDENTITY_HANDLE 値を格納します。 ザ

DsMakePasswordCredentials 関数を使用して、この値を取得します。 このパラメーターが NULL場合は、呼び出し元スレッドの資格情報が使用されます。

DsFreePasswordCredentials 関数を使用してこのハンドルを解放する前に、DsUnBind を呼び出す必要があります。

[in, optional] ServicePrincipalName

クライアントに割り当てるサービス プリンシパル名を指定する null で終わる文字列へのポインター。 ServicePrincipalName で NULL 渡すことは、DsBindWithCred 関数の呼び出しと同じです。

[in, optional] BindFlags

この関数の動作を定義するフラグのセットが含まれています。 このパラメーターには、0 個または次の一覧に示す値の組み合わせを含めることができます。

NTDSAPI_BIND_ALLOW_DELEGATION (1)

バインドでデリゲートの偽装レベルを使用します。 これにより、DsAddSidHistoryなどの委任を必要とする操作を成功させることができます。 このフラグを指定すると、DsBindWithSpnExDsBindWithSpnのように動作します。

このフラグが指定されていない場合、バインドは偽装偽装レベルを使用します。 詳細については、「偽装レベルの」を参照してください。

ほとんどの操作ではデリゲートの偽装レベルは必要ないため、このフラグは絶対に必要な場合にのみ指定する必要があります。 代理偽装レベルで悪意のあるサーバーにバインドすると、悪意のあるサーバーは資格情報を使用して非悪意のあるサーバーに接続し、意図しない操作を実行できます。

NTDSAPI_BIND_FIND_BINDING (2)

引っ込み思案。

NTDSAPI_BIND_FORCE_KERBEROS (4)

Active Directory ライトウェイト ディレクトリ サービス: このフラグを指定すると、DsBindWithSpnEx Kerberos 認証が強制的に使用されます。 Kerberos 認証を確立できない場合、DsBindWithSpnEx は他の方法で認証を試みません。

[out] phDS

バインド ハンドルを受け取る HANDLE 値のアドレス。 このハンドルを閉じるには、DsUnBind 関数に渡します。

戻り値

成功した場合は ERROR_SUCCESS を返し、それ以外の場合は Windows または RPC エラー コードを返します。 一般的なエラー コードの一覧を次に示します。

備考

手記

ntdsapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして DsBindWithSpnEx を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista
サポートされる最小サーバー Windows Server 2008
ターゲット プラットフォーム の ウィンドウズ
ヘッダー ntdsapi.h
ライブラリ Ntdsapi.lib
DLL Ntdsapi.dll

関連項目

ドメイン コントローラーとレプリケーション管理機能の

DsBind

DsBindWithCred の

DsBindWithSpn の

DsUnBind の

偽装レベル