SAMLIdPServer Class
Properties Methods Events Config Settings Errors
The SAMLIdPServer class represents a SAML identity provider.
Syntax
class secureblackbox.SAMLIdPServer
Remarks
The identity provider in the SAML (Security Assertion Markup Language) exchange flow represents the server that issues authentication assertions for single sign-on (SSO).
Requests received by the IdP server from known service providers (SP) are processed automatically, in accordance with known SP metadata and IdP options. If the request is correct, the client is redirected to the IdP for authentication. The authentication algorithm depends on the IdP options and may be reduced to a simple IP check, X.509 certificate authentication, or login credentials check.
Property List
The following is the full list of the properties of the class with short descriptions. Click on the links for further details.
active | Tells whether the server is active and ready to process requests. |
allow_idpsso | Specifies if IdP-initiated Single Sign-On (SSO) is allowed. |
artifact_resolution_service | The location of the artifact resolution service. |
attribute_query_service | The location of the AttributeQuery service. |
auth_form_template | Defines the default authentication template (login page). |
client_auth | Enables or disables certificate-based client authentication. |
encrypt_assertions | Specifies whether to encrypt assertions included into the IdP response. |
encryption_cert_bytes | Returns the raw certificate data in DER format. |
encryption_cert_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
error_origin | Indicates the endpoint where the error originates from. |
error_severity | The severity of the error that happened. |
external_crypto_async_document_id | Specifies an optional document ID for SignAsyncBegin() and SignAsyncEnd() calls. |
external_crypto_custom_params | Custom parameters to be passed to the signing service (uninterpreted). |
external_crypto_data | Additional data to be included in the async state and mirrored back by the requestor. |
external_crypto_external_hash_calculation | Specifies whether the message hash is to be calculated at the external endpoint. |
external_crypto_hash_algorithm | Specifies the request's signature hash algorithm. |
external_crypto_key_id | The ID of the pre-shared key used for DC request authentication. |
external_crypto_key_secret | The pre-shared key used for DC request authentication. |
external_crypto_method | Specifies the asynchronous signing method. |
external_crypto_mode | Specifies the external cryptography mode. |
external_crypto_public_key_algorithm | Provide the public key algorithm here if the certificate is not available on the pre-signing stage. |
fips_mode | Reserved. |
host | Specifies the host address of the IdP server. |
idpsso_page | Specifies the relative URL of the IdP-initiated SSO page. |
idpsso_page_content | The content of the IdP-initiated SSO page. |
login_attempts_limit | The maximum number of login attempts. |
metadata_url | The IdP's metadata location. |
meta_signing_cert_bytes | Returns the raw certificate data in DER format. |
meta_signing_cert_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
offline_mode | Enables the Offline mode. |
port | The listening port number. |
preferred_single_logout_response_binding | Specifies the preferred single logout response binding. |
preferred_single_sign_on_response_binding | Specifies preferred SSO response binding. |
server_cert_count | The number of records in the ServerCert arrays. |
server_cert_bytes | Returns the raw certificate data in DER format. |
server_cert_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
sig_canonicalization_method | The canonicalization method to use in the signature. |
sig_digest_method | The digest method to use. |
sig_method | The signature method to use. |
sign_assertions | Specifies whether the assertions included in IdP responses should be signed. |
signing_cert_bytes | Returns the raw certificate data in DER format. |
signing_cert_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
signing_chain_count | The number of records in the SigningChain arrays. |
signing_chain_bytes | Returns the raw certificate data in DER format. |
signing_chain_handle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
sign_metadata | Specifies whether the IdP's metadata should be signed. |
sign_response | Specifies whether the IdP responses should be signed. |
single_logout_service | The URL of the single logout service. |
single_logout_service_bindings | Defines single logout service bindings. |
single_sign_on_service | The URL of the single logout service. |
single_sign_on_service_bindings | Defines single sign-on service bindings. |
socket_incoming_speed_limit | The maximum number of bytes to read from the socket, per second. |
socket_local_address | The local network interface to bind the socket to. |
socket_local_port | The local port number to bind the socket to. |
socket_outgoing_speed_limit | The maximum number of bytes to write to the socket, per second. |
socket_timeout | The maximum period of waiting, in milliseconds, after which the socket operation is considered unsuccessful. |
socket_use_ipv6 | Enables or disables IP protocol version 6. |
tls_auto_validate_certificates | Specifies whether server-side TLS certificates should be validated automatically using internal validation rules. |
tls_base_configuration | Selects the base configuration for the TLS settings. |
tls_ciphersuites | A list of ciphersuites separated with commas or semicolons. |
tls_ec_curves | Defines the elliptic curves to enable. |
tls_extensions | Provides access to TLS extensions. |
tls_force_resume_if_destination_changes | Whether to force TLS session resumption when the destination address changes. |
tls_pre_shared_identity | Defines the identity used when the PSK (Pre-Shared Key) key-exchange mechanism is negotiated. |
tls_pre_shared_key | Contains the pre-shared key for the PSK (Pre-Shared Key) key-exchange mechanism, encoded with base16. |
tls_pre_shared_key_ciphersuite | Defines the ciphersuite used for PSK (Pre-Shared Key) negotiation. |
tls_renegotiation_attack_prevention_mode | Selects the renegotiation attack prevention mechanism. |
tls_revocation_check | Specifies the kind(s) of revocation check to perform. |
tls_ssl_options | Various SSL (TLS) protocol options, set of cssloExpectShutdownMessage 0x001 Wait for the close-notify message when shutting down the connection cssloOpenSSLDTLSWorkaround 0x002 (DEPRECATED) Use a DTLS version workaround when talking to very old OpenSSL versions cssloDisableKexLengthAlignment 0x004 Do not align the client-side PMS by the RSA modulus size. |
tls_tls_mode | Specifies the TLS mode to use. |
tls_use_extended_master_secret | Enables the Extended Master Secret Extension, as defined in RFC 7627. |
tls_use_session_resumption | Enables or disables the TLS session resumption capability. |
tls_versions | The SSL/TLS versions to enable by default. |
url | Specifies the base URL of this IdP server. |
Method List
The following is the full list of the methods of the class with short descriptions. Click on the links for further details.
add_id_psso_link | Adds an SSO URL to the list. |
add_user | Registers known user credentials. |
add_user_with_email | Registers known user credentials. |
clear_users | Clears the database of registered users. |
config | Sets or retrieves a configuration setting. |
do_action | Performs an additional action. |
get_provider_property | Returns the value of a custom provider property. |
load_sp_metadata | Loads the metadata required for information exchange with the service provider. |
process_generic_request | Processes a generic HTTP SAML request. |
remove_id_psso_link | Removes the specified SSO link. |
remove_sp | Removes an SP from the list of trusted service providers. |
remove_user | Unregister user credentials. |
save_metadata | Saves the IdP configuration to a metadata file. |
set_provider_property | Sets the value of a custom provider property. |
start | Starts the IdP server. |
stop | Stops the IdP server. |
Event List
The following is the full list of the events fired by the class with short descriptions. Click on the links for further details.
on_accept | Reports an incoming connection. |
on_assertion_created | Notifies the application about the creation of a new assertion. |
on_assertion_received | Notifies the application about the receipt of an assertion. |
on_connect | Reports an accepted connection. |
on_disconnect | Fires to report a disconnected client. |
on_error | Information about errors during data delivery. |
on_external_sign | Handles remote or external signing initiated by the server protocol. |
on_metadata_request | Notifies the application about the metadata request. |
on_notification | This event notifies the application about an underlying control flow event. |
on_session_closed | This event is fired when the IdP server has closed a session. |
on_session_established | This event is fired when a new session has been established. |
on_verify_credentials | Passes user credentials to the application for verification. |
Config Settings
The following is a list of config settings for the class with short descriptions. Click on the links for further details.
AssertionsOneTimeUse | Adds a one-time use condition to the assertion. |
AssertionsTTL | The assertions time-to-live value. |
BoundPort | The port that was bound by the server. |
DefaultNameIDPolicyFormat | Default name ID policy format. |
DefaultPassiveAuthnContextClassRef | The default passive authentication context class. |
DualStack | Allows the use of ip4 and ip6 simultaneously. |
HandshakeTimeout | The HTTPS handshake timeout. |
MaxIssueInstantTimeDiff | The maximum issue-instant time delta. |
NotBeforeTimeout | The 'not-before' timeout to use. |
PortRangeFrom | The lower bound of allowed port scope to listen on. |
PortRangeTo | The higher bound of allowed port scope to listen on. |
ServerName | Specifies the server name for the created responses. |
SessionTimeout | The HTTP session timeout. |
SessionTTL | The SAML session time-to-live value. |
SubjectConfirmationMethod | Subject confirmation method. |
TempPath | Path for storing temporary files. |
CheckKeyIntegrityBeforeUse | Enables or disable private key integrity check before use. |
CookieCaching | Specifies whether a cookie cache should be used for HTTP(S) transports. |
Cookies | Gets or sets local cookies for the class. |
DefDeriveKeyIterations | Specifies the default key derivation algorithm iteration count. |
EnableClientSideSSLFFDHE | Enables or disables finite field DHE key exchange support in TLS clients. |
GlobalCookies | Gets or sets global cookies for all the HTTP transports. |
HttpUserAgent | Specifies the user agent name to be used by all HTTP clients. |
LogDestination | Specifies the debug log destination. |
LogDetails | Specifies the debug log details to dump. |
LogFile | Specifies the debug log filename. |
LogFilters | Specifies the debug log filters. |
LogFlushMode | Specifies the log flush mode. |
LogLevel | Specifies the debug log level. |
LogMaxEventCount | Specifies the maximum number of events to cache before further action is taken. |
LogRotationMode | Specifies the log rotation mode. |
MaxASN1BufferLength | Specifies the maximal allowed length for ASN.1 primitive tag data. |
MaxASN1TreeDepth | Specifies the maximal depth for processed ASN.1 trees. |
OCSPHashAlgorithm | Specifies the hash algorithm to be used to identify certificates in OCSP requests. |
StaticDNS | Specifies whether static DNS rules should be used. |
StaticIPAddress[domain] | Gets or sets an IP address for the specified domain name. |
StaticIPAddresses | Gets or sets all the static DNS rules. |
Tag | Allows to store any custom data. |
TLSSessionGroup | Specifies the group name of TLS sessions to be used for session resumption. |
TLSSessionLifetime | Specifies lifetime in seconds of the cached TLS session. |
TLSSessionPurgeInterval | Specifies how often the session cache should remove the expired TLS sessions. |
UseOwnDNSResolver | Specifies whether the client classes should use own DNS resolver. |
UseSharedSystemStorages | Specifies whether the validation engine should use a global per-process copy of the system certificate stores. |
UseSystemOAEPAndPSS | Enforces or disables the use of system-driven RSA OAEP and PSS computations. |
UseSystemRandom | Enables or disables the use of the OS PRNG. |
active Property
Tells whether the server is active and ready to process requests.
Syntax
def get_active() -> bool: ...
active = property(get_active, None)
Default Value
FALSE
Remarks
This property indicates whether the IdP server is in an active state.
This property is read-only.
allow_idpsso Property
Specifies if IdP-initiated Single Sign-On (SSO) is allowed.
Syntax
def get_allow_idpsso() -> bool: ... def set_allow_idpsso(value: bool) -> None: ...
allow_idpsso = property(get_allow_idpsso, set_allow_idpsso)
Default Value
FALSE
Remarks
Set this property to true to allow IdP-initiated Single Sign-Ons. Use add_id_psso_link method to add sign-on URLs.
artifact_resolution_service Property
The location of the artifact resolution service.
Syntax
def get_artifact_resolution_service() -> str: ... def set_artifact_resolution_service(value: str) -> None: ...
artifact_resolution_service = property(get_artifact_resolution_service, set_artifact_resolution_service)
Default Value
"/idp/ArtifactResolutionService"
Remarks
Use this property to specify the location of the artifact resolution service of this Identity Provider (IdP).
attribute_query_service Property
The location of the AttributeQuery service.
Syntax
def get_attribute_query_service() -> str: ... def set_attribute_query_service(value: str) -> None: ...
attribute_query_service = property(get_attribute_query_service, set_attribute_query_service)
Default Value
"/idp/AttributeQueryService"
Remarks
Use this property to specify the relative URL of the AttributeQuery service provided by this Identity Provider (IdP).
auth_form_template Property
Defines the default authentication template (login page).
Syntax
def get_auth_form_template() -> str: ... def set_auth_form_template(value: str) -> None: ...
auth_form_template = property(get_auth_form_template, set_auth_form_template)
Default Value
""
Remarks
This property contains the HTML code of the authentication form. You can use it to control the appearance of the login page.
client_auth Property
Enables or disables certificate-based client authentication.
Syntax
def get_client_auth() -> int: ... def set_client_auth(value: int) -> None: ...
client_auth = property(get_client_auth, set_client_auth)
Default Value
0
Remarks
Set this property to true to tune up the client authentication type: ccatNoAuth = 0; ccatRequestCert = 1; ccatRequireCert = 2;
encrypt_assertions Property
Specifies whether to encrypt assertions included into the IdP response.
Syntax
def get_encrypt_assertions() -> bool: ... def set_encrypt_assertions(value: bool) -> None: ...
encrypt_assertions = property(get_encrypt_assertions, set_encrypt_assertions)
Default Value
FALSE
Remarks
Set this property to True to force the class to encrypt the assertions included into the server's response.
encryption_cert_bytes Property
Returns the raw certificate data in DER format.
Syntax
def get_encryption_cert_bytes() -> bytes: ...
encryption_cert_bytes = property(get_encryption_cert_bytes, None)
Remarks
Returns the raw certificate data in DER format.
This property is read-only.
encryption_cert_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_encryption_cert_handle() -> int: ... def set_encryption_cert_handle(value: int) -> None: ...
encryption_cert_handle = property(get_encryption_cert_handle, set_encryption_cert_handle)
Default Value
0
Remarks
Allows to get or set a 'handle', a unique identifier of the underlying property object. Use this property to assign objects of the same type in a quicker manner, without copying them fieldwise.
When you pass a handle of one object to another, the source object is copied to the destination rather than assigned. It is safe to get rid of the original object
after such operation.
pdfSigner.setSigningCertHandle(certMgr.getCertHandle());
error_origin Property
Indicates the endpoint where the error originates from.
Syntax
def get_error_origin() -> int: ... def set_error_origin(value: int) -> None: ...
error_origin = property(get_error_origin, set_error_origin)
Default Value
0
Remarks
Use this property to establish whether the reported error originates from a local or remote endpoint.
eoLocal | 0 | |
eoRemote | 1 |
error_severity Property
The severity of the error that happened.
Syntax
def get_error_severity() -> int: ... def set_error_severity(value: int) -> None: ...
error_severity = property(get_error_severity, set_error_severity)
Default Value
1
Remarks
Use this property to establish whether the error is fatal.
esWarning | 1 | |
esFatal | 2 |
external_crypto_async_document_id Property
Specifies an optional document ID for SignAsyncBegin() and SignAsyncEnd() calls.
Syntax
def get_external_crypto_async_document_id() -> str: ... def set_external_crypto_async_document_id(value: str) -> None: ...
external_crypto_async_document_id = property(get_external_crypto_async_document_id, set_external_crypto_async_document_id)
Default Value
""
Remarks
Specifies an optional document ID for SignAsyncBegin() and SignAsyncEnd() calls.
Use this property when working with multi-signature DCAuth requests and responses to uniquely identify documents signed within a larger batch. On the completion stage, this value helps the signing component identify the correct signature in the returned batch of responses.
If using batched requests, make sure to set this property to the same value on both the pre-signing (SignAsyncBegin) and completion (SignAsyncEnd) stages.
external_crypto_custom_params Property
Custom parameters to be passed to the signing service (uninterpreted).
Syntax
def get_external_crypto_custom_params() -> str: ... def set_external_crypto_custom_params(value: str) -> None: ...
external_crypto_custom_params = property(get_external_crypto_custom_params, set_external_crypto_custom_params)
Default Value
""
Remarks
Custom parameters to be passed to the signing service (uninterpreted).
external_crypto_data Property
Additional data to be included in the async state and mirrored back by the requestor.
Syntax
def get_external_crypto_data() -> str: ... def set_external_crypto_data(value: str) -> None: ...
external_crypto_data = property(get_external_crypto_data, set_external_crypto_data)
Default Value
""
Remarks
Additional data to be included in the async state and mirrored back by the requestor.
external_crypto_external_hash_calculation Property
Specifies whether the message hash is to be calculated at the external endpoint.
Syntax
def get_external_crypto_external_hash_calculation() -> bool: ... def set_external_crypto_external_hash_calculation(value: bool) -> None: ...
external_crypto_external_hash_calculation = property(get_external_crypto_external_hash_calculation, set_external_crypto_external_hash_calculation)
Default Value
FALSE
Remarks
Specifies whether the message hash is to be calculated at the external endpoint. Please note that this mode is not supported by the DCAuth class.
If set to true, the class will pass a few kilobytes of to-be-signed data from the document to the OnExternalSign event. This only applies when SignExternal() is called.
external_crypto_hash_algorithm Property
Specifies the request's signature hash algorithm.
Syntax
def get_external_crypto_hash_algorithm() -> str: ... def set_external_crypto_hash_algorithm(value: str) -> None: ...
external_crypto_hash_algorithm = property(get_external_crypto_hash_algorithm, set_external_crypto_hash_algorithm)
Default Value
"SHA256"
Remarks
Specifies the request's signature hash algorithm.
SB_HASH_ALGORITHM_SHA1 | SHA1 | |
SB_HASH_ALGORITHM_SHA224 | SHA224 | |
SB_HASH_ALGORITHM_SHA256 | SHA256 | |
SB_HASH_ALGORITHM_SHA384 | SHA384 | |
SB_HASH_ALGORITHM_SHA512 | SHA512 | |
SB_HASH_ALGORITHM_MD2 | MD2 | |
SB_HASH_ALGORITHM_MD4 | MD4 | |
SB_HASH_ALGORITHM_MD5 | MD5 | |
SB_HASH_ALGORITHM_RIPEMD160 | RIPEMD160 | |
SB_HASH_ALGORITHM_CRC32 | CRC32 | |
SB_HASH_ALGORITHM_SSL3 | SSL3 | |
SB_HASH_ALGORITHM_GOST_R3411_1994 | GOST1994 | |
SB_HASH_ALGORITHM_WHIRLPOOL | WHIRLPOOL | |
SB_HASH_ALGORITHM_POLY1305 | POLY1305 | |
SB_HASH_ALGORITHM_SHA3_224 | SHA3_224 | |
SB_HASH_ALGORITHM_SHA3_256 | SHA3_256 | |
SB_HASH_ALGORITHM_SHA3_384 | SHA3_384 | |
SB_HASH_ALGORITHM_SHA3_512 | SHA3_512 | |
SB_HASH_ALGORITHM_BLAKE2S_128 | BLAKE2S_128 | |
SB_HASH_ALGORITHM_BLAKE2S_160 | BLAKE2S_160 | |
SB_HASH_ALGORITHM_BLAKE2S_224 | BLAKE2S_224 | |
SB_HASH_ALGORITHM_BLAKE2S_256 | BLAKE2S_256 | |
SB_HASH_ALGORITHM_BLAKE2B_160 | BLAKE2B_160 | |
SB_HASH_ALGORITHM_BLAKE2B_256 | BLAKE2B_256 | |
SB_HASH_ALGORITHM_BLAKE2B_384 | BLAKE2B_384 | |
SB_HASH_ALGORITHM_BLAKE2B_512 | BLAKE2B_512 | |
SB_HASH_ALGORITHM_SHAKE_128 | SHAKE_128 | |
SB_HASH_ALGORITHM_SHAKE_256 | SHAKE_256 | |
SB_HASH_ALGORITHM_SHAKE_128_LEN | SHAKE_128_LEN | |
SB_HASH_ALGORITHM_SHAKE_256_LEN | SHAKE_256_LEN |
external_crypto_key_id Property
The ID of the pre-shared key used for DC request authentication.
Syntax
def get_external_crypto_key_id() -> str: ... def set_external_crypto_key_id(value: str) -> None: ...
external_crypto_key_id = property(get_external_crypto_key_id, set_external_crypto_key_id)
Default Value
""
Remarks
The ID of the pre-shared key used for DC request authentication.
Asynchronous DCAuth-driven communication requires that parties authenticate each other with a secret pre-shared cryptographic key. This provides an extra protection layer for the protocol and diminishes the risk of the private key becoming abused by foreign parties. Use this property to provide the pre-shared key identifier, and use external_crypto_key_secret to pass the key itself.
The same KeyID/KeySecret pair should be used on the DCAuth side for the signing requests to be accepted.
Note: The KeyID/KeySecret scheme is very similar to the AuthKey scheme used in various Cloud service providers to authenticate users.
Example:
signer.ExternalCrypto.KeyID = "MainSigningKey";
signer.ExternalCrypto.KeySecret = "abcdef0123456789";
external_crypto_key_secret Property
The pre-shared key used for DC request authentication.
Syntax
def get_external_crypto_key_secret() -> str: ... def set_external_crypto_key_secret(value: str) -> None: ...
external_crypto_key_secret = property(get_external_crypto_key_secret, set_external_crypto_key_secret)
Default Value
""
Remarks
The pre-shared key used for DC request authentication. This key must be set and match the key used by the DCAuth counterpart for the scheme to work.
Read more about configuring authentication in the external_crypto_key_id topic.
external_crypto_method Property
Specifies the asynchronous signing method.
Syntax
def get_external_crypto_method() -> int: ... def set_external_crypto_method(value: int) -> None: ...
external_crypto_method = property(get_external_crypto_method, set_external_crypto_method)
Default Value
0
Remarks
Specifies the asynchronous signing method. This is typically defined by the DC server capabilities and setup.
Available options:
asmdPKCS1 | 0 |
asmdPKCS7 | 1 |
external_crypto_mode Property
Specifies the external cryptography mode.
Syntax
def get_external_crypto_mode() -> int: ... def set_external_crypto_mode(value: int) -> None: ...
external_crypto_mode = property(get_external_crypto_mode, set_external_crypto_mode)
Default Value
0
Remarks
Specifies the external cryptography mode.
Available options:
ecmDefault | The default value (0) |
ecmDisabled | Do not use DC or external signing (1) |
ecmGeneric | Generic external signing with the OnExternalSign event (2) |
ecmDCAuth | DCAuth signing (3) |
ecmDCAuthJSON | DCAuth signing in JSON format (4) |
external_crypto_public_key_algorithm Property
Provide the public key algorithm here if the certificate is not available on the pre-signing stage.
Syntax
def get_external_crypto_public_key_algorithm() -> str: ... def set_external_crypto_public_key_algorithm(value: str) -> None: ...
external_crypto_public_key_algorithm = property(get_external_crypto_public_key_algorithm, set_external_crypto_public_key_algorithm)
Default Value
""
Remarks
Provide the public key algorithm here if the certificate is not available on the pre-signing stage.
SB_CERT_ALGORITHM_ID_RSA_ENCRYPTION | rsaEncryption | |
SB_CERT_ALGORITHM_MD2_RSA_ENCRYPTION | md2withRSAEncryption | |
SB_CERT_ALGORITHM_MD5_RSA_ENCRYPTION | md5withRSAEncryption | |
SB_CERT_ALGORITHM_SHA1_RSA_ENCRYPTION | sha1withRSAEncryption | |
SB_CERT_ALGORITHM_ID_DSA | id-dsa | |
SB_CERT_ALGORITHM_ID_DSA_SHA1 | id-dsa-with-sha1 | |
SB_CERT_ALGORITHM_DH_PUBLIC | dhpublicnumber | |
SB_CERT_ALGORITHM_SHA224_RSA_ENCRYPTION | sha224WithRSAEncryption | |
SB_CERT_ALGORITHM_SHA256_RSA_ENCRYPTION | sha256WithRSAEncryption | |
SB_CERT_ALGORITHM_SHA384_RSA_ENCRYPTION | sha384WithRSAEncryption | |
SB_CERT_ALGORITHM_SHA512_RSA_ENCRYPTION | sha512WithRSAEncryption | |
SB_CERT_ALGORITHM_ID_RSAPSS | id-RSASSA-PSS | |
SB_CERT_ALGORITHM_ID_RSAOAEP | id-RSAES-OAEP | |
SB_CERT_ALGORITHM_RSASIGNATURE_RIPEMD160 | ripemd160withRSA | |
SB_CERT_ALGORITHM_ID_ELGAMAL | elGamal | |
SB_CERT_ALGORITHM_SHA1_ECDSA | ecdsa-with-SHA1 | |
SB_CERT_ALGORITHM_RECOMMENDED_ECDSA | ecdsa-recommended | |
SB_CERT_ALGORITHM_SHA224_ECDSA | ecdsa-with-SHA224 | |
SB_CERT_ALGORITHM_SHA256_ECDSA | ecdsa-with-SHA256 | |
SB_CERT_ALGORITHM_SHA384_ECDSA | ecdsa-with-SHA384 | |
SB_CERT_ALGORITHM_SHA512_ECDSA | ecdsa-with-SHA512 | |
SB_CERT_ALGORITHM_EC | id-ecPublicKey | |
SB_CERT_ALGORITHM_SPECIFIED_ECDSA | ecdsa-specified | |
SB_CERT_ALGORITHM_GOST_R3410_1994 | id-GostR3410-94 | |
SB_CERT_ALGORITHM_GOST_R3410_2001 | id-GostR3410-2001 | |
SB_CERT_ALGORITHM_GOST_R3411_WITH_R3410_1994 | id-GostR3411-94-with-GostR3410-94 | |
SB_CERT_ALGORITHM_GOST_R3411_WITH_R3410_2001 | id-GostR3411-94-with-GostR3410-2001 | |
SB_CERT_ALGORITHM_SHA1_ECDSA_PLAIN | ecdsa-plain-SHA1 | |
SB_CERT_ALGORITHM_SHA224_ECDSA_PLAIN | ecdsa-plain-SHA224 | |
SB_CERT_ALGORITHM_SHA256_ECDSA_PLAIN | ecdsa-plain-SHA256 | |
SB_CERT_ALGORITHM_SHA384_ECDSA_PLAIN | ecdsa-plain-SHA384 | |
SB_CERT_ALGORITHM_SHA512_ECDSA_PLAIN | ecdsa-plain-SHA512 | |
SB_CERT_ALGORITHM_RIPEMD160_ECDSA_PLAIN | ecdsa-plain-RIPEMD160 | |
SB_CERT_ALGORITHM_WHIRLPOOL_RSA_ENCRYPTION | whirlpoolWithRSAEncryption | |
SB_CERT_ALGORITHM_ID_DSA_SHA224 | id-dsa-with-sha224 | |
SB_CERT_ALGORITHM_ID_DSA_SHA256 | id-dsa-with-sha256 | |
SB_CERT_ALGORITHM_SHA3_224_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-sha3-224 | |
SB_CERT_ALGORITHM_SHA3_256_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-sha3-256 | |
SB_CERT_ALGORITHM_SHA3_384_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-sha3-384 | |
SB_CERT_ALGORITHM_SHA3_512_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-sha3-512 | |
SB_CERT_ALGORITHM_SHA3_224_ECDSA | id-ecdsa-with-sha3-224 | |
SB_CERT_ALGORITHM_SHA3_256_ECDSA | id-ecdsa-with-sha3-256 | |
SB_CERT_ALGORITHM_SHA3_384_ECDSA | id-ecdsa-with-sha3-384 | |
SB_CERT_ALGORITHM_SHA3_512_ECDSA | id-ecdsa-with-sha3-512 | |
SB_CERT_ALGORITHM_SHA3_224_ECDSA_PLAIN | id-ecdsa-plain-with-sha3-224 | |
SB_CERT_ALGORITHM_SHA3_256_ECDSA_PLAIN | id-ecdsa-plain-with-sha3-256 | |
SB_CERT_ALGORITHM_SHA3_384_ECDSA_PLAIN | id-ecdsa-plain-with-sha3-384 | |
SB_CERT_ALGORITHM_SHA3_512_ECDSA_PLAIN | id-ecdsa-plain-with-sha3-512 | |
SB_CERT_ALGORITHM_ID_DSA_SHA3_224 | id-dsa-with-sha3-224 | |
SB_CERT_ALGORITHM_ID_DSA_SHA3_256 | id-dsa-with-sha3-256 | |
SB_CERT_ALGORITHM_BLAKE2S_128_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2s128 | |
SB_CERT_ALGORITHM_BLAKE2S_160_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2s160 | |
SB_CERT_ALGORITHM_BLAKE2S_224_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2s224 | |
SB_CERT_ALGORITHM_BLAKE2S_256_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2s256 | |
SB_CERT_ALGORITHM_BLAKE2B_160_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2b160 | |
SB_CERT_ALGORITHM_BLAKE2B_256_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2b256 | |
SB_CERT_ALGORITHM_BLAKE2B_384_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2b384 | |
SB_CERT_ALGORITHM_BLAKE2B_512_RSA_ENCRYPTION | id-rsassa-pkcs1-v1_5-with-blake2b512 | |
SB_CERT_ALGORITHM_BLAKE2S_128_ECDSA | id-ecdsa-with-blake2s128 | |
SB_CERT_ALGORITHM_BLAKE2S_160_ECDSA | id-ecdsa-with-blake2s160 | |
SB_CERT_ALGORITHM_BLAKE2S_224_ECDSA | id-ecdsa-with-blake2s224 | |
SB_CERT_ALGORITHM_BLAKE2S_256_ECDSA | id-ecdsa-with-blake2s256 | |
SB_CERT_ALGORITHM_BLAKE2B_160_ECDSA | id-ecdsa-with-blake2b160 | |
SB_CERT_ALGORITHM_BLAKE2B_256_ECDSA | id-ecdsa-with-blake2b256 | |
SB_CERT_ALGORITHM_BLAKE2B_384_ECDSA | id-ecdsa-with-blake2b384 | |
SB_CERT_ALGORITHM_BLAKE2B_512_ECDSA | id-ecdsa-with-blake2b512 | |
SB_CERT_ALGORITHM_BLAKE2S_128_ECDSA_PLAIN | id-ecdsa-plain-with-blake2s128 | |
SB_CERT_ALGORITHM_BLAKE2S_160_ECDSA_PLAIN | id-ecdsa-plain-with-blake2s160 | |
SB_CERT_ALGORITHM_BLAKE2S_224_ECDSA_PLAIN | id-ecdsa-plain-with-blake2s224 | |
SB_CERT_ALGORITHM_BLAKE2S_256_ECDSA_PLAIN | id-ecdsa-plain-with-blake2s256 | |
SB_CERT_ALGORITHM_BLAKE2B_160_ECDSA_PLAIN | id-ecdsa-plain-with-blake2b160 | |
SB_CERT_ALGORITHM_BLAKE2B_256_ECDSA_PLAIN | id-ecdsa-plain-with-blake2b256 | |
SB_CERT_ALGORITHM_BLAKE2B_384_ECDSA_PLAIN | id-ecdsa-plain-with-blake2b384 | |
SB_CERT_ALGORITHM_BLAKE2B_512_ECDSA_PLAIN | id-ecdsa-plain-with-blake2b512 | |
SB_CERT_ALGORITHM_ID_DSA_BLAKE2S_224 | id-dsa-with-blake2s224 | |
SB_CERT_ALGORITHM_ID_DSA_BLAKE2S_256 | id-dsa-with-blake2s256 | |
SB_CERT_ALGORITHM_EDDSA_ED25519 | id-Ed25519 | |
SB_CERT_ALGORITHM_EDDSA_ED448 | id-Ed448 | |
SB_CERT_ALGORITHM_EDDSA_ED25519_PH | id-Ed25519ph | |
SB_CERT_ALGORITHM_EDDSA_ED448_PH | id-Ed448ph | |
SB_CERT_ALGORITHM_EDDSA | id-EdDSA | |
SB_CERT_ALGORITHM_EDDSA_SIGNATURE | id-EdDSA-sig |
fips_mode Property
Reserved.
Syntax
def get_fips_mode() -> bool: ... def set_fips_mode(value: bool) -> None: ...
fips_mode = property(get_fips_mode, set_fips_mode)
Default Value
FALSE
Remarks
This property is reserved for future use.
host Property
Specifies the host address of the IdP server.
Syntax
def get_host() -> str: ... def set_host(value: str) -> None: ...
host = property(get_host, set_host)
Default Value
""
Remarks
Use this property to specify the IP address on which to listen to incoming connections. To specify the listening port number, use port.
idpsso_page Property
Specifies the relative URL of the IdP-initiated SSO page.
Syntax
def get_idpsso_page() -> str: ... def set_idpsso_page(value: str) -> None: ...
idpsso_page = property(get_idpsso_page, set_idpsso_page)
Default Value
"/idpsso"
Remarks
Use this property to specify the address of the Single Sign-On (SSO) page initiated by this Identity Provider (IdP).
idpsso_page_content Property
The content of the IdP-initiated SSO page.
Syntax
def get_idpsso_page_content() -> str: ... def set_idpsso_page_content(value: str) -> None: ...
idpsso_page_content = property(get_idpsso_page_content, set_idpsso_page_content)
Default Value
""
Remarks
Use this property to specify the content of the Single Sign-On (SSO) page initiated by this Identity Provider (IdP).
login_attempts_limit Property
The maximum number of login attempts.
Syntax
def get_login_attempts_limit() -> int: ... def set_login_attempts_limit(value: int) -> None: ...
login_attempts_limit = property(get_login_attempts_limit, set_login_attempts_limit)
Default Value
3
Remarks
Use this property to set the maximum number of login attempts.
metadata_url Property
The IdP's metadata location.
Syntax
def get_metadata_url() -> str: ... def set_metadata_url(value: str) -> None: ...
metadata_url = property(get_metadata_url, set_metadata_url)
Default Value
"/idp/metadata"
Remarks
This property specifies the metadata URL of this Identity Provider (IdP).
meta_signing_cert_bytes Property
Returns the raw certificate data in DER format.
Syntax
def get_meta_signing_cert_bytes() -> bytes: ...
meta_signing_cert_bytes = property(get_meta_signing_cert_bytes, None)
Remarks
Returns the raw certificate data in DER format.
This property is read-only.
meta_signing_cert_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_meta_signing_cert_handle() -> int: ... def set_meta_signing_cert_handle(value: int) -> None: ...
meta_signing_cert_handle = property(get_meta_signing_cert_handle, set_meta_signing_cert_handle)
Default Value
0
Remarks
Allows to get or set a 'handle', a unique identifier of the underlying property object. Use this property to assign objects of the same type in a quicker manner, without copying them fieldwise.
When you pass a handle of one object to another, the source object is copied to the destination rather than assigned. It is safe to get rid of the original object
after such operation.
pdfSigner.setSigningCertHandle(certMgr.getCertHandle());
offline_mode Property
Enables the Offline mode.
Syntax
def get_offline_mode() -> bool: ... def set_offline_mode(value: bool) -> None: ...
offline_mode = property(get_offline_mode, set_offline_mode)
Default Value
FALSE
Remarks
In the Offline mode the server does not open the listening port. Instead, it expects all incoming requests to be provided via the process_generic_request calls.
The Offline mode is a handy mechanism for attaching the server to external web engines, such as IIS or Tomcat. It lets you leave the HTTP matters to the engine, and only be responsible for handling the actual SAML requests.
port Property
The listening port number.
Syntax
def get_port() -> int: ... def set_port(value: int) -> None: ...
port = property(get_port, set_port)
Default Value
80
Remarks
Use this property to specify the port number on which the IdP server should listen for incoming connections. To specify server's IP address use host.
preferred_single_logout_response_binding Property
Specifies the preferred single logout response binding.
Syntax
def get_preferred_single_logout_response_binding() -> int: ... def set_preferred_single_logout_response_binding(value: int) -> None: ...
preferred_single_logout_response_binding = property(get_preferred_single_logout_response_binding, set_preferred_single_logout_response_binding)
Default Value
3
Remarks
This value is used by the Identity Provider (IdP) when the default binding is not specified in Service Provider's (SP) metadata file.
The binding is the mechanism of message exchange used by SAML requestors and responders.
csbtNone | 0 | |
csbtSOAP | 1 | |
csbtPAOS | 2 | |
csbtRedirect | 3 | |
csbtPOST | 4 | |
csbtArtifact | 5 |
preferred_single_sign_on_response_binding Property
Specifies preferred SSO response binding.
Syntax
def get_preferred_single_sign_on_response_binding() -> int: ... def set_preferred_single_sign_on_response_binding(value: int) -> None: ...
preferred_single_sign_on_response_binding = property(get_preferred_single_sign_on_response_binding, set_preferred_single_sign_on_response_binding)
Default Value
4
Remarks
This value is used by the Identity Provider (IdP) when the default binding is not specified in Service Provider's (SP) metadata file.
The binding is the mechanism of message exchange used by SAML requestors and responders.
csbtNone | 0 | |
csbtSOAP | 1 | |
csbtPAOS | 2 | |
csbtRedirect | 3 | |
csbtPOST | 4 | |
csbtArtifact | 5 |
server_cert_count Property
The number of records in the ServerCert arrays.
Syntax
def get_server_cert_count() -> int: ... def set_server_cert_count(value: int) -> None: ...
server_cert_count = property(get_server_cert_count, set_server_cert_count)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at server_cert_count - 1.server_cert_bytes Property
Returns the raw certificate data in DER format.
Syntax
def get_server_cert_bytes(server_cert_index: int) -> bytes: ...
Remarks
Returns the raw certificate data in DER format.
The server_cert_index parameter specifies the index of the item in the array. The size of the array is controlled by the server_cert_count property.
This property is read-only.
server_cert_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_server_cert_handle(server_cert_index: int) -> int: ... def set_server_cert_handle(server_cert_index: int, value: int) -> None: ...
Default Value
0
Remarks
Allows to get or set a 'handle', a unique identifier of the underlying property object. Use this property to assign objects of the same type in a quicker manner, without copying them fieldwise.
When you pass a handle of one object to another, the source object is copied to the destination rather than assigned. It is safe to get rid of the original object
after such operation.
pdfSigner.setSigningCertHandle(certMgr.getCertHandle());
The server_cert_index parameter specifies the index of the item in the array. The size of the array is controlled by the server_cert_count property.
sig_canonicalization_method Property
The canonicalization method to use in the signature.
Syntax
def get_sig_canonicalization_method() -> str: ... def set_sig_canonicalization_method(value: str) -> None: ...
sig_canonicalization_method = property(get_sig_canonicalization_method, set_sig_canonicalization_method)
Default Value
""
Remarks
The URI of the canonicalization method to use in the signature (e.g. http://www.w3.org/TR/xml-exc-c14n/)
sig_digest_method Property
The digest method to use.
Syntax
def get_sig_digest_method() -> str: ... def set_sig_digest_method(value: str) -> None: ...
sig_digest_method = property(get_sig_digest_method, set_sig_digest_method)
Default Value
""
Remarks
The URI of the digest method to use for signing, as defined in XMLDSIG or XMLENC: http://www.w3.org/2000/09/xmldsig#sha256.
sig_method Property
The signature method to use.
Syntax
def get_sig_method() -> str: ... def set_sig_method(value: str) -> None: ...
sig_method = property(get_sig_method, set_sig_method)
Default Value
""
Remarks
The URI specifying the signature method to use for signing, for example http://www.w3.org/2001/04/xmldsig-more#rsa-sha256.
sign_assertions Property
Specifies whether the assertions included in IdP responses should be signed.
Syntax
def get_sign_assertions() -> bool: ... def set_sign_assertions(value: bool) -> None: ...
sign_assertions = property(get_sign_assertions, set_sign_assertions)
Default Value
FALSE
Remarks
Set this property to True to automatically sign the assertions included into the Identity Provider (IdP) responses.
signing_cert_bytes Property
Returns the raw certificate data in DER format.
Syntax
def get_signing_cert_bytes() -> bytes: ...
signing_cert_bytes = property(get_signing_cert_bytes, None)
Remarks
Returns the raw certificate data in DER format.
This property is read-only.
signing_cert_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_signing_cert_handle() -> int: ... def set_signing_cert_handle(value: int) -> None: ...
signing_cert_handle = property(get_signing_cert_handle, set_signing_cert_handle)
Default Value
0
Remarks
Allows to get or set a 'handle', a unique identifier of the underlying property object. Use this property to assign objects of the same type in a quicker manner, without copying them fieldwise.
When you pass a handle of one object to another, the source object is copied to the destination rather than assigned. It is safe to get rid of the original object
after such operation.
pdfSigner.setSigningCertHandle(certMgr.getCertHandle());
signing_chain_count Property
The number of records in the SigningChain arrays.
Syntax
def get_signing_chain_count() -> int: ... def set_signing_chain_count(value: int) -> None: ...
signing_chain_count = property(get_signing_chain_count, set_signing_chain_count)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at signing_chain_count - 1.signing_chain_bytes Property
Returns the raw certificate data in DER format.
Syntax
def get_signing_chain_bytes(signing_chain_index: int) -> bytes: ...
Remarks
Returns the raw certificate data in DER format.
The signing_chain_index parameter specifies the index of the item in the array. The size of the array is controlled by the signing_chain_count property.
This property is read-only.
signing_chain_handle Property
Allows to get or set a 'handle', a unique identifier of the underlying property object.
Syntax
def get_signing_chain_handle(signing_chain_index: int) -> int: ... def set_signing_chain_handle(signing_chain_index: int, value: int) -> None: ...
Default Value
0
Remarks
Allows to get or set a 'handle', a unique identifier of the underlying property object. Use this property to assign objects of the same type in a quicker manner, without copying them fieldwise.
When you pass a handle of one object to another, the source object is copied to the destination rather than assigned. It is safe to get rid of the original object
after such operation.
pdfSigner.setSigningCertHandle(certMgr.getCertHandle());
The signing_chain_index parameter specifies the index of the item in the array. The size of the array is controlled by the signing_chain_count property.
sign_metadata Property
Specifies whether the IdP's metadata should be signed.
Syntax
def get_sign_metadata() -> bool: ... def set_sign_metadata(value: bool) -> None: ...
sign_metadata = property(get_sign_metadata, set_sign_metadata)
Default Value
FALSE
Remarks
Set this property to True to sign the Identity Provider's (IdP) metadata before saving it. Do not forget to assign the signing certificate to the meta_signing_certificate property.
sign_response Property
Specifies whether the IdP responses should be signed.
Syntax
def get_sign_response() -> bool: ... def set_sign_response(value: bool) -> None: ...
sign_response = property(get_sign_response, set_sign_response)
Default Value
FALSE
Remarks
Set this property to True to automatically sign the responses sent by this IdP server.
single_logout_service Property
The URL of the single logout service.
Syntax
def get_single_logout_service() -> str: ... def set_single_logout_service(value: str) -> None: ...
single_logout_service = property(get_single_logout_service, set_single_logout_service)
Default Value
"/idp/SingleLogoutService"
Remarks
This property specifies the relative URL of the single logout service.
single_logout_service_bindings Property
Defines single logout service bindings.
Syntax
def get_single_logout_service_bindings() -> str: ... def set_single_logout_service_bindings(value: str) -> None: ...
single_logout_service_bindings = property(get_single_logout_service_bindings, set_single_logout_service_bindings)
Default Value
"+Artifact,+POST,+Redirect"
Remarks
Use this property to specify the single logout service bindings.
The binding is the mechanism of message exchange used by SAML requestors and responders.
single_sign_on_service Property
The URL of the single logout service.
Syntax
def get_single_sign_on_service() -> str: ... def set_single_sign_on_service(value: str) -> None: ...
single_sign_on_service = property(get_single_sign_on_service, set_single_sign_on_service)
Default Value
"/idp/SingleSignOnService"
Remarks
This property specifies the relative URL of the single logout (SSO) service.
single_sign_on_service_bindings Property
Defines single sign-on service bindings.
Syntax
def get_single_sign_on_service_bindings() -> str: ... def set_single_sign_on_service_bindings(value: str) -> None: ...
single_sign_on_service_bindings = property(get_single_sign_on_service_bindings, set_single_sign_on_service_bindings)
Default Value
"+Artifact,+POST,+Redirect"
Remarks
Use this property to specify the single sign-on service bindings.
The binding is the mechanism of message exchange used by SAML requestors and responders.
socket_incoming_speed_limit Property
The maximum number of bytes to read from the socket, per second.
Syntax
def get_socket_incoming_speed_limit() -> int: ... def set_socket_incoming_speed_limit(value: int) -> None: ...
socket_incoming_speed_limit = property(get_socket_incoming_speed_limit, set_socket_incoming_speed_limit)
Default Value
0
Remarks
The maximum number of bytes to read from the socket, per second.
socket_local_address Property
The local network interface to bind the socket to.
Syntax
def get_socket_local_address() -> str: ... def set_socket_local_address(value: str) -> None: ...
socket_local_address = property(get_socket_local_address, set_socket_local_address)
Default Value
""
Remarks
The local network interface to bind the socket to.
socket_local_port Property
The local port number to bind the socket to.
Syntax
def get_socket_local_port() -> int: ... def set_socket_local_port(value: int) -> None: ...
socket_local_port = property(get_socket_local_port, set_socket_local_port)
Default Value
0
Remarks
The local port number to bind the socket to.
socket_outgoing_speed_limit Property
The maximum number of bytes to write to the socket, per second.
Syntax
def get_socket_outgoing_speed_limit() -> int: ... def set_socket_outgoing_speed_limit(value: int) -> None: ...
socket_outgoing_speed_limit = property(get_socket_outgoing_speed_limit, set_socket_outgoing_speed_limit)
Default Value
0
Remarks
The maximum number of bytes to write to the socket, per second.
socket_timeout Property
The maximum period of waiting, in milliseconds, after which the socket operation is considered unsuccessful.
Syntax
def get_socket_timeout() -> int: ... def set_socket_timeout(value: int) -> None: ...
socket_timeout = property(get_socket_timeout, set_socket_timeout)
Default Value
60000
Remarks
The maximum period of waiting, in milliseconds, after which the socket operation is considered unsuccessful.
If Timeout is set to 0, a socket operation will expire after the system-default timeout (2 hrs 8 min for TCP stack).
socket_use_ipv6 Property
Enables or disables IP protocol version 6.
Syntax
def get_socket_use_ipv6() -> bool: ... def set_socket_use_ipv6(value: bool) -> None: ...
socket_use_ipv6 = property(get_socket_use_ipv6, set_socket_use_ipv6)
Default Value
FALSE
Remarks
Enables or disables IP protocol version 6.
tls_auto_validate_certificates Property
Specifies whether server-side TLS certificates should be validated automatically using internal validation rules.
Syntax
def get_tls_auto_validate_certificates() -> bool: ... def set_tls_auto_validate_certificates(value: bool) -> None: ...
tls_auto_validate_certificates = property(get_tls_auto_validate_certificates, set_tls_auto_validate_certificates)
Default Value
TRUE
Remarks
Specifies whether server-side TLS certificates should be validated automatically using internal validation rules.
tls_base_configuration Property
Selects the base configuration for the TLS settings.
Syntax
def get_tls_base_configuration() -> int: ... def set_tls_base_configuration(value: int) -> None: ...
tls_base_configuration = property(get_tls_base_configuration, set_tls_base_configuration)
Default Value
0
Remarks
Selects the base configuration for the TLS settings. Several profiles are offered and tuned up for different purposes, such as high security or higher compatibility.
stpcDefault | 0 | |
stpcCompatible | 1 | |
stpcComprehensiveInsecure | 2 | |
stpcHighlySecure | 3 |
tls_ciphersuites Property
A list of ciphersuites separated with commas or semicolons.
Syntax
def get_tls_ciphersuites() -> str: ... def set_tls_ciphersuites(value: str) -> None: ...
tls_ciphersuites = property(get_tls_ciphersuites, set_tls_ciphersuites)
Default Value
""
Remarks
A list of ciphersuites separated with commas or semicolons. Each ciphersuite in the list may be prefixed with a minus sign (-) to indicate that the ciphersuite should be disabled rather than enabled. Besides the specific ciphersuite modifiers, this property supports the all (and -all) aliases, allowing all ciphersuites to be blanketly enabled or disabled at once.
Note: the list of ciphersuites provided to this property alters the baseline list of ciphersuites as defined by tls_base_configuration. Remember to start your ciphersuite string with -all; if you need to only enable a specific fixed set of ciphersuites. The list of supported ciphersuites is provided below:
- NULL_NULL_NULL
- RSA_NULL_MD5
- RSA_NULL_SHA
- RSA_RC4_MD5
- RSA_RC4_SHA
- RSA_RC2_MD5
- RSA_IDEA_MD5
- RSA_IDEA_SHA
- RSA_DES_MD5
- RSA_DES_SHA
- RSA_3DES_MD5
- RSA_3DES_SHA
- RSA_AES128_SHA
- RSA_AES256_SHA
- DH_DSS_DES_SHA
- DH_DSS_3DES_SHA
- DH_DSS_AES128_SHA
- DH_DSS_AES256_SHA
- DH_RSA_DES_SHA
- DH_RSA_3DES_SHA
- DH_RSA_AES128_SHA
- DH_RSA_AES256_SHA
- DHE_DSS_DES_SHA
- DHE_DSS_3DES_SHA
- DHE_DSS_AES128_SHA
- DHE_DSS_AES256_SHA
- DHE_RSA_DES_SHA
- DHE_RSA_3DES_SHA
- DHE_RSA_AES128_SHA
- DHE_RSA_AES256_SHA
- DH_ANON_RC4_MD5
- DH_ANON_DES_SHA
- DH_ANON_3DES_SHA
- DH_ANON_AES128_SHA
- DH_ANON_AES256_SHA
- RSA_RC2_MD5_EXPORT
- RSA_RC4_MD5_EXPORT
- RSA_DES_SHA_EXPORT
- DH_DSS_DES_SHA_EXPORT
- DH_RSA_DES_SHA_EXPORT
- DHE_DSS_DES_SHA_EXPORT
- DHE_RSA_DES_SHA_EXPORT
- DH_ANON_RC4_MD5_EXPORT
- DH_ANON_DES_SHA_EXPORT
- RSA_CAMELLIA128_SHA
- DH_DSS_CAMELLIA128_SHA
- DH_RSA_CAMELLIA128_SHA
- DHE_DSS_CAMELLIA128_SHA
- DHE_RSA_CAMELLIA128_SHA
- DH_ANON_CAMELLIA128_SHA
- RSA_CAMELLIA256_SHA
- DH_DSS_CAMELLIA256_SHA
- DH_RSA_CAMELLIA256_SHA
- DHE_DSS_CAMELLIA256_SHA
- DHE_RSA_CAMELLIA256_SHA
- DH_ANON_CAMELLIA256_SHA
- PSK_RC4_SHA
- PSK_3DES_SHA
- PSK_AES128_SHA
- PSK_AES256_SHA
- DHE_PSK_RC4_SHA
- DHE_PSK_3DES_SHA
- DHE_PSK_AES128_SHA
- DHE_PSK_AES256_SHA
- RSA_PSK_RC4_SHA
- RSA_PSK_3DES_SHA
- RSA_PSK_AES128_SHA
- RSA_PSK_AES256_SHA
- RSA_SEED_SHA
- DH_DSS_SEED_SHA
- DH_RSA_SEED_SHA
- DHE_DSS_SEED_SHA
- DHE_RSA_SEED_SHA
- DH_ANON_SEED_SHA
- SRP_SHA_3DES_SHA
- SRP_SHA_RSA_3DES_SHA
- SRP_SHA_DSS_3DES_SHA
- SRP_SHA_AES128_SHA
- SRP_SHA_RSA_AES128_SHA
- SRP_SHA_DSS_AES128_SHA
- SRP_SHA_AES256_SHA
- SRP_SHA_RSA_AES256_SHA
- SRP_SHA_DSS_AES256_SHA
- ECDH_ECDSA_NULL_SHA
- ECDH_ECDSA_RC4_SHA
- ECDH_ECDSA_3DES_SHA
- ECDH_ECDSA_AES128_SHA
- ECDH_ECDSA_AES256_SHA
- ECDHE_ECDSA_NULL_SHA
- ECDHE_ECDSA_RC4_SHA
- ECDHE_ECDSA_3DES_SHA
- ECDHE_ECDSA_AES128_SHA
- ECDHE_ECDSA_AES256_SHA
- ECDH_RSA_NULL_SHA
- ECDH_RSA_RC4_SHA
- ECDH_RSA_3DES_SHA
- ECDH_RSA_AES128_SHA
- ECDH_RSA_AES256_SHA
- ECDHE_RSA_NULL_SHA
- ECDHE_RSA_RC4_SHA
- ECDHE_RSA_3DES_SHA
- ECDHE_RSA_AES128_SHA
- ECDHE_RSA_AES256_SHA
- ECDH_ANON_NULL_SHA
- ECDH_ANON_RC4_SHA
- ECDH_ANON_3DES_SHA
- ECDH_ANON_AES128_SHA
- ECDH_ANON_AES256_SHA
- RSA_NULL_SHA256
- RSA_AES128_SHA256
- RSA_AES256_SHA256
- DH_DSS_AES128_SHA256
- DH_RSA_AES128_SHA256
- DHE_DSS_AES128_SHA256
- DHE_RSA_AES128_SHA256
- DH_DSS_AES256_SHA256
- DH_RSA_AES256_SHA256
- DHE_DSS_AES256_SHA256
- DHE_RSA_AES256_SHA256
- DH_ANON_AES128_SHA256
- DH_ANON_AES256_SHA256
- RSA_AES128_GCM_SHA256
- RSA_AES256_GCM_SHA384
- DHE_RSA_AES128_GCM_SHA256
- DHE_RSA_AES256_GCM_SHA384
- DH_RSA_AES128_GCM_SHA256
- DH_RSA_AES256_GCM_SHA384
- DHE_DSS_AES128_GCM_SHA256
- DHE_DSS_AES256_GCM_SHA384
- DH_DSS_AES128_GCM_SHA256
- DH_DSS_AES256_GCM_SHA384
- DH_ANON_AES128_GCM_SHA256
- DH_ANON_AES256_GCM_SHA384
- ECDHE_ECDSA_AES128_SHA256
- ECDHE_ECDSA_AES256_SHA384
- ECDH_ECDSA_AES128_SHA256
- ECDH_ECDSA_AES256_SHA384
- ECDHE_RSA_AES128_SHA256
- ECDHE_RSA_AES256_SHA384
- ECDH_RSA_AES128_SHA256
- ECDH_RSA_AES256_SHA384
- ECDHE_ECDSA_AES128_GCM_SHA256
- ECDHE_ECDSA_AES256_GCM_SHA384
- ECDH_ECDSA_AES128_GCM_SHA256
- ECDH_ECDSA_AES256_GCM_SHA384
- ECDHE_RSA_AES128_GCM_SHA256
- ECDHE_RSA_AES256_GCM_SHA384
- ECDH_RSA_AES128_GCM_SHA256
- ECDH_RSA_AES256_GCM_SHA384
- PSK_AES128_GCM_SHA256
- PSK_AES256_GCM_SHA384
- DHE_PSK_AES128_GCM_SHA256
- DHE_PSK_AES256_GCM_SHA384
- RSA_PSK_AES128_GCM_SHA256
- RSA_PSK_AES256_GCM_SHA384
- PSK_AES128_SHA256
- PSK_AES256_SHA384
- PSK_NULL_SHA256
- PSK_NULL_SHA384
- DHE_PSK_AES128_SHA256
- DHE_PSK_AES256_SHA384
- DHE_PSK_NULL_SHA256
- DHE_PSK_NULL_SHA384
- RSA_PSK_AES128_SHA256
- RSA_PSK_AES256_SHA384
- RSA_PSK_NULL_SHA256
- RSA_PSK_NULL_SHA384
- RSA_CAMELLIA128_SHA256
- DH_DSS_CAMELLIA128_SHA256
- DH_RSA_CAMELLIA128_SHA256
- DHE_DSS_CAMELLIA128_SHA256
- DHE_RSA_CAMELLIA128_SHA256
- DH_ANON_CAMELLIA128_SHA256
- RSA_CAMELLIA256_SHA256
- DH_DSS_CAMELLIA256_SHA256
- DH_RSA_CAMELLIA256_SHA256
- DHE_DSS_CAMELLIA256_SHA256
- DHE_RSA_CAMELLIA256_SHA256
- DH_ANON_CAMELLIA256_SHA256
- ECDHE_ECDSA_CAMELLIA128_SHA256
- ECDHE_ECDSA_CAMELLIA256_SHA384
- ECDH_ECDSA_CAMELLIA128_SHA256
- ECDH_ECDSA_CAMELLIA256_SHA384
- ECDHE_RSA_CAMELLIA128_SHA256
- ECDHE_RSA_CAMELLIA256_SHA384
- ECDH_RSA_CAMELLIA128_SHA256
- ECDH_RSA_CAMELLIA256_SHA384
- RSA_CAMELLIA128_GCM_SHA256
- RSA_CAMELLIA256_GCM_SHA384
- DHE_RSA_CAMELLIA128_GCM_SHA256
- DHE_RSA_CAMELLIA256_GCM_SHA384
- DH_RSA_CAMELLIA128_GCM_SHA256
- DH_RSA_CAMELLIA256_GCM_SHA384
- DHE_DSS_CAMELLIA128_GCM_SHA256
- DHE_DSS_CAMELLIA256_GCM_SHA384
- DH_DSS_CAMELLIA128_GCM_SHA256
- DH_DSS_CAMELLIA256_GCM_SHA384
- DH_anon_CAMELLIA128_GCM_SHA256
- DH_anon_CAMELLIA256_GCM_SHA384
- ECDHE_ECDSA_CAMELLIA128_GCM_SHA256
- ECDHE_ECDSA_CAMELLIA256_GCM_SHA384
- ECDH_ECDSA_CAMELLIA128_GCM_SHA256
- ECDH_ECDSA_CAMELLIA256_GCM_SHA384
- ECDHE_RSA_CAMELLIA128_GCM_SHA256
- ECDHE_RSA_CAMELLIA256_GCM_SHA384
- ECDH_RSA_CAMELLIA128_GCM_SHA256
- ECDH_RSA_CAMELLIA256_GCM_SHA384
- PSK_CAMELLIA128_GCM_SHA256
- PSK_CAMELLIA256_GCM_SHA384
- DHE_PSK_CAMELLIA128_GCM_SHA256
- DHE_PSK_CAMELLIA256_GCM_SHA384
- RSA_PSK_CAMELLIA128_GCM_SHA256
- RSA_PSK_CAMELLIA256_GCM_SHA384
- PSK_CAMELLIA128_SHA256
- PSK_CAMELLIA256_SHA384
- DHE_PSK_CAMELLIA128_SHA256
- DHE_PSK_CAMELLIA256_SHA384
- RSA_PSK_CAMELLIA128_SHA256
- RSA_PSK_CAMELLIA256_SHA384
- ECDHE_PSK_CAMELLIA128_SHA256
- ECDHE_PSK_CAMELLIA256_SHA384
- ECDHE_PSK_RC4_SHA
- ECDHE_PSK_3DES_SHA
- ECDHE_PSK_AES128_SHA
- ECDHE_PSK_AES256_SHA
- ECDHE_PSK_AES128_SHA256
- ECDHE_PSK_AES256_SHA384
- ECDHE_PSK_NULL_SHA
- ECDHE_PSK_NULL_SHA256
- ECDHE_PSK_NULL_SHA384
- ECDHE_RSA_CHACHA20_POLY1305_SHA256
- ECDHE_ECDSA_CHACHA20_POLY1305_SHA256
- DHE_RSA_CHACHA20_POLY1305_SHA256
- PSK_CHACHA20_POLY1305_SHA256
- ECDHE_PSK_CHACHA20_POLY1305_SHA256
- DHE_PSK_CHACHA20_POLY1305_SHA256
- RSA_PSK_CHACHA20_POLY1305_SHA256
- AES128_GCM_SHA256
- AES256_GCM_SHA384
- CHACHA20_POLY1305_SHA256
- AES128_CCM_SHA256
- AES128_CCM8_SHA256
tls_ec_curves Property
Defines the elliptic curves to enable.
Syntax
def get_tls_ec_curves() -> str: ... def set_tls_ec_curves(value: str) -> None: ...
tls_ec_curves = property(get_tls_ec_curves, set_tls_ec_curves)
Default Value
""
Remarks
Defines the elliptic curves to enable.
tls_extensions Property
Provides access to TLS extensions.
Syntax
def get_tls_extensions() -> str: ... def set_tls_extensions(value: str) -> None: ...
tls_extensions = property(get_tls_extensions, set_tls_extensions)
Default Value
""
Remarks
Provides access to TLS extensions.
tls_force_resume_if_destination_changes Property
Whether to force TLS session resumption when the destination address changes.
Syntax
def get_tls_force_resume_if_destination_changes() -> bool: ... def set_tls_force_resume_if_destination_changes(value: bool) -> None: ...
tls_force_resume_if_destination_changes = property(get_tls_force_resume_if_destination_changes, set_tls_force_resume_if_destination_changes)
Default Value
FALSE
Remarks
Whether to force TLS session resumption when the destination address changes.
tls_pre_shared_identity Property
Defines the identity used when the PSK (Pre-Shared Key) key-exchange mechanism is negotiated.
Syntax
def get_tls_pre_shared_identity() -> str: ... def set_tls_pre_shared_identity(value: str) -> None: ...
tls_pre_shared_identity = property(get_tls_pre_shared_identity, set_tls_pre_shared_identity)
Default Value
""
Remarks
Defines the identity used when the PSK (Pre-Shared Key) key-exchange mechanism is negotiated.
tls_pre_shared_key Property
Contains the pre-shared key for the PSK (Pre-Shared Key) key-exchange mechanism, encoded with base16.
Syntax
def get_tls_pre_shared_key() -> str: ... def set_tls_pre_shared_key(value: str) -> None: ...
tls_pre_shared_key = property(get_tls_pre_shared_key, set_tls_pre_shared_key)
Default Value
""
Remarks
Contains the pre-shared key for the PSK (Pre-Shared Key) key-exchange mechanism, encoded with base16.
tls_pre_shared_key_ciphersuite Property
Defines the ciphersuite used for PSK (Pre-Shared Key) negotiation.
Syntax
def get_tls_pre_shared_key_ciphersuite() -> str: ... def set_tls_pre_shared_key_ciphersuite(value: str) -> None: ...
tls_pre_shared_key_ciphersuite = property(get_tls_pre_shared_key_ciphersuite, set_tls_pre_shared_key_ciphersuite)
Default Value
""
Remarks
Defines the ciphersuite used for PSK (Pre-Shared Key) negotiation.
tls_renegotiation_attack_prevention_mode Property
Selects the renegotiation attack prevention mechanism.
Syntax
def get_tls_renegotiation_attack_prevention_mode() -> int: ... def set_tls_renegotiation_attack_prevention_mode(value: int) -> None: ...
tls_renegotiation_attack_prevention_mode = property(get_tls_renegotiation_attack_prevention_mode, set_tls_renegotiation_attack_prevention_mode)
Default Value
0
Remarks
Selects the renegotiation attack prevention mechanism.
The following options are available:
crapmCompatible | 0 | TLS 1.0 and 1.1 compatibility mode (renegotiation indication extension is disabled). |
crapmStrict | 1 | Renegotiation attack prevention is enabled and enforced. |
crapmAuto | 2 | Automatically choose whether to enable or disable renegotiation attack prevention. |
tls_revocation_check Property
Specifies the kind(s) of revocation check to perform.
Syntax
def get_tls_revocation_check() -> int: ... def set_tls_revocation_check(value: int) -> None: ...
tls_revocation_check = property(get_tls_revocation_check, set_tls_revocation_check)
Default Value
1
Remarks
Specifies the kind(s) of revocation check to perform.
Revocation checking is necessary to ensure the integrity of the chain and obtain up-to-date certificate validity and trustworthiness information.
crcNone | 0 | No revocation checking. |
crcAuto | 1 | Automatic mode selection. Currently this maps to crcAnyOCSPOrCRL, but it may change in the future. |
crcAllCRL | 2 | All provided CRL endpoints will be checked, and all checks must succeed. |
crcAllOCSP | 3 | All provided OCSP endpoints will be checked, and all checks must succeed. |
crcAllCRLAndOCSP | 4 | All provided CRL and OCSP endpoints will be checked, and all checks must succeed. |
crcAnyCRL | 5 | All provided CRL endpoints will be checked, and at least one check must succeed. |
crcAnyOCSP | 6 | All provided OCSP endpoints will be checked, and at least one check must succeed. |
crcAnyCRLOrOCSP | 7 | All provided CRL and OCSP endpoints will be checked, and at least one check must succeed. CRL endpoints are checked first. |
crcAnyOCSPOrCRL | 8 | All provided CRL and OCSP endpoints will be checked, and at least one check must succeed. OCSP endpoints are checked first. |
This setting controls the way the revocation checks are performed for every certificate in the chain. Typically certificates come with two types of revocation information sources: CRL (certificate revocation lists) and OCSP responders. CRLs are static objects periodically published by the CA at some online location. OCSP responders are active online services maintained by the CA that can provide up-to-date information on certificate statuses in near real time.
There are some conceptual differences between the two. CRLs are normally larger in size. Their use involves some latency because there is normally some delay between the time when a certificate was revoked and the time the subsequent CRL mentioning that is published. The benefits of CRL is that the same object can provide statuses for all certificates issued by a particular CA, and that the whole technology is much simpler than OCSP (and thus is supported by more CAs).
This setting lets you adjust the validation course by including or excluding certain types of revocation sources from the validation process. The crcAnyOCSPOrCRL setting (give preference to the faster OCSP route and only demand one source to succeed) is a good choice for most typical validation environments. The "crcAll*" modes are much stricter, and may be used in scenarios where bulletproof validity information is essential.
Note: If no CRL or OCSP endpoints are provided by the CA, the revocation check will be considered successful. This is because the CA chose not to supply revocation information for its certificates, meaning they are considered irrevocable.
Note: Within each of the above settings, if any retrieved CRL or OCSP response indicates that the certificate has been revoked, the revocation check fails.
tls_ssl_options Property
Various SSL (TLS) protocol options, set of cssloExpectShutdownMessage 0x001 Wait for the close-notify message when shutting down the connection cssloOpenSSLDTLSWorkaround 0x002 (DEPRECATED) Use a DTLS version workaround when talking to very old OpenSSL versions cssloDisableKexLengthAlignment 0x004 Do not align the client-side PMS by the RSA modulus size.
Syntax
def get_tls_ssl_options() -> int: ... def set_tls_ssl_options(value: int) -> None: ...
tls_ssl_options = property(get_tls_ssl_options, set_tls_ssl_options)
Default Value
16
Remarks
Various SSL (TLS) protocol options, set of
cssloExpectShutdownMessage | 0x001 | Wait for the close-notify message when shutting down the connection |
cssloOpenSSLDTLSWorkaround | 0x002 | (DEPRECATED) Use a DTLS version workaround when talking to very old OpenSSL versions |
cssloDisableKexLengthAlignment | 0x004 | Do not align the client-side PMS by the RSA modulus size. It is unlikely that you will ever need to adjust it. |
cssloForceUseOfClientCertHashAlg | 0x008 | Enforce the use of the client certificate hash algorithm. It is unlikely that you will ever need to adjust it. |
cssloAutoAddServerNameExtension | 0x010 | Automatically add the server name extension when known |
cssloAcceptTrustedSRPPrimesOnly | 0x020 | Accept trusted SRP primes only |
cssloDisableSignatureAlgorithmsExtension | 0x040 | Disable (do not send) the signature algorithms extension. It is unlikely that you will ever need to adjust it. |
cssloIntolerateHigherProtocolVersions | 0x080 | (server option) Do not allow fallback from TLS versions higher than currently enabled |
cssloStickToPrefCertHashAlg | 0x100 | Stick to preferred certificate hash algorithms |
cssloNoImplicitTLS12Fallback | 0x200 | Disable implicit TLS 1.3 to 1.2 fallbacks |
cssloUseHandshakeBatches | 0x400 | Send the handshake message as large batches rather than individually |
tls_tls_mode Property
Specifies the TLS mode to use.
Syntax
def get_tls_tls_mode() -> int: ... def set_tls_tls_mode(value: int) -> None: ...
tls_tls_mode = property(get_tls_tls_mode, set_tls_tls_mode)
Default Value
0
Remarks
Specifies the TLS mode to use.
smDefault | 0 | |
smNoTLS | 1 | Do not use TLS |
smExplicitTLS | 2 | Connect to the server without any encryption and then request an SSL session. |
smImplicitTLS | 3 | Connect to the specified port, and establish the SSL session at once. |
smMixedTLS | 4 | Connect to the specified port, and establish the SSL session at once, but allow plain data. |
tls_use_extended_master_secret Property
Enables the Extended Master Secret Extension, as defined in RFC 7627.
Syntax
def get_tls_use_extended_master_secret() -> bool: ... def set_tls_use_extended_master_secret(value: bool) -> None: ...
tls_use_extended_master_secret = property(get_tls_use_extended_master_secret, set_tls_use_extended_master_secret)
Default Value
FALSE
Remarks
Enables the Extended Master Secret Extension, as defined in RFC 7627.
tls_use_session_resumption Property
Enables or disables the TLS session resumption capability.
Syntax
def get_tls_use_session_resumption() -> bool: ... def set_tls_use_session_resumption(value: bool) -> None: ...
tls_use_session_resumption = property(get_tls_use_session_resumption, set_tls_use_session_resumption)
Default Value
FALSE
Remarks
Enables or disables the TLS session resumption capability.
tls_versions Property
The SSL/TLS versions to enable by default.
Syntax
def get_tls_versions() -> int: ... def set_tls_versions(value: int) -> None: ...
tls_versions = property(get_tls_versions, set_tls_versions)
Default Value
16
Remarks
The SSL/TLS versions to enable by default.
csbSSL2 | 0x01 | SSL 2 |
csbSSL3 | 0x02 | SSL 3 |
csbTLS1 | 0x04 | TLS 1.0 |
csbTLS11 | 0x08 | TLS 1.1 |
csbTLS12 | 0x10 | TLS 1.2 |
csbTLS13 | 0x20 | TLS 1.3 |
url Property
Specifies the base URL of this IdP server.
Syntax
def get_url() -> str: ... def set_url(value: str) -> None: ...
url = property(get_url, set_url)
Default Value
""
Remarks
Use this property to set the base URL for this Identity Provider (IdP) server.
add_id_psso_link Method
Adds an SSO URL to the list.
Syntax
def add_id_psso_link(sp_index: int, url: str, relay_state: str) -> int: ...
Remarks
Use this method to add a new single sign-on (SSO) link. The method returns the index of the new link in the internal list of SSO links.
SPIndex specifies the index of the service provider configuration, URL contains the relative URL for the SSO, and RelayState contains the value of the corresponding SAML parameter.
According to SAML 2.0 specification, the RelayState parameter may be used by the SAML binding in order to convey and preserve state information. If this parameter is present in a SAML request message, the responding party must include the same exact parameter into the response to this request.
In many applications, when using IdP-initiated single sign-on, the IdP uses RelayState to indicate to the SP the URL to which it should redirect after the successful sign-on.
add_user Method
Registers known user credentials.
Syntax
def add_user(login: str, password: str) -> None: ...
Remarks
Call this method to register a pair of known user's credentials with the server.
add_user_with_email Method
Registers known user credentials.
Syntax
def add_user_with_email(login: str, email: str, password: str) -> None: ...
Remarks
Call this method to register known user's credentials with the server. In addition to Login and Password this method also associates an Email address with this user.
clear_users Method
Clears the database of registered users.
Syntax
def clear_users() -> None: ...
Remarks
Use this method to remove all stored user credential details.
config Method
Sets or retrieves a configuration setting.
Syntax
def config(configuration_string: str) -> str: ...
Remarks
config is a generic method available in every class. It is used to set and retrieve configuration settings for the class.
These settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the config method.
To set a configuration setting named PROPERTY, you must call Config("PROPERTY=VALUE"), where VALUE is the value of the setting expressed as a string. For boolean values, use the strings "True", "False", "0", "1", "Yes", or "No" (case does not matter).
To read (query) the value of a configuration setting, you must call Config("PROPERTY"). The value will be returned as a string.
do_action Method
Performs an additional action.
Syntax
def do_action(action_id: str, action_params: str) -> str: ...
Remarks
do_action is a generic method available in every class. It is used to perform an additional action introduced after the product major release. The list of actions is not fixed, and may be flexibly extended over time.
The unique identifier (case insensitive) of the action is provided in the ActionID parameter.
ActionParams contains the value of a single parameter, or a list of multiple parameters for the action in the form of PARAM1=VALUE1;PARAM2=VALUE2;....
get_provider_property Method
Returns the value of a custom provider property.
Syntax
def get_provider_property(name: str) -> str: ...
Remarks
This method, together with set_provider_property, provides an extensible way of managing the Identity Provider's settings that are not available through the primary properties of the component. As SAML usage scenarios evolve and new providers appear, the list of supported properties can be extended.
The following properties are currently supported:
- ContactPerson
- OrganizationName
- OrganizationDisplayName
- OrganizationURL
- OrganizationLang
load_sp_metadata Method
Loads the metadata required for information exchange with the service provider.
Syntax
def load_sp_metadata(file_name: str) -> int: ...
Remarks
The Service provider (SP) may have a lot of different options and requirements for interactions with the Identity provider (IdP). Usually all these options together with X.509 certificates needed for data exchange are stored in XML metadata files. Use this method to load metadata from such file generated by the service provider.
FileName specifies the metadata file name.
process_generic_request Method
Processes a generic HTTP SAML request.
Syntax
def process_generic_request(request: bytes) -> bytes: ...
Remarks
Use this method to process a generic well-formed HTTP SAML request obtained elsewhere. This is a handy mechanism to bind the SAML processor to an external web engine.
The Request parameter is expected to contain a full HTTP request, including the HTTP method string (GET, POST) and all the headers. The returned value contains a full HTTP response that should be supplied back to the requestor. You can edit some parts of the response (for example, by adding some custom HTTP headers).
You can use this method with or without the offline_mode.
remove_id_psso_link Method
Removes the specified SSO link.
Syntax
def remove_id_psso_link(index: int) -> None: ...
Remarks
Multiple URLs may be used on an IdP to initiate the single sign-on (SSO) session. You can add new links using add_id_psso_link, and remove ones that are no longer needed with RemoveIdPSSOLink.
remove_sp Method
Removes an SP from the list of trusted service providers.
Syntax
def remove_sp(index: int) -> None: ...
Remarks
Use this method to remove information about a service provider from the server.
remove_user Method
Unregister user credentials.
Syntax
def remove_user(login: str) -> None: ...
Remarks
Use this method to 'forget' the credentials of the user specified by the Login.
save_metadata Method
Saves the IdP configuration to a metadata file.
Syntax
def save_metadata(file_name: str) -> None: ...
Remarks
Use this method to save the Identity Provider (IdP) configuration in the form of XML metadata in the file specified by FileName. This file may be transferred to service providers (SP) to adjust their interaction processes.
set_provider_property Method
Sets the value of a custom provider property.
Syntax
def set_provider_property(name: str, value: str) -> None: ...
Remarks
This method, together with get_provider_property, provides an extensible way of managing the Identity Provider's settings that are not available through the primary properties of the component. As SAML usage scenarios evolve and new providers appear, the list of supported properties can be extended.
The following properties are currently supported:
- ContactPerson
- OrganizationName
- OrganizationDisplayName
- OrganizationURL
- OrganizationLang
start Method
Starts the IdP server.
Syntax
def start() -> None: ...
Remarks
Use this method to start listening for incoming connections.
stop Method
Stops the IdP server.
Syntax
def stop() -> None: ...
Remarks
Call this method to stop listening for incoming connections.
on_accept Event
Reports an incoming connection.
Syntax
class SAMLIdPServerAcceptEventParams(object): @property def remote_address() -> str: ... @property def remote_port() -> int: ... @property def accept() -> bool: ... @accept.setter def accept(value) -> None: ... # In class SAMLIdPServer: @property def on_accept() -> Callable[[SAMLIdPServerAcceptEventParams], None]: ... @on_accept.setter def on_accept(event_hook: Callable[[SAMLIdPServerAcceptEventParams], None]) -> None: ...
Remarks
This event is fired when a new connection from RemoteAddress:RemotePort is ready to be accepted. Use the Accept parameter to accept or decline it.
Subscribe to on_connect event to be notified of every connection that has been set up.
on_assertion_created Event
Notifies the application about the creation of a new assertion.
Syntax
class SAMLIdPServerAssertionCreatedEventParams(object): @property def connection_id() -> int: ... @property def assertion_origin() -> int: ... @property def assertion_type() -> str: ... @property def content() -> str: ... @content.setter def content(value) -> None: ... # In class SAMLIdPServer: @property def on_assertion_created() -> Callable[[SAMLIdPServerAssertionCreatedEventParams], None]: ... @on_assertion_created.setter def on_assertion_created(event_hook: Callable[[SAMLIdPServerAssertionCreatedEventParams], None]) -> None: ...
Remarks
Use this event to track the creation of a new SAML assertion (upon request from the browser or the SP).
The ConnectionID identifies the connection that requested the assertion. AssertionOrigin and AssertionType specify the type of assertion that was prepared and its disposition, and Content contains the body of the assertion. You can alter the body if required, but please keep in mind that changes may invalidate signed assertions.
saoUnknown | 0 | Unknown origin |
saoRequest | 1 | The assertion is part of a SAML request |
saoResponse | 2 | The assertion is part of a SAML response |
on_assertion_received Event
Notifies the application about the receipt of an assertion.
Syntax
class SAMLIdPServerAssertionReceivedEventParams(object): @property def connection_id() -> int: ... @property def assertion_origin() -> int: ... @property def content() -> str: ... @content.setter def content(value) -> None: ... # In class SAMLIdPServer: @property def on_assertion_received() -> Callable[[SAMLIdPServerAssertionReceivedEventParams], None]: ... @on_assertion_received.setter def on_assertion_received(event_hook: Callable[[SAMLIdPServerAssertionReceivedEventParams], None]) -> None: ...
Remarks
Use this event to track the receipt of a SAML assertion from the remote party.
The ConnectionID identifies the connection that requested the assertion. AssertionOrigin specifies the disposition of the assertion, and Content contains its body. You can alter the body if required, but please keep in mind that changes may invalidate signed assertions.
saoUnknown | 0 | Unknown origin |
saoRequest | 1 | The assertion is part of a SAML request |
saoResponse | 2 | The assertion is part of a SAML response |
on_connect Event
Reports an accepted connection.
Syntax
class SAMLIdPServerConnectEventParams(object): @property def connection_id() -> int: ... @property def remote_address() -> str: ... @property def remote_port() -> int: ... # In class SAMLIdPServer: @property def on_connect() -> Callable[[SAMLIdPServerConnectEventParams], None]: ... @on_connect.setter def on_connect(event_hook: Callable[[SAMLIdPServerConnectEventParams], None]) -> None: ...
Remarks
The class fires this event to report that a new connection has been established. ConnectionId indicates the unique ID assigned to this connection. The same ID will be supplied to any other events related to this connection, such as on_session_closed or on_session_established.
on_disconnect Event
Fires to report a disconnected client.
Syntax
class SAMLIdPServerDisconnectEventParams(object): @property def connection_id() -> int: ... # In class SAMLIdPServer: @property def on_disconnect() -> Callable[[SAMLIdPServerDisconnectEventParams], None]: ... @on_disconnect.setter def on_disconnect(event_hook: Callable[[SAMLIdPServerDisconnectEventParams], None]) -> None: ...
Remarks
The class fires this event when a connected client disconnects.
on_error Event
Information about errors during data delivery.
Syntax
class SAMLIdPServerErrorEventParams(object): @property def error_code() -> int: ... @property def description() -> str: ... # In class SAMLIdPServer: @property def on_error() -> Callable[[SAMLIdPServerErrorEventParams], None]: ... @on_error.setter def on_error(event_hook: Callable[[SAMLIdPServerErrorEventParams], None]) -> None: ...
Remarks
The event is fired in case of exceptional conditions during message processing.
ErrorCode contains an error code and Description contains a textual description of the error. For a list of valid error codes and their descriptions, please refer to the section.
on_external_sign Event
Handles remote or external signing initiated by the server protocol.
Syntax
class SAMLIdPServerExternalSignEventParams(object): @property def connection_id() -> int: ... @property def operation_id() -> str: ... @property def hash_algorithm() -> str: ... @property def pars() -> str: ... @property def data() -> str: ... @property def signed_data() -> str: ... @signed_data.setter def signed_data(value) -> None: ... # In class SAMLIdPServer: @property def on_external_sign() -> Callable[[SAMLIdPServerExternalSignEventParams], None]: ... @on_external_sign.setter def on_external_sign(event_hook: Callable[[SAMLIdPServerExternalSignEventParams], None]) -> None: ...
Remarks
Assign a handler to this event if you need to delegate a low-level signing operation to an external, remote, or custom signing engine. Depending on the settings, the handler will receive a hashed or unhashed value to be signed.
The event handler must pass the value of Data to the signer, obtain the signature, and pass it back to the class via the SignedData parameter.
OperationId provides a comment about the operation and its origin. It depends on the exact class being used, and may be empty. HashAlgorithm specifies the hash algorithm being used for the operation, and Pars contains algorithm-dependent parameters.
The class uses base16 (hex) encoding for the Data, SignedData, and Pars parameters. If your signing engine uses a different input and output encoding, you may need to decode and/or encode the data before and/or after the signing.
A sample MD5 hash encoded in base16: a0dee2a0382afbb09120ffa7ccd8a152 - lower case base16 A0DEE2A0382AFBB09120FFA7CCD8A152 - upper case base16
A sample event handler that uses the .NET RSACryptoServiceProvider class may look like the following:
signer.OnExternalSign += (s, e) =>
{
var cert = new X509Certificate2("cert.pfx", "", X509KeyStorageFlags.Exportable);
var key = (RSACryptoServiceProvider)cert.PrivateKey;
var dataToSign = e.Data.FromBase16String();
var signedData = key.SignHash(dataToSign, "2.16.840.1.101.3.4.2.1");
e.SignedData = signedData.ToBase16String();
};
on_metadata_request Event
Notifies the application about the metadata request.
Syntax
class SAMLIdPServerMetadataRequestEventParams(object): @property def connection_id() -> int: ... @property def metadata() -> str: ... @metadata.setter def metadata(value) -> None: ... # In class SAMLIdPServer: @property def on_metadata_request() -> Callable[[SAMLIdPServerMetadataRequestEventParams], None]: ... @on_metadata_request.setter def on_metadata_request(event_hook: Callable[[SAMLIdPServerMetadataRequestEventParams], None]) -> None: ...
Remarks
The class uses this event to notify the application about an incoming metadata request. The suggested metadata text is provided through the Metadata parameter. The application can adjust it as required if it needs to.
on_notification Event
This event notifies the application about an underlying control flow event.
Syntax
class SAMLIdPServerNotificationEventParams(object): @property def event_id() -> str: ... @property def event_param() -> str: ... # In class SAMLIdPServer: @property def on_notification() -> Callable[[SAMLIdPServerNotificationEventParams], None]: ... @on_notification.setter def on_notification(event_hook: Callable[[SAMLIdPServerNotificationEventParams], None]) -> None: ...
Remarks
The class fires this event to let the application know about some event, occurrence, or milestone in the class. For example, it may fire to report completion of the document processing. The list of events being reported is not fixed, and may be flexibly extended over time.
The unique identifier of the event is provided in the EventID parameter. EventParam contains any parameters accompanying the occurrence. Depending on the type of the class, the exact action it is performing, or the document being processed, one or both may be omitted.
on_session_closed Event
This event is fired when the IdP server has closed a session.
Syntax
class SAMLIdPServerSessionClosedEventParams(object): @property def connection_id() -> int: ... # In class SAMLIdPServer: @property def on_session_closed() -> Callable[[SAMLIdPServerSessionClosedEventParams], None]: ... @on_session_closed.setter def on_session_closed(event_hook: Callable[[SAMLIdPServerSessionClosedEventParams], None]) -> None: ...
Remarks
ConnectionID contains the identifier of the closed session.
on_session_established Event
This event is fired when a new session has been established.
Syntax
class SAMLIdPServerSessionEstablishedEventParams(object): @property def connection_id() -> int: ... @property def username() -> str: ... # In class SAMLIdPServer: @property def on_session_established() -> Callable[[SAMLIdPServerSessionEstablishedEventParams], None]: ... @on_session_established.setter def on_session_established(event_hook: Callable[[SAMLIdPServerSessionEstablishedEventParams], None]) -> None: ...
Remarks
ConnectionID contains the identifier of the new session, Username specifies the client's address and Username.
on_verify_credentials Event
Passes user credentials to the application for verification.
Syntax
class SAMLIdPServerVerifyCredentialsEventParams(object): @property def connection_id() -> int: ... @property def username() -> str: ... @property def password() -> str: ... @property def body() -> str: ... @property def accept() -> bool: ... @accept.setter def accept(value) -> None: ... # In class SAMLIdPServer: @property def on_verify_credentials() -> Callable[[SAMLIdPServerVerifyCredentialsEventParams], None]: ... @on_verify_credentials.setter def on_verify_credentials(event_hook: Callable[[SAMLIdPServerVerifyCredentialsEventParams], None]) -> None: ...
Remarks
Subscribe to this event to be notified about authentication attempts and adjust the acceptance result as required. This event fires after the user credentials have been validated against the configured database, and the value of the Accept parameter reflects the outcome of the validation.
The Username and Password parameters contain the provided credentials, and the Body parameter contains the unparsed form data.
SAMLIdPServer Config Settings
The class accepts one or more of the following configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the config method.SAMLIdPServer Config Settings
Base Config Settings
You can switch this property off to improve performance if your project only uses known, good private keys.
Supported values are:
off | No caching (default) | |
local | Local caching | |
global | Global caching |
This setting only applies to sessions negotiated with TLS version 1.3.
Supported values are:
file | File | |
console | Console | |
systemlog | System Log (supported for Android only) | |
debugger | Debugger (supported for VCL for Windows and .Net) |
Supported values are:
time | Current time | |
level | Level | |
package | Package name | |
module | Module name | |
class | Class name | |
method | Method name | |
threadid | Thread Id | |
contenttype | Content type | |
content | Content | |
all | All details |
Supported filter names are:
exclude-package | Exclude a package specified in the value | |
exclude-module | Exclude a module specified in the value | |
exclude-class | Exclude a class specified in the value | |
exclude-method | Exclude a method specified in the value | |
include-package | Include a package specified in the value | |
include-module | Include a module specified in the value | |
include-class | Include a class specified in the value | |
include-method | Include a method specified in the value |
none | No flush (caching only) | |
immediate | Immediate flush (real-time logging) | |
maxcount | Flush cached entries upon reaching LogMaxEventCount entries in the cache. |
Supported values are:
none | None (by default) | |
fatal | Severe errors that cause premature termination. | |
error | Other runtime errors or unexpected conditions. | |
warning | Use of deprecated APIs, poor use of API, 'almost' errors, other runtime situations that are undesirable or unexpected, but not necessarily "wrong". | |
info | Interesting runtime events (startup/shutdown). | |
debug | Detailed information on flow of through the system. | |
trace | More detailed information. |
The default value of this setting is 100.
none | No rotation | |
deleteolder | Delete older entries from the cache upon reaching LogMaxEventCount | |
keepolder | Keep older entries in the cache upon reaching LogMaxEventCount (newer entries are discarded) |
Supported values are:
none | No static DNS rules (default) | |
local | Local static DNS rules | |
global | Global static DNS rules |
This setting only applies to certificates originating from a Windows system store.
SAMLIdPServer Errors
SAMLIdPServer Errors
1048577 Invalid parameter value (SB_ERROR_INVALID_PARAMETER) | |
1048578 Class is configured incorrectly (SB_ERROR_INVALID_SETUP) | |
1048579 Operation cannot be executed in the current state (SB_ERROR_INVALID_STATE) | |
1048580 Attempt to set an invalid value to a property (SB_ERROR_INVALID_VALUE) | |
1048581 Certificate does not have its private key loaded (SB_ERROR_NO_PRIVATE_KEY) | |
1048581 Cancelled by the user (SB_ERROR_CANCELLED_BY_USER) | |
30408705 Invalid binging name (SB_ERROR_SAML_INVALID_BINDING_NAME) | |
30408706 Invalid binding type (SB_ERROR_SAML_INVALID_BINDING_TYPE) | |
30408707 Base directory not set (SB_ERROR_SAML_SP_BASE_DIRECTORY_NOT_SET) |