diff --git a/lib/SimpleSAML/Metadata/SAMLParser.php b/lib/SimpleSAML/Metadata/SAMLParser.php
index 8822451abd3cd5cbf76bcdfbf0d1d16953718e3f..815b24ff3f0718f8a3d313046debe79d02711b2f 100644
--- a/lib/SimpleSAML/Metadata/SAMLParser.php
+++ b/lib/SimpleSAML/Metadata/SAMLParser.php
@@ -623,6 +623,15 @@ class SimpleSAML_Metadata_SAMLParser {
 			$ret['keys'] = $spd['keys'];
 		}
 
+		/* Add validate.authnrequest. */
+		if (array_key_exists('AuthnRequestsSigned', $spd)) {
+			$ret['validate.authnrequest'] = $spd['AuthnRequestsSigned'];
+		}
+
+		/* Add saml20.sign.assertion. */
+		if (array_key_exists('WantAssertionsSigned', $spd)) {
+			$ret['saml20.sign.assertion'] = $spd['WantAssertionsSigned'];
+		}
 
 		/* Add extensions. */
 		$this->addExtensions($ret, $spd);
@@ -810,6 +819,16 @@ class SimpleSAML_Metadata_SAMLParser {
 			self::parseAttributeConsumerService($attcs[0], $sp);
 		}
 
+		/* Check AuthnRequestsSigned */
+		if ($element->AuthnRequestsSigned !== NULL) {
+			$sp['AuthnRequestsSigned'] = $element->AuthnRequestsSigned;
+		}
+
+		/* Check WantAssertionsSigned */
+		if ($element->WantAssertionsSigned !== NULL) {
+			$sp['WantAssertionsSigned'] = $element->WantAssertionsSigned;
+		}
+
 		$this->spDescriptors[] = $sp;
 	}