class Saml::Settings

Overview

SAML2 Toolkit Settings. Build one per request from stored configuration; nothing here is global.

Defined in:

saml/settings.cr

Constant Summary

DEFAULT_SECURITY = {:authn_requests_signed => false, :logout_requests_signed => false, :logout_responses_signed => false, :want_assertions_signed => false, :want_assertions_encrypted => false, :want_name_id => false, :metadata_signed => false, :embed_sign => false, :digest_method => XMLSecurity::Document::SHA1, :signature_method => XMLSecurity::Document::RSA_SHA1, :check_idp_cert_expiration => false, :check_sp_cert_expiration => false, :strict_audience_validation => false, :lowercase_url_encoding => false} of Symbol => SecurityValue
DEFAULTS = {:assertion_consumer_service_binding => Utils::BINDINGS[:post], :single_logout_service_binding => Utils::BINDINGS[:redirect], :idp_cert_fingerprint_algorithm => XMLSecurity::Document::SHA1, :compress_request => true, :compress_response => true, :message_max_bytesize => 250000, :soft => true, :check_malformed_doc => true, :double_quote_xml_attribute_values => false, :security => DEFAULT_SECURITY} of Symbol => Value

Constructors

Instance Method Summary

Constructor Detail

def self.new(overrides : Hash = {} of Symbol => Value, keep_security_attributes = false) #

overrides maps setting names (symbols) to values; a :security hash replaces the default security settings unless keep_security_attributes, in which case it is merged over them.


[View source]

Instance Method Detail

def assertion_consumer_logout_service_binding : String | Nil #

[View source]
def assertion_consumer_logout_service_binding=(value : String | Symbol | Nil) #

[View source]
def assertion_consumer_logout_service_url : String | Nil #

Deprecated


[View source]
def assertion_consumer_logout_service_url=(assertion_consumer_logout_service_url : String | Nil) #

Deprecated


[View source]
def assertion_consumer_service_binding : String | Nil #

[View source]
def assertion_consumer_service_binding=(value : String | Symbol | Nil) #

[View source]
def assertion_consumer_service_url : String | Nil #

[View source]
def assertion_consumer_service_url=(assertion_consumer_service_url : String | Nil) #

[View source]
def attribute_consuming_service : AttributeService #

[View source]
def attributes_index : Int32 | Nil #

[View source]
def attributes_index=(attributes_index : Int32 | Nil) #

[View source]
def authn_context : String | Array(String) | Nil #

[View source]
def authn_context=(authn_context : String | Array(String) | Nil) #

[View source]
def authn_context_comparison : String | Nil #

[View source]
def authn_context_comparison=(authn_context_comparison : String | Nil) #

[View source]
def authn_context_decl_ref : String | Array(String) | Nil #

[View source]
def authn_context_decl_ref=(authn_context_decl_ref : String | Array(String) | Nil) #

[View source]
def certificate : String | Nil #

[View source]
def certificate=(certificate : String | Nil) #

[View source]
def certificate_new : String | Nil #

[View source]
def certificate_new=(certificate_new : String | Nil) #

[View source]
def check_malformed_doc : Bool #

Malformed XML is always refused; kept for compatibility.


[View source]
def check_malformed_doc=(check_malformed_doc : Bool) #

Malformed XML is always refused; kept for compatibility.


[View source]
def compress_request : Bool #

[View source]
def compress_request=(compress_request : Bool) #

[View source]
def compress_response : Bool #

[View source]
def compress_response=(compress_response : Bool) #

[View source]
def double_quote_xml_attribute_values : Bool #

[View source]
def double_quote_xml_attribute_values=(double_quote_xml_attribute_values : Bool) #

[View source]
def force_authn : Bool | Nil #

[View source]
def force_authn=(force_authn : Bool | Nil) #

[View source]
def get_binding(value : String | Symbol | Nil) : String | Nil #

[View source]
def get_fingerprint : String | Nil #

Calculates the fingerprint of the IdP x509 certificate.


[View source]
def get_idp_cert : OpenSSL::X509::Certificate | Nil #

@return [OpenSSL::X509::Certificate|nil] Build the IdP certificate from the settings


[View source]
def get_idp_cert_multi : Hash(Symbol, Array(OpenSSL::X509::Certificate)) | Nil #

@return [Hash with 2 arrays of OpenSSL::X509::Certificate] Build multiple IdP certificates from the settings.


[View source]
def get_sp_cert : OpenSSL::X509::Certificate | Nil #

@return [OpenSSL::X509::Certificate|nil] The SP certificate


[View source]
def get_sp_cert_new : OpenSSL::X509::Certificate | Nil #

@return [OpenSSL::X509::Certificate|nil] The new SP certificate (during a rotation)


[View source]
def get_sp_decryption_keys : Array(OpenSSL::PKey::RSA) #

Keys an encrypted assertion may be decrypted with.


[View source]
def get_sp_key : OpenSSL::PKey::RSA | Nil #

@return [OpenSSL::PKey::RSA|nil] The SP private key


[View source]
def get_sp_key_text : String | Nil #

[View source]
def idp_attribute_names : Array(String) | Nil #

[View source]
def idp_attribute_names=(idp_attribute_names : Array(String) | Nil) #

[View source]
def idp_binding_from_embed_sign : String #

[View source]
def idp_cert : String | Nil #

[View source]
def idp_cert=(idp_cert : String | Nil) #

[View source]
def idp_cert_fingerprint : String | Nil #

[View source]
def idp_cert_fingerprint=(idp_cert_fingerprint : String | Nil) #

[View source]
def idp_cert_fingerprint_algorithm : String | Nil #

[View source]
def idp_cert_fingerprint_algorithm=(idp_cert_fingerprint_algorithm : String | Nil) #

[View source]
def idp_cert_multi : Hash(Symbol, Array(String)) | Nil #

[View source]
def idp_cert_multi=(value : Nil) #

[View source]
def idp_cert_multi=(value : Hash) #

Accepts symbol or string keys (:signing / :encryption).


[View source]
def idp_entity_id : String | Nil #

IdP Data


[View source]
def idp_entity_id=(idp_entity_id : String | Nil) #

IdP Data


[View source]
def idp_name_qualifier : String | Nil #

[View source]
def idp_name_qualifier=(idp_name_qualifier : String | Nil) #

[View source]
def idp_signing_certificates : Array(OpenSSL::X509::Certificate) #

Every IdP signing certificate configured (the multi list, else idp_cert).


[View source]
def idp_slo_response_service_url : String | Nil #

[View source]
def idp_slo_response_service_url=(idp_slo_response_service_url : String | Nil) #

[View source]
def idp_slo_service_binding : String | Nil #

@return [String] IdP Single Logout Service Binding


[View source]
def idp_slo_service_binding=(value : String | Symbol | Nil) #

[View source]
def idp_slo_service_url : String | Nil #

@return [String] IdP Single Logout Service URL


[View source]
def idp_slo_service_url=(idp_slo_service_url : String | Nil) #

[View source]
def idp_slo_target_url : String | Nil #

[View source]
def idp_slo_target_url=(idp_slo_target_url : String | Nil) #

[View source]
def idp_sso_service_binding : String | Nil #

@return [String] IdP Single Sign On Service Binding


[View source]
def idp_sso_service_binding=(value : String | Symbol | Nil) #

[View source]
def idp_sso_service_url : String | Nil #

@return [String] IdP Single Sign On Service URL


[View source]
def idp_sso_service_url=(idp_sso_service_url : String | Nil) #

[View source]
def idp_sso_target_url : String | Nil #

[View source]
def idp_sso_target_url=(idp_sso_target_url : String | Nil) #

[View source]
def issuer : String | Nil #

[View source]
def issuer=(issuer : String | Nil) #

[View source]
def message_max_bytesize : Int32 #

[View source]
def message_max_bytesize=(message_max_bytesize : Int32) #

[View source]
def name_identifier_format : String | Nil #

[View source]
def name_identifier_format=(name_identifier_format : String | Nil) #

[View source]
def name_identifier_value : String | Nil #

[View source]
def name_identifier_value=(name_identifier_value : String | Nil) #

[View source]
def name_identifier_value_requested : String | Nil #

[View source]
def name_identifier_value_requested=(name_identifier_value_requested : String | Nil) #

[View source]
def passive : Bool | Nil #

[View source]
def passive=(passive : Bool | Nil) #

[View source]
def private_key : String | Nil #

[View source]
def private_key=(private_key : String | Nil) #

[View source]
def protocol_binding : String | Nil #

[View source]
def protocol_binding=(value : String | Symbol | Nil) #

[View source]
def security : Hash(Symbol, SecurityValue) #

Work-flow


[View source]
def security=(security : Hash(Symbol, SecurityValue)) #

Work-flow


[View source]
def sessionindex : String | Nil #

[View source]
def sessionindex=(sessionindex : String | Nil) #

[View source]
def set_option(key : Symbol | String, value) : Bool #

Sets one setting by name; unknown names are ignored. Returns whether the name was known.


[View source]
def single_logout_service_binding : String | Nil #

@return [String] Single Logout Service Binding.


[View source]
def single_logout_service_binding=(value : String | Symbol | Nil) #

[View source]
def single_logout_service_url : String | Nil #

@return [String] Single Logout Service URL.


[View source]
def single_logout_service_url=(single_logout_service_url : String | Nil) #

[View source]
def soft : Bool #

[View source]
def soft=(soft : Bool) #

[View source]
def sp_entity_id : String | Nil #

@return [String] SP Entity ID


[View source]
def sp_entity_id=(sp_entity_id : String | Nil) #

SP Data


[View source]
def sp_name_qualifier : String | Nil #

[View source]
def sp_name_qualifier=(sp_name_qualifier : String | Nil) #

[View source]
def valid_until : Time | Nil #

[View source]
def valid_until=(value : Time | Nil) #

[View source]
def valid_until=(value : String) #

[View source]