diff --git a/lib/SimpleSAML/Utilities.php b/lib/SimpleSAML/Utilities.php
index 3a8018aef05f10436bae5cb3e62d52f9e06b0f4b..98684ebf181a816117b49eabcef5721023e78c44 100644
--- a/lib/SimpleSAML/Utilities.php
+++ b/lib/SimpleSAML/Utilities.php
@@ -1107,39 +1107,11 @@ class SimpleSAML_Utilities {
 	 * @return A non-reversible unique identifier for the user.
 	 */
 	public static function generateUserIdentifier($idpEntityId, $spEntityId, array &$state, $idpset = 'saml20-idp-hosted', $spset = 'saml20-sp-remote') {
-	
-		$metadataHandler = SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler();
-		$idpMetadata = $metadataHandler->getMetaData($idpEntityId, $idpset);
-		$spMetadata = $metadataHandler->getMetaData($spEntityId, $spset);
-
-		if (isset($state['UserID'])) {
-			$attributeValue = $state['UserID'];
-		} else {
-			if(array_key_exists('userid.attribute', $spMetadata)) {
-				$attributeName = $spMetadata['userid.attribute'];
-			} elseif(array_key_exists('userid.attribute', $idpMetadata)) {
-				$attributeName = $idpMetadata['userid.attribute'];
-			} else {
-				$attributeName = 'eduPersonPrincipalName';
-			}
 
-			if(!array_key_exists($attributeName, $attributes)) {
-				throw new Exception('Missing attribute "' . $attributeName . '" for user. Cannot' .
-					' generate user id.');
-			}
-
-			$attributeValue = $attributes[$attributeName];
-			if(count($attributeValue) !== 1) {
-				throw new Exception('Attribute "' . $attributeName . '" for user did not contain exactly' .
-					' one value. Cannot generate user id.');
-			}
-
-			$attributeValue = $attributeValue[0];
-			if(empty($attributeValue)) {
-				throw new Exception('Attribute "' . $attributeName . '" for user was empty. Cannot' .
-					' generate user id.');
-			}
+		if (!isset($state['UserID'])) {
+			throw new SimpleSAML_Error_Exception('Missing UserID. Please set the userid.attribute metadata option.');
 		}
+		$attributeValue = $state['UserID'];
 
 		$secretSalt = self::getSecretSalt();