- 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
NameIDPolicy
inAuthnRequest
, thanks @pzgz
- Update dependencies as a fix for CWE-287
NameId#SPNameQualifier
andAttributeValue#NameId
for Shibboleth support, thanks @nov
- Allow specifying NameFormat & FriendlyName at Saml::Assertion#add_attribute, thanks @nov
- Added
Scoping
element 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
AuthnContextClassRef
values.
- 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_name
to 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
subject
in 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
SessionIndex
toLogoutRequest
- added
attribute_fetcher
to samlp extensions - added
Saml::Element::Audience
- Added ability to password protect key file.
- Added
find_by_source_id
toSaml::ProviderStore::File
- Added http ca file config
- added the option to set a
status_message
on aStatus
through the initializer of aResponse
.
- added the
request_unsupported?
helper method toResponse
.
- allow
LogoutRequest
to usexml_value
- add
not_on_or_after
on logout requests
- call
use_original
on a root object with the object that requires the original value
- call
use_parsed
on 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::XmlInjector
to 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
AudienceRestriction
now has manyAudience
elements.
- an
- enhancements
- prevent multiple
Assertion
elements and it’s elements being added as associations to the root element when there are nestedAssertion
elements.
- prevent multiple
- enhancements
- added the
fetch_attribute_value
helper method toAssertion
andAttributeStatement
. - added the
fetch_attribute_values
helper method toAssertion
andAttributeStatement
.
- added the
- enhancements
- added the
unknown_principal?
helper method toResponse
.
- added the
- enhancements
- added
AssertionIDRef
to the AdviceType. - an
Assertion
now has manyAttributeStatements
instead of just one.
- added
- enhancements
- added
AttributeAuthorithyDescriptor
as a descriptor for the Provider, which now returns aSaml::ComplexTypes::RoleDescriptorType
instead of aSaml::ComplexTypes::SSODescriptorType
- added
- enhancements
- add a new
SubjectConfirmation
element as an Array when aSubject
is initialized - a
SubjectConfirmation
element has only oneSubjectConfirmationData
element
- add a new
- enhancements
- added
attribute_service_url
toSaml::Provider
- added
- enhancements
- added an `Advice`` element and it’s
AdviceType
complex type - added `Advice`` element on an
Assertion
element - added `EncryptedID`` element on a
Subject
element - added validation on
Subject
element 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
StatusMessage
element to theStatus
element. - a
StatusDetail
element (which is optional) will only be added to aStatus
element when it’s provided as an argument, thus not by default.
- added a
- enhancements
- an
AttributeValue
element can have anEncryptedID
element - added helper methods for encrypting a
NameId
element and encrypting/decrypting anEncryptedID
element
- an
- enhancements
- removed the
http://www.w3.org/2001/XMLSchema
andhttp://www.w3.org/2001/XMLSchema-instance
namespaces from theto_soap
method.
- removed the
- enhancements
- changed the
#attribute_value=
method onComplexTypes::AttributeValue
so it will replace the existing attribute values, instead of appending to it
- changed the
- enhancements
- added
AttributeValue
element - added the possibility to have many
AttributeValue
elements on elements which include theComplexTypes::AttributeType
- the
#attribute_value
method onComplexTypes::AttributeType
is now deprecated
- added
- updated xmlenc dependency
- enhancements
- added the possibility to use a
KeyDescriptor
in theUtil::EncryptAssertion
method, so we can set thekey_name
in the encrypted assertion.
- added the possibility to use a
- enhancements
- added
name_id_formats
to theSSODescriptorType
complex 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
ArtifactResponse
received the signature of its inner signed message.
- fixed a parsing bug where an unsigned
- enhancements
- added
authn_request
element on anArtifactResponse
so that both aResponse
as well as anAuthnRequest
can be transferred.
- added
- enhancements
- added
attribute_authority_descriptor
element, which extends theRoleDescriptorType
complex type, to anentity_descriptor
element - added
role_descriptor_type
complex type
- added
- enhancements
- added
status_detail
element
- added
- enhancements
- added metadata publication info element
- enhancements
- added
fetch_attributes
method to fetch multiple attributes with the same name from an assertion
- added
- updated xmlenc dependency
- enhancements
- allow metadata
key_descriptor
use to be omitted and be used as default
- allow metadata
- enhancements
- added backwards compatible
has_many
forauthn_context_class_refs
so 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.provider
cannot findentity id