WS_CERT_SIGNED_SAML_AUTHENTICATOR structure (webservices.h)
The type for specifying a SAML token authenticator based on an array of expected issuer certificates. When an authenticator of this type is used, an incoming SAML token will be accepted if only if it has a valid XML signature created with any one of the specified X.509 certificates. Thus, the specified X.509 certificates represent a 'allow list' of trusted SAML issuers.
No revocation or chain trust checks are done by the runtime on the specified certificates: so, it is up to the application to make sure that the certificates are valid before they are specified in this structure.
As indicated above, the validation of the received SAML is limited to making sure that it was signed correctly by one of the specified certificates. The application may then extract the SAML assertion using WsGetMessageProperty with the key WS_MESSAGE_PROPERTY_SAML_ASSERTION and do additional validator or processing.
Syntax
typedef struct _WS_CERT_SIGNED_SAML_AUTHENTICATOR {
WS_SAML_AUTHENTICATOR authenticator;
const _CERT_CONTEXT **trustedIssuerCerts;
#if ...
struct _CERT_CONTEXT;
ULONG trustedIssuerCertCount;
const _CERT_CONTEXT *decryptionCert;
#else
struct _CERT_CONTEXT;
#endif
WS_VALIDATE_SAML_CALLBACK samlValidator;
void *samlValidatorCallbackState;
} WS_CERT_SIGNED_SAML_AUTHENTICATOR;
Members
authenticator
The base type from which this type and all other SAML authenticator types derive.
trustedIssuerCerts
The array of acceptable SAML issuers, identified by their X.509 certificates. This field is required.
The certificate handles are duplicated and the copies are kept for internal use. The application continues to own the certificate handles supplied here and is responsible for freeing them anytime after the listener creation call that uses this structure returns.
_CERT_CONTEXT
trustedIssuerCertCount
The count of X.509 certificates specified in trustedIssuerCerts.
decryptionCert
The certificate for decrypting incoming SAML tokens.
The certificate handle is duplicated and the copy is kept for internal use. The application continues to own the certificate handle supplied here and is responsible for freeing it anytime after the listener creation call that uses this structure returns.
samlValidator
An optional callback to enable the application to additional validation on the SAML assertion if the signature validation passes.
samlValidatorCallbackState
The state to be passed back when invoking the samlValidator callback.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 7 [desktop apps only] |
Minimum supported server | Windows Server 2008 R2 [desktop apps only] |
Header | webservices.h |