From 5c4461b47d1f48098bf71a6d70457901b25dd2dc Mon Sep 17 00:00:00 2001 From: Konrad Klockgether <12186615+Nielio@users.noreply.github.com> Date: Fri, 5 May 2023 17:03:57 +0200 Subject: [PATCH 1/3] Update saml2.coffee Add Format attribute to saml:NameID tag in logoutRequest --- lib/saml2.coffee | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/saml2.coffee b/lib/saml2.coffee index fcc1294..468c6be 100644 --- a/lib/saml2.coffee +++ b/lib/saml2.coffee @@ -85,7 +85,7 @@ create_metadata = (entity_id, assert_endpoint, signing_certificates, encryption_ .end() # Creates a LogoutRequest and returns it as a string of xml. -create_logout_request = (issuer, name_id, session_index, destination) -> +create_logout_request = (issuer, name_id, session_index, destination, nameid_format) -> id = '_' + crypto.randomBytes( 21 ).toString( 'hex' ) xml = xmlbuilder.create 'samlp:LogoutRequest': @@ -97,6 +97,7 @@ create_logout_request = (issuer, name_id, session_index, destination) -> '@Destination': destination 'saml:Issuer': issuer 'saml:NameID': name_id + '@Format': nameid_format 'samlp:SessionIndex': session_index .end() @@ -675,7 +676,7 @@ module.exports.ServiceProvider = create_logout_request_url: (identity_provider, options, cb) => identity_provider = { sso_logout_url: identity_provider, options: {} } if _.isString(identity_provider) options = set_option_defaults options, identity_provider.shared_options, @shared_options - {id, xml} = create_logout_request @entity_id, options.name_id, options.session_index, identity_provider.sso_logout_url + {id, xml} = create_logout_request @entity_id, options.name_id, options.session_index, identity_provider.sso_logout_url, @shared_options.nameid_format zlib.deflateRaw xml, (err, deflated) => return cb err if err? try From 27c02d6404d5ad0bca7fd85acef1e5293d0df208 Mon Sep 17 00:00:00 2001 From: Konrad Klockgether Date: Fri, 5 May 2023 17:19:39 +0200 Subject: [PATCH 2/3] add default Format value for saml:NameID on logout request --- lib/saml2.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/saml2.coffee b/lib/saml2.coffee index 468c6be..1942500 100644 --- a/lib/saml2.coffee +++ b/lib/saml2.coffee @@ -97,7 +97,7 @@ create_logout_request = (issuer, name_id, session_index, destination, nameid_for '@Destination': destination 'saml:Issuer': issuer 'saml:NameID': name_id - '@Format': nameid_format + '@Format': nameid_format or 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified' 'samlp:SessionIndex': session_index .end() From d0b7eda03428a798f837099158dbc593dff841f9 Mon Sep 17 00:00:00 2001 From: Konrad Klockgether Date: Fri, 5 May 2023 17:22:01 +0200 Subject: [PATCH 3/3] fix saml:NameID on logout request --- lib/saml2.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/saml2.coffee b/lib/saml2.coffee index 1942500..3e750f6 100644 --- a/lib/saml2.coffee +++ b/lib/saml2.coffee @@ -96,7 +96,8 @@ create_logout_request = (issuer, name_id, session_index, destination, nameid_for '@IssueInstant': (new Date()).toISOString() '@Destination': destination 'saml:Issuer': issuer - 'saml:NameID': name_id + 'saml:NameID': + '@Value': name_id '@Format': nameid_format or 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified' 'samlp:SessionIndex': session_index .end()