MessageSecurityOverHttp.NegotiateServiceCredential プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
サービス資格情報がクライアントで帯域外でプロビジョニングされているか、ネゴシエーションのプロセスを通じてサービスから取得されるかを示す値を取得または設定します。
public:
property bool NegotiateServiceCredential { bool get(); void set(bool value); };
public bool NegotiateServiceCredential { get; set; }
member this.NegotiateServiceCredential : bool with get, set
Public Property NegotiateServiceCredential As Boolean
プロパティ値
true ネゴシエーションのプロセスを通じてサービス資格情報を取得する場合。それ以外の場合は false。 既定値は true です。
例
次のコードは、このプロパティにアクセスして設定する方法を示しています。
WSHttpBinding binding = new WSHttpBinding();
binding.Security.Mode = SecurityMode.Message;
binding.Security.Message.ClientCredentialType =
MessageCredentialType.UserName;
binding.Security.Message.NegotiateServiceCredential = false;
CalculatorClient CalculatorClient = new CalculatorClient("myBinding");
CalculatorClient.ClientCredentials.ServiceCertificate.
SetDefaultCertificate("Al", StoreLocation.CurrentUser, StoreName.My);
Dim binding As New WSHttpBinding()
binding.Security.Mode = SecurityMode.Message
binding.Security.Message.ClientCredentialType = _
MessageCredentialType.UserName
binding.Security.Message.NegotiateServiceCredential = False
Dim CalculatorClient As New CalculatorClient("myBinding")
CalculatorClient.ClientCredentials.ServiceCertificate. _
SetDefaultCertificate("Al", StoreLocation.CurrentUser, StoreName.My)
注釈
このプロパティを trueに設定するには、クライアントとサービスで WS-Trust と WS-SecureConversation をサポートする必要があります。 このプロパティを false に設定しても、WS-Trust や WS-SecureConversation をサポートする必要はありません。
匿名、ユーザー名、または証明書のクライアント資格情報の種類の場合、このプロパティを false に設定すると、サービス証明書をクライアントで帯域外で使用できなければならず、クライアントが使用するサービスの証明書を指定する必要があることを意味します。
Windows資格情報の場合、このプロパティを false に設定すると、KerberosToken に基づいて認証が行われます。 これには、クライアントとサービスが Kerberos ドメインの一部である必要があります。 このモードは、OASIS から Kerberos トークン プロファイルを実装する SOAP スタックと相互運用できます。 このプロパティを true に設定すると、SPNego が SOAP メッセージを介して交換をトンネルする SOAP ネゴシエーションが発生します。 このモードは相互運用できません。
このプロパティは、サービス資格情報がクライアントとサービスの間で自動的にネゴシエートされるかどうかを示します。 このプロパティが trueされている場合は、このようなネゴシエーションが発生します。 このプロパティが false場合は、サービスとの通信を行う前に、クライアントでサービス資格情報を指定する必要があります。
このプロパティを false に設定し、バインディングがクライアント資格情報の種類として Windows を使用するように構成されている場合、サービス アカウントはサービス プリンシパル名 (SPN) に関連付けられている必要があります。 これを行うには、NETWORK SERVICE アカウントまたは LOCAL SYSTEM アカウントでサービスを実行します。 または、SetSpn.exe ツールを使用して、サービス アカウントの SPN を作成します。 どちらの場合にも、クライアントは <servicePrincipalName> 要素内で、または EndpointAddress コンストラクターを使用して、正しい SPN を使用する必要があります。 詳細については、「サービス ID と認証」を参照してください。