IdentityServer использует асимметричное шифрование. Асимметричное шифрование означает, что у вас есть открытый ключ и закрытый ключ. Открытый ключ является общедоступным (очевидно) и используется только для шифрования. Закрытый ключ, ну, в общем, закрытый. Он должен быть строго защищен и никогда не передаваться, и он используется для расшифровки. Ключ подписи - это ваш открытый ключ, а ключ проверки - ваш закрытый ключ, так что да, вам нужны оба. X509Certicate можно использовать, потому что в сертификатах используются как открытые, так и закрытые ключи, но в конечном итоге IdentityServer просто использует сертификат для получения ключей.
Метод AddValidationKeys
(множественное число) явно используется для переключения клавиш. Например, срок действия вашего сертификата истекает через год (по умолчанию в большинстве случаев). В конце этого периода вы бы заменили его новым сертификатом. Однако клиенты могут по-прежнему иметь токены доступа и такие, зашифрованные с помощью открытого ключа из предыдущего сертификата, и IdentityServer понадобится закрытый ключ из предыдущего сертификата для его расшифровки. Используя этот метод, вы можете добавить предыдущие ключи только с целью проверки материала, который IdentityServer не может проверить с текущими ключами.
Защита данных действительно полностью отделена. Он тоже использует открытый и закрытый ключи, чтобы делать то, что он делает, поэтому технически вы могли бы использовать те же ключи и для IdentityServer. Однако лучше ограничить использование ваших ключей уникальными целями. Таким образом, если вы все-таки подвергнетесь риску, вы не будете полностью скомпрометированы и можете несколько ограничить объем потенциальной утечки.