diff --git a/modules/saml/lib/Auth/Source/SP.php b/modules/saml/lib/Auth/Source/SP.php index 5004069b67b850eecb344db4dba6b5d86b25f479..08e5c48f8ede1ce47e1588bb2a535631a69f8f9c 100644 --- a/modules/saml/lib/Auth/Source/SP.php +++ b/modules/saml/lib/Auth/Source/SP.php @@ -377,6 +377,14 @@ class sspmod_saml_Auth_Source_SP extends SimpleSAML_Auth_Source { $lr->setSessionIndex($sessionIndex); $lr->setRelayState($id); + $encryptNameId = $idpMetadata->getBoolean('nameid.encryption', NULL); + if ($encryptNameId === NULL) { + $encryptNameId = $this->metadata->getBoolean('nameid.encryption', FALSE); + } + if ($encryptNameId) { + $lr->encryptNameId(sspmod_saml_Message::getEncryptionKey($idpMetadata)); + } + $b = new SAML2_HTTPRedirect(); $b->send($lr); diff --git a/modules/saml/lib/IdP/SAML2.php b/modules/saml/lib/IdP/SAML2.php index 589b343ef0f54189b9d413b5839a19f55d88dbb3..60fc77f8e86ff47559c2b51b7eef9f04763183bb 100644 --- a/modules/saml/lib/IdP/SAML2.php +++ b/modules/saml/lib/IdP/SAML2.php @@ -412,6 +412,14 @@ class sspmod_saml_IdP_SAML2 { $lr->setSessionIndex($association['saml:SessionIndex']); $lr->setNameId($association['saml:NameID']); + $encryptNameId = $spMetadata->getBoolean('nameid.encryption', NULL); + if ($encryptNameId === NULL) { + $encryptNameId = $idpMetadata->getBoolean('nameid.encryption', FALSE); + } + if ($encryptNameId) { + $lr->encryptNameId(sspmod_saml_Message::getEncryptionKey($spMetadata)); + } + $binding = new SAML2_HTTPRedirect(); return $binding->getRedirectURL($lr); }