WS_SECURITY_BINDING_PROPERTY_ID enumeration (webservices.h)

Identifies the properties used to specify security binding settings. Security binding settings are present in security bindings that are used, in turn, in a security description.

This enumeration is used within the WS_SECURITY_BINDING_PROPERTY structure, which in turn is used in a WS_SECURITY_BINDING structure. Not all values are applicable to all security bindings. Please see the individual descriptions for a list of security bindings that support the respective property.

Note that the related enum WS_SECURITY_TOKEN_PROPERTY_ID defines the keys for extracting fields from a security token instance. Thus, WS_SECURITY_BINDING_PROPERTY enables specifying security binding settings at channel / listener creation time to influence how a security token is created and used, whereas WS_SECURITY_TOKEN_PROPERTY_ID enables extracting fields out of a security token -- typically a security token from a received message when the channel and security are 'live'.

Syntax

typedef enum {
  WS_SECURITY_BINDING_PROPERTY_REQUIRE_SSL_CLIENT_CERT = 1,
  WS_SECURITY_BINDING_PROPERTY_WINDOWS_INTEGRATED_AUTH_PACKAGE = 2,
  WS_SECURITY_BINDING_PROPERTY_REQUIRE_SERVER_AUTH = 3,
  WS_SECURITY_BINDING_PROPERTY_ALLOW_ANONYMOUS_CLIENTS = 4,
  WS_SECURITY_BINDING_PROPERTY_ALLOWED_IMPERSONATION_LEVEL = 5,
  WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_SCHEME = 6,
  WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_TARGET = 7,
  WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_BASIC_REALM = 8,
  WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_DIGEST_REALM = 9,
  WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_DIGEST_DOMAIN = 10,
  WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_KEY_SIZE = 11,
  WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_KEY_ENTROPY_MODE = 12,
  WS_SECURITY_BINDING_PROPERTY_MESSAGE_PROPERTIES = 13,
  WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_MAX_PENDING_CONTEXTS = 14,
  WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_MAX_ACTIVE_CONTEXTS = 15,
  WS_SECURITY_BINDING_PROPERTY_SECURE_CONVERSATION_VERSION = 16,
  WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_SUPPORT_RENEW = 17,
  WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_RENEWAL_INTERVAL = 18,
  WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_ROLLOVER_INTERVAL = 19,
  WS_SECURITY_BINDING_PROPERTY_CERT_FAILURES_TO_IGNORE = 20,
  WS_SECURITY_BINDING_PROPERTY_DISABLE_CERT_REVOCATION_CHECK = 21,
  WS_SECURITY_BINDING_PROPERTY_DISALLOWED_SECURE_PROTOCOLS = 22,
  WS_SECURITY_BINDING_PROPERTY_CERTIFICATE_VALIDATION_CALLBACK_CONTEXT = 23
} WS_SECURITY_BINDING_PROPERTY_ID;

Constants

 
WS_SECURITY_BINDING_PROPERTY_REQUIRE_SSL_CLIENT_CERT
Value: 1
A BOOL that specifies whether a client certificate should be demanded when using SSL. The
default is FALSE.


This setting may be specified in the security binding properties of a
server-side WS_SSL_TRANSPORT_SECURITY_BINDING.
WS_SECURITY_BINDING_PROPERTY_WINDOWS_INTEGRATED_AUTH_PACKAGE
Value: 2
A WS_WINDOWS_INTEGRATED_AUTH_PACKAGE value that specifies the specific SSP package (among Kerberos, NTLM, SPNEGO) to be used
when performing Windows Integrated Authentication. The default is WS_WINDOWS_INTEGRATED_AUTH_PACKAGE_SPNEGO.


This setting may be specified in the security binding properties of WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING and WS_NAMEDPIPE_SSPI_TRANSPORT_SECURITY_BINDING.
WS_SECURITY_BINDING_PROPERTY_REQUIRE_SERVER_AUTH
Value: 3
A BOOL that specifies whether server authentication is mandatory. Currently, this setting
is applicable only when using Windows Integrated Authentication based
security. Setting this to FALSE is strongly
discouraged since, without server authentication, a malicious party
masquerading as the server cannot be detected.


The default is TRUE when used with WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING and FALSE when used with WS_NAMEDPIPE_SSPI_TRANSPORT_SECURITY_BINDING


If a protocol that does not do server authentication (such as NTLM) is
to be allowed, this property must be set to
FALSE.

This setting may be specified only in the security binding properties
of a client-side WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING and WS_NAMEDPIPE_SSPI_TRANSPORT_SECURITY_BINDING.
WS_SECURITY_BINDING_PROPERTY_ALLOW_ANONYMOUS_CLIENTS
Value: 4
A BOOL that specifies
whether the server should allow clients authenticated anonymously
using Windows Integrated Authentication based security. The default
is FALSE.


This setting may be specified only in the security binding properties
of a server-side WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING and WS_NAMEDPIPE_SSPI_TRANSPORT_SECURITY_BINDING.
WS_SECURITY_BINDING_PROPERTY_ALLOWED_IMPERSONATION_LEVEL
Value: 5
A SECURITY_IMPERSONATION_LEVEL value that specifies the impersonation level the client wants to allow when using Windows
Integrated Authentication to communicate with a service. The default impersonation level is SecurityIdentification.


This setting may be specified in the security binding properties
of WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING, WS_NAMEDPIPE_SSPI_TRANSPORT_SECURITY_BINDING, and WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING.
WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_SCHEME
Value: 6
A ULONG that specifies the HTTP header authentication mode to use. The value specified must be a combination of one or more of
WS_HTTP_HEADER_AUTH_SCHEME_NONE, WS_HTTP_HEADER_AUTH_SCHEME_BASIC,
WS_HTTP_HEADER_AUTH_SCHEME_DIGEST, WS_HTTP_HEADER_AUTH_SCHEME_NTLM or
WS_HTTP_HEADER_AUTH_SCHEME_NEGOTIATE. When setting this property on a binding used to communicate
with an HTTP proxy server, only one scheme should be set, and WS_HTTP_HEADER_AUTH_SCHEME_NONE
may not be used.


Alternatively, this property may be set to WS_HTTP_HEADER_AUTH_SCHEME_PASSPORT.
WS_HTTP_HEADER_AUTH_SCHEME_PASSPORT must not be combined with any other value and cannot be used to
authenticate to an HTTP proxy server.



WS_HTTP_HEADER_AUTH_SCHEME_NONE is only supported on the client. Setting it by itself disables HTTP header authentication.
Setting it in conjunction with other schemes allows the client to fall back to no header authentication when the server does not require it.
Otherwise, if the client specifies multiple authentication schemes and the server requires no authentication the request will fail.


When setting a single authentication scheme, the client will perform the request with that scheme set. If multiple schemes are set,
the client will first probe the server for the supported schemes by sending an unauthenticated blank request. Should the client
and server share more than one supported scheme, the client will prioritize schemes in the following order and pick the first mutually
supported one:



When the scheme is set to WS_HTTP_HEADER_AUTH_SCHEME_NEGOTIATE and Kerberos authentication is negotiated, the Server Principal Name (SPN)
used is derived from the server's DNS name. Even when present WS_ENDPOINT_IDENTITY is ignored. In order for authentication
to succeed, the server must be able to decrypt Kerberos tickets for that SPN.


When the scheme is set to WS_HTTP_HEADER_AUTH_SCHEME_DIGEST or WS_HTTP_HEADER_AUTH_SCHEME_BASIC, then the WS_STRING_WINDOWS_INTEGRATED_AUTH_CREDENTIAL must be used as credential type.

Note: Using "localhost", "127.0.0.1" or similar ways to refer to the local machine as server address may cause failures when using
WS_HTTP_HEADER_AUTH_SCHEME_NTLM or WS_HTTP_HEADER_AUTH_SCHEME_NEGOTIATE. It is recommended to use the machine name instead.


This setting may be specified in the security binding properties of WS_HTTP_HEADER_AUTH_SECURITY_BINDING.
The default is WS_HTTP_HEADER_AUTH_SCHEME_NEGOTIATE.
WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_TARGET
Value: 7
A WS_HTTP_HEADER_AUTH_TARGET value that specifies the HTTP header authentication target to use. This property can be specified
on the client side to indicate whether the http header authentication security binding
is for the target server or the proxy server. Default value is WS_HTTP_HEADER_AUTH_TARGET_SERVICE.


This setting may be specified in the security binding properties of WS_HTTP_HEADER_AUTH_SECURITY_BINDING.
WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_BASIC_REALM
Value: 8
A WS_STRING is used as the realm with the basic HTTP header
authentication scheme.


This setting may be specified in the security binding properties of a
server side WS_HTTP_HEADER_AUTH_SECURITY_BINDING.
WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_DIGEST_REALM
Value: 9
A WS_STRING used as the realm with the digest HTTP
header authentication scheme.


This setting may be specified in the security binding properties of a
server side WS_HTTP_HEADER_AUTH_SECURITY_BINDING.
WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_DIGEST_DOMAIN
Value: 10
A WS_STRING used as the domain name with the digest
HTTP header authentication scheme.


This setting may be specified in the security binding properties of a
server side WS_HTTP_HEADER_AUTH_SECURITY_BINDING.
WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_KEY_SIZE
Value: 11
A ULONG that specifies the key size (in bits) of the security token to be requested from an
issuer. If unspecified, the issuer decides the size. May be used with the WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING.
WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_KEY_ENTROPY_MODE
Value: 12
A WS_SECURITY_KEY_ENTROPY_MODE value that specifies how entropy contributes to the key in issued symmetric key
tokens. The default is WS_SECURITY_KEY_ENTROPY_MODE_COMBINED.
This setting may be specified in the security binding properties of the WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING structure.
WS_SECURITY_BINDING_PROPERTY_MESSAGE_PROPERTIES
Value: 13
The set of WS_MESSAGE_PROPERTIES to be specified
while creating the two messages to
be used for the security token obtaining exchange. If this property
is not specified, the request and reply messages are created with the
default message properties. This setting may be specified in the security binding properties of the WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING structure.
WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_MAX_PENDING_CONTEXTS
Value: 14
A ULONG that specifies the maximum number of pending security contexts on the service that
have not been accepted by the application (or service model) as
channels. The default is 100. The setting may be specified in the security binding properties of the WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING structure.
WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_MAX_ACTIVE_CONTEXTS
Value: 15
A ULONG that specifies the maximum number of active security contexts on the service. The default is 1000.
The setting may be specified in the security binding properties of the WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING structure.
WS_SECURITY_BINDING_PROPERTY_SECURE_CONVERSATION_VERSION
Value: 16
A WS_SECURE_CONVERSATION_VERSION value that specifies the version of WS-SecureConversation to use. The default is WS_SECURE_CONVERSATION_VERSION_FEBRUARY_2005.
This setting may be specified in the security binding properties of the WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING structure.
WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_SUPPORT_RENEW
Value: 17
A BOOL that specifies
whether or not to support the renew operation on established security contexts. On the client, if this is
set to FALSE, instead of renewing the existing security context a new context
will be established. On the server, all incoming renew messages will be
rejected. The default is TRUE.
This setting may be specified in the security binding properties of the WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING structure.
WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_RENEWAL_INTERVAL
Value: 18
A WS_TIMESPAN structure that contains the interval before which a security context must be renewed. On the client it defaults to 10 hours
and denotes the time after which the session is proactively renewed. On the server it defaults to 15 hours
and denotes context lifetime. A server context must be renewed before that limit is reached.
This setting may be specified in the security binding properties of the
WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING structure.
WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_ROLLOVER_INTERVAL
Value: 19
A WS_TIMESPAN structure that contains the time interval for which an old security context token should be accepted after a renewal. The default is 5 minutes.
This tolerance interval is provided to smoothly handle application messages during session renewal.
This setting may be specified in the security binding properties of the
WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING structure.
WS_SECURITY_BINDING_PROPERTY_CERT_FAILURES_TO_IGNORE
Value: 20
A ULONG that specifies a set of certificate verification failures that are ignored by the client so that communication with
the remote endpoint will succeed regardless.
Any combination of the values defined in WS_CERT_FAILURE or 0 may be specified. The default is WS_CERT_FAILURE_REVOCATION_OFFLINE.
This setting may be specified in the security binding properties of the
WS_SSL_TRANSPORT_SECURITY_BINDING structure on the client.


Ignoring certificate verification failures can expose the application to potential security vulnerabilities.
The use of this property should be carefully evaluated.
WS_SECURITY_BINDING_PROPERTY_DISABLE_CERT_REVOCATION_CHECK
Value: 21
A BOOL that specifies the state of certificate revocation checking. When set to TRUE, certificate revocation checking is disabled. The default is FALSE.
This setting may be specified in the security binding properties of the
WS_SSL_TRANSPORT_SECURITY_BINDING structure on the client.


Disabling certificate revocation checking can expose the application to potential security vulnerabilities.
The use of this property should be carefully evaluated.
WS_SECURITY_BINDING_PROPERTY_DISALLOWED_SECURE_PROTOCOLS
Value: 22
WS_SECURITY_BINDING_PROPERTY_CERTIFICATE_VALIDATION_CALLBACK_CONTEXT
Value: 23
A WS_CERTIFICATE_VALIDATION_CALLBACK_CONTEXT structure that specifies a callback which will be invoked for each send request operation. This allows an application to validate the certificate associated with the connection of a request.

Requirements

Requirement Value
Minimum supported client Windows 7 [desktop apps | UWP apps]
Minimum supported server Windows Server 2008 R2 [desktop apps | UWP apps]
Header webservices.h