- Allow iterating of multiple certificates on signature verification, thanks @nov and @nhosoya
- Raise Saml::Errors::SignatureMissing when Response element is not signed, thanks again @nov
- Fixed issue with ActiveSupport > 7.0.0, thanks @nhosoya for the fix
- Add error handling in HTTPRedirect.receive_message, thanks @soartec-lab
- Add support for SHA512 signatures, thanks @chaimsolomon
- Add include_key_retrieval_method to assertion encryption, thanks @nov
- Add error handling in HTTPPost.receive_message, thanks @soartec-lab
- Add optional SessionNotOnOrAfter to AuthnStatement, thanks @truongnmt
- Encrypt EncryptedID and EncryptedAttributes elements by (re)using the same #encrypt_element method.
- Fix encryption of an EncryptedID for multiple KeyDescriptors
- Make AuthnRequest Signature and SigAlg optional by checking options[:exclude_signature] variable
- Added the feature to optionally include SP certificate in encrypted assertions, thanks @nov
- Stop using old ruby Hash Rocket syntax
- Use FactoryBot gem instead of FactoryGirl
- Remove Nokogiri gem version limitations
- Only allow 'expect' RSpec syntax
- Travis CI: remove JRuby 9.1.5.0 and add Ruby 2.5.3 and 2.6.3
- Added support to verify all signatures in a SAML message by using the corresponding KeyName
- instead of the KeyName of the first signature it finds in a SAML message.
- Allow non-signed AuthnRequest for O365 ECP use-case, thanks @nov
- Add support for
NameIDPolicyinAuthnRequest, thanks @pzgz
- Update dependencies as a fix for CWE-287
NameId#SPNameQualifierandAttributeValue#NameIdfor Shibboleth support, thanks @nov
- Allow specifying NameFormat & FriendlyName at Saml::Assertion#add_attribute, thanks @nov
- Added
Scopingelement to anAuthnRequest
- Backward compatibility fix. (#147)
- Added signature config and response location
- Fix the encryption of an EncryptedID element with multiple recipients.
- Use lambda for validations
- Allow the AuthnInstant to be set
- require active support version >= 4.2
- The POST Binding now allows unsigned AuthnRequests if specifically configured in the EntityDescriptor
- add_attribute now allows extra attributes to be set via add_attribute("key", "value", type: "xsi:string")
- Added method to encrypt attributes
- Added the ext:OriginalIssuer and ext:LastModified attributes from the SAML V2.0 Attribute Extensions to the AttributeType.
- Added config option to include nested prefixlists by default.
- Added option to include nested prefixlists before signing.
- Added more possible
AuthnContextClassRefvalues.
- Fixed bug when a destination url contains a query string #120
- Clear OpenSSL error queue if verification fails - https://bugs.ruby-lang.org/issues/7215
- increase xml mapper version
- added config options
generate_key_nameto disable automatic keyname generation - improved the key info lookup for role descriptors
- Fixed Provider encrypted_key recursion bug
- Fixed
EncryptedID, now only parses the correct encrypted keys.
- Added #ssl_private_key and #ssl_certificate to the config.
- Only convert the not_before and not_on_or_after to the XML schema format when there is a value.
- Added the option to set a custom
subjectin the assertion
- Added the InclusiveNamespaces #prefix_list to the config
- allow soap wsa headers to be given
- fix audience backwardscompatibility
- add “fail_silent” option to “#decrypt_encrypted_id”.
- allow empty attributes
- return canonicalised xml after verify
- added
SessionIndextoLogoutRequest
- added
attribute_fetcherto samlp extensions - added
Saml::Element::Audience
- Added ability to password protect key file.
- Added
find_by_source_idtoSaml::ProviderStore::File - Added http ca file config
- added the option to set a
status_messageon aStatusthrough the initializer of aResponse.
- added the
request_unsupported?helper method toResponse.
- allow
LogoutRequestto usexml_value
- add
not_on_or_afteron logout requests
- call
use_originalon a root object with the object that requires the original value
- call
use_parsedon an object before calling to_xml on the element or parent to use the parsed value
- added libsaml file for easier require
- upgrade to xmlmapper
- fix issue when using the redirect binding as an IDP
- revert use original XML when using parsed objects
- revert Saml::XMLInjector
- enhancements
- added
Saml::XmlInjectorto inject already signed assertions - use original XML when using parsed objects
- added
- enhancements
- changed metadata lookup, to allow looking up SP, IDP and AA specific information combined in one entity descriptor
- enhancements
- an
AudienceRestrictionnow has manyAudienceelements.
- an
- enhancements
- prevent multiple
Assertionelements and it’s elements being added as associations to the root element when there are nestedAssertionelements.
- prevent multiple
- enhancements
- added the
fetch_attribute_valuehelper method toAssertionandAttributeStatement. - added the
fetch_attribute_valueshelper method toAssertionandAttributeStatement.
- added the
- enhancements
- added the
unknown_principal?helper method toResponse.
- added the
- enhancements
- added
AssertionIDRefto the AdviceType. - an
Assertionnow has manyAttributeStatementsinstead of just one.
- added
- enhancements
- added
AttributeAuthorithyDescriptoras a descriptor for the Provider, which now returns aSaml::ComplexTypes::RoleDescriptorTypeinstead of aSaml::ComplexTypes::SSODescriptorType
- added
- enhancements
- add a new
SubjectConfirmationelement as an Array when aSubjectis initialized - a
SubjectConfirmationelement has only oneSubjectConfirmationDataelement
- add a new
- enhancements
- added
attribute_service_urltoSaml::Provider
- added
- enhancements
- added an `Advice`` element and it’s
AdviceTypecomplex type - added `Advice`` element on an
Assertionelement - added `EncryptedID`` element on a
Subjectelement - added validation on
Subjectelement to validate if an identifier is present and only one is specified
- added an `Advice`` element and it’s
- bug fix parsing encrypted assertions
- enhancements
- added a
StatusMessageelement to theStatuselement. - a
StatusDetailelement (which is optional) will only be added to aStatuselement when it’s provided as an argument, thus not by default.
- added a
- enhancements
- an
AttributeValueelement can have anEncryptedIDelement - added helper methods for encrypting a
NameIdelement and encrypting/decrypting anEncryptedIDelement
- an
- enhancements
- removed the
http://www.w3.org/2001/XMLSchemaandhttp://www.w3.org/2001/XMLSchema-instancenamespaces from theto_soapmethod.
- removed the
- enhancements
- changed the
#attribute_value=method onComplexTypes::AttributeValueso it will replace the existing attribute values, instead of appending to it
- changed the
- enhancements
- added
AttributeValueelement - added the possibility to have many
AttributeValueelements on elements which include theComplexTypes::AttributeType - the
#attribute_valuemethod onComplexTypes::AttributeTypeis now deprecated
- added
- updated xmlenc dependency
- enhancements
- added the possibility to use a
KeyDescriptorin theUtil::EncryptAssertionmethod, so we can set thekey_namein the encrypted assertion.
- added the possibility to use a
- enhancements
- added
name_id_formatsto theSSODescriptorTypecomplex type.
- added
- enhancements
- added the option to set a custom endpoint index for an
Artifact.
- added the option to set a custom endpoint index for an
- enhancements
- fixed a parsing bug where an unsigned
ArtifactResponsereceived the signature of its inner signed message.
- fixed a parsing bug where an unsigned
- enhancements
- added
authn_requestelement on anArtifactResponseso that both aResponseas well as anAuthnRequestcan be transferred.
- added
- enhancements
- added
attribute_authority_descriptorelement, which extends theRoleDescriptorTypecomplex type, to anentity_descriptorelement - added
role_descriptor_typecomplex type
- added
- enhancements
- added
status_detailelement
- added
- enhancements
- added metadata publication info element
- enhancements
- added
fetch_attributesmethod to fetch multiple attributes with the same name from an assertion
- added
- updated xmlenc dependency
- enhancements
- allow metadata
key_descriptoruse to be omitted and be used as default
- allow metadata
- enhancements
- added backwards compatible
has_manyforauthn_context_class_refsso the SP can request more than one context
- added backwards compatible
- enhancements
- use a hash for the file store
- allow metadata to be added to the file store on the fly
- bug fix
- fixed alias method error
- enhancements
- started this changelog
- Added a new url provider store use:
Saml::ProviderStores::Url.find_by_metadata_location(metadata_location)orSaml::ProviderStores::Url.find_by_entity_id(metadata_location)# allow use throughSaml.provider(entity_id) - Added the entity id to the error message when
Saml.providercannot findentity id