diff --git a/core/modules/migrate/src/MigrateTemplateStorage.php b/core/modules/migrate/src/MigrateTemplateStorage.php
index c0fba0e..bf7f6cd 100644
--- a/core/modules/migrate/src/MigrateTemplateStorage.php
+++ b/core/modules/migrate/src/MigrateTemplateStorage.php
@@ -63,6 +63,22 @@ public function findTemplatesByTag($tag) {
   }
 
   /**
+   * Retrieve a template given a specific name.
+   *
+   * @param string $name
+   *   A migration template name.
+   *
+   * @return null|array
+   *   A parsed migration template.
+   */
+  public function getTemplateByName($name) {
+    $templates = $this->getAllTemplates();
+    return isset($templates[$name]) ?
+      $templates[$name] :
+      NULL;
+  }
+
+  /**
    * Retrieves all migration templates belonging to enabled extensions.
    *
    * @return array
diff --git a/core/modules/migrate/src/Tests/TemplateTest.php b/core/modules/migrate/src/Tests/TemplateTest.php
index b110f6c..8e4a451 100644
--- a/core/modules/migrate/src/Tests/TemplateTest.php
+++ b/core/modules/migrate/src/Tests/TemplateTest.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\migrate\Tests;
 
-use Drupal\migrate\MigrationStorage;
-
 /**
  * Test the migration template functionality.
  *
@@ -49,4 +47,29 @@ public function testTemplates() {
     $this->assertFalse(isset($migration_templates['migrate.migration.other_template']));
   }
 
+  public function testGetTemplateByName() {
+    /** @var \Drupal\migrate\MigrateTemplateStorage $template_storage */
+    $template_storage = \Drupal::service('migrate.template_storage');
+
+    $expected_url = [
+      'id' => 'url_template',
+      'label' => 'Template test - url',
+      'migration_tags' => ['Template Test'],
+      'source' => ['plugin' => 'empty'],
+      'process' => ['src' => 'foobar'],
+      'destination' => ['plugin' => 'url_alias'],
+    ];
+    $expected_node = [
+      'id' => 'node_template',
+      'label' => 'Template test - node',
+      'migration_tags' => ['Template Test'],
+      'source' => ['plugin' => 'empty'],
+      'process' => ['src' => 'barfoo'],
+      'destination' => ['plugin' => 'entity:node'],
+    ];
+    $this->assertIdentical($template_storage->getTemplateByName('migrate.migration.url_template'), $expected_url);
+    $this->assertIdentical($template_storage->getTemplateByName('migrate.migration.node_template'), $expected_node);
+    $this->assertNull($template_storage->getTemplateByName('migrate.migration.dne'));
+  }
+
 }
