RPC_HTTP_TRANSPORT_CREDENTIALS_A 構造体 (rpcdce.h)

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

構文

typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A {
  SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials;
  unsigned long             Flags;
  unsigned long             AuthenticationTarget;
  unsigned long             NumberOfAuthnSchemes;
  unsigned long             *AuthnSchemes;
  unsigned char             *ServerCertificateSubject;
} RPC_HTTP_TRANSPORT_CREDENTIALS_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_A;

メンバー

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 バージョンを使用する場合は、ANSI バージョンのRPC_HTTP_TRANSPORT_CREDENTIALS構造体とSEC_WINNT_AUTH_IDENTITY構造体を指定し、TransportCredentialsFlags メンバーを SEC_WINNT_AUTH_IDENTITY_ANSI に設定する必要があります。

要件

要件
サポートされている最小のクライアント SP1 を使用した Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー 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