diff --git a/core/lib/Drupal/Core/Authentication/AuthenticationManager.php b/core/lib/Drupal/Core/Authentication/AuthenticationManager.php
index 2886030..5a928df 100644
--- a/core/lib/Drupal/Core/Authentication/AuthenticationManager.php
+++ b/core/lib/Drupal/Core/Authentication/AuthenticationManager.php
@@ -20,7 +20,7 @@
  *
  * If no provider set an active user then the user is set to anonymous.
  */
-class AuthenticationManager implements AuthenticationProviderInterface, AuthenticationProviderFilterInterface, AuthenticationProviderChallengeInterface {
+class AuthenticationManager implements AuthenticationManagerInterface, AuthenticationProviderInterface, AuthenticationProviderFilterInterface, AuthenticationProviderChallengeInterface {
 
   /**
    * Array of all registered authentication providers, keyed by ID.
@@ -80,14 +80,7 @@ public function __construct($global_providers = ['cookie' => TRUE]) {
   }
 
   /**
-   * Adds a provider to the array of registered providers.
-   *
-   * @param \Drupal\Core\Authentication\AuthenticationProviderInterface $provider
-   *   The provider object.
-   * @param string $id
-   *   Identifier of the provider.
-   * @param int $priority
-   *   The providers priority.
+   * {@inheritdoc}
    */
   public function addProvider(AuthenticationProviderInterface $provider, $id, $priority = 0) {
     // Remove the 'authentication.' prefix from the provider ID.
@@ -109,6 +102,13 @@ public function addProvider(AuthenticationProviderInterface $provider, $id, $pri
   /**
    * {@inheritdoc}
    */
+  public function getProviderKeys() {
+    return array_keys($this->getSortedProviders());
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function applies(Request $request) {
     return (bool) $this->getProvider($request);
   }
diff --git a/core/lib/Drupal/Core/Authentication/AuthenticationManagerInterface.php b/core/lib/Drupal/Core/Authentication/AuthenticationManagerInterface.php
new file mode 100644
index 0000000..235d8d1
--- /dev/null
+++ b/core/lib/Drupal/Core/Authentication/AuthenticationManagerInterface.php
@@ -0,0 +1,34 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Core\Authentication\AuthenticationManagerInterface.
+ */
+
+namespace Drupal\Core\Authentication;
+
+/**
+ * Interface for Authentication Managers.
+ */
+interface AuthenticationManagerInterface {
+
+  /**
+   * Adds a provider to the array of registered providers.
+   *
+   * @param \Drupal\Core\Authentication\AuthenticationProviderInterface $provider
+   *   The provider object.
+   * @param string $id
+   *   Identifier of the provider.
+   * @param int $priority
+   *   The providers priority.
+   */
+  public function addProvider(AuthenticationProviderInterface $provider, $id, $priority = 0);
+
+  /**
+   * List of provider keys.
+   *
+   * @return array
+   */
+  public function getProviderKeys();
+
+}
