RPC_HTTP_TRANSPORT_CREDENTIALS_W 構造体 (rpcdce.h)

RPC_HTTP_TRANSPORT_CREDENTIALS構造では、RPC/HTTP を使用する場合に RPC プロキシ サーバーに対して認証するための追加の資格情報が定義されます。

構文

typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_W {
  SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials;
  unsigned long             Flags;
  unsigned long             AuthenticationTarget;
  unsigned long             NumberOfAuthnSchemes;
  unsigned long             *AuthnSchemes;
  unsigned short            *ServerCertificateSubject;
} RPC_HTTP_TRANSPORT_CREDENTIALS_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_W;

メンバー

TransportCredentials

ユーザーのユーザー 名、ドメイン 、パスワードを含むSEC_WINNT_AUTH_IDENTITY構造体へのポインター。

Flags

ビットごとの OR 演算子と組み合わせることができるフラグのセット。

説明
RPC_C_HTTP_FLAG_USE_SSL
SSL を使用して RPC プロキシと通信するように RPC に指示します。
RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME
設定すると、RPC は AuthnSchemes 配列の最初のスキームを選択し、RPC プロキシに対する認証を試みます。 RPC プロキシが選択した認証スキームをサポートしていない場合、呼び出しは失敗します。 設定されていない場合、RPC クライアントは RPC プロキシに対してサポートされている認証スキームを照会し、いずれかを選択します。

AuthenticationTarget

認証ターゲットを指定します。

次の値のいずれかまたは両方に設定する必要があります。

説明
RPC_C_HTTP_AUTHN_TARGET_SERVER
HTTP の観点から HTTP サーバーである RPC プロキシに対して認証します。 これが最も一般的な値です。
RPC_C_HTTP_AUTHN_TARGET_PROXY
HTTP プロキシに対して認証します。 この値は一般的ではありません。

NumberOfAuthnSchemes

AuthnScheme 配列内の要素の数。

AuthnSchemes

ServerCertificateSubject

予期されるサーバー プリンシパル名を含む省略可能な文字列が含まれます。 プリンシパル名は、 RpcCertGeneratePrincipalName に対して生成された形式と同じです (詳細については、「 プリンシパル名 」を参照してください)。 このメンバーは、SSL が使用されている場合にのみ使用されます。 このような場合、サーバー証明書は、生成されたプリンシパル名に対してチェックされます。 一致しない場合は、エラーが返されます。 このメンバーにより、クライアントは RPC プロキシを認証できます。

解説

TransportCredentials メンバーが NULL で、認証スキームが NTLM の場合、現在ログオンしているユーザーの資格情報が使用されます。 弱い LM ハッシュを介してネットワーク上のユーザー資格情報が公開されないようにするために、ユーザー ログオン資格情報は、次の条件のいずれかまたは両方に該当する場合にのみ使用されます。

  • 呼び出し元は SSL の使用を要求し、 ServerCertificateSubject メンバーを 使用しました。 このシナリオでは、弱いハッシュが使用されている場合でも、転送中と最終宛先の両方で資格情報が保護されていることが保証されます。
  • lncompatibilitylevel キーは 2 以上に設定されています。 これにより、NTLM セキュリティ プロバイダーは、弱い LM ハッシュではなく、強力な NT ハッシュのみを出力または応答します。 さらに、お客様は、NTLMv2 を試みるレベル 3 以上を使用することをお勧めします。
RpcBindingSetAuthInfoEx 関数の Unicode バージョンを使用する場合は、RPC_HTTP_TRANSPORT_CREDENTIALSおよびSEC_WINNT_AUTH_IDENTITY構造体の Unicode バージョンも指定し、TransportCredentialsFlags メンバーを SEC_WINNT_AUTH_IDENTITY_UNICODE に設定する必要があります。 RPCBindingSetAuthInfoEx 関数の ANSI バージョンを使用する場合は、RPC_HTTP_TRANSPORT_CREDENTIALSおよびSEC_WINNT_AUTH_IDENTITY構造体の ANSI バージョンを指定し、TransportCredentialsFlags メンバーをSEC_WINNT_AUTH_IDENTITY_ANSIに設定する必要があります。

要件

   
サポートされている最小のクライアント WINDOWS XP と SP1 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
Header rpcdce.h (Rpc.h を含む)

関連項目

プリンシパル名

RPC_HTTP_TRANSPORT_CREDENTIALS_V2

RPC_HTTP_TRANSPORT_CREDENTIALS_V3

RPC_SECURITY_QOS

RPC_SECURITY_QOS_V2

RPC_SECURITY_QOS_V3

RPC over HTTP を使用したリモート プロシージャ コール

RpcBindingSetAuthInfoEx

RpcCertGeneratePrincipalName

SEC_WINNT_AUTH_IDENTITY