diff --git a/core/core.services.yml b/core/core.services.yml
index 83ab732..431c7be 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -851,6 +851,8 @@ services:
       - { name: needs_destruction }
   authentication:
     class: Drupal\Core\Authentication\AuthenticationManager
+    tags:
+      - { name: service_collector, tag: authentication_provider, call: addProvider }
   authentication_subscriber:
     class: Drupal\Core\EventSubscriber\AuthenticationSubscriber
     tags:
diff --git a/core/lib/Drupal/Core/Authentication/AuthenticationManager.php b/core/lib/Drupal/Core/Authentication/AuthenticationManager.php
index 1a7ca6e..4496193 100644
--- a/core/lib/Drupal/Core/Authentication/AuthenticationManager.php
+++ b/core/lib/Drupal/Core/Authentication/AuthenticationManager.php
@@ -57,14 +57,14 @@ class AuthenticationManager implements AuthenticationProviderInterface, Authenti
   /**
    * Adds a provider to the array of registered providers.
    *
-   * @param string $provider_id
-   *   Identifier of the provider.
    * @param \Drupal\Core\Authentication\AuthenticationProviderInterface $provider
    *   The provider object.
+   * @param string $provider_id
+   *   Identifier of the provider.
    * @param int $priority
    *   The providers priority.
    */
-  public function addProvider($provider_id, AuthenticationProviderInterface $provider, $priority = 0) {
+  public function addProvider(AuthenticationProviderInterface $provider, $provider_id, $priority = 0) {
     $provider_id = substr($provider_id, strlen('authentication.'));
 
     $this->providers[$provider_id] = $provider;
diff --git a/core/lib/Drupal/Core/CoreServiceProvider.php b/core/lib/Drupal/Core/CoreServiceProvider.php
index 11b9e3e..a006a98 100644
--- a/core/lib/Drupal/Core/CoreServiceProvider.php
+++ b/core/lib/Drupal/Core/CoreServiceProvider.php
@@ -17,7 +17,6 @@
 use Drupal\Core\DependencyInjection\Compiler\RegisterKernelListenersPass;
 use Drupal\Core\DependencyInjection\Compiler\RegisterAccessChecksPass;
 use Drupal\Core\DependencyInjection\Compiler\RegisterServicesForDestructionPass;
-use Drupal\Core\DependencyInjection\Compiler\RegisterAuthenticationPass;
 use Drupal\Core\Plugin\PluginManagerPass;
 use Drupal\Core\Site\Settings;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -69,9 +68,6 @@ public function register(ContainerBuilder $container) {
     $container->addCompilerPass(new ListCacheBinsPass());
     $container->addCompilerPass(new CacheContextsPass());
 
-    // Add the compiler pass that will process tagged authentication services.
-    $container->addCompilerPass(new RegisterAuthenticationPass());
-
     // Register plugin managers.
     $container->addCompilerPass(new PluginManagerPass());
   }
diff --git a/core/lib/Drupal/Core/DependencyInjection/Compiler/RegisterAuthenticationPass.php b/core/lib/Drupal/Core/DependencyInjection/Compiler/RegisterAuthenticationPass.php
deleted file mode 100644
index dd975a9..0000000
--- a/core/lib/Drupal/Core/DependencyInjection/Compiler/RegisterAuthenticationPass.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\Core\DependencyInjection\Compiler\RegisterAuthenticationPass.
- */
-
-namespace Drupal\Core\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
-
-/**
- * Adds services tagged 'authentication_provider'.
- */
-class RegisterAuthenticationPass implements CompilerPassInterface {
-
-  /**
-   * Adds authentication providers to the authentication manager.
-   *
-   * Check for services tagged with 'authentication_provider' and add them to
-   * the authentication manager.
-   *
-   * @see \Drupal\Core\Authentication\AuthenticationManager
-   * @see \Drupal\Core\Authentication\AuthenticationProviderInterface
-   */
-  public function process(ContainerBuilder $container) {
-    if (!$container->hasDefinition('authentication')) {
-      return;
-    }
-    // Get the authentication manager.
-    $matcher = $container->getDefinition('authentication');
-    // Iterate all autentication providers and add them to the manager.
-    foreach ($container->findTaggedServiceIds('authentication_provider') as $id => $attributes) {
-      $priority = isset($attributes[0]['priority']) ? $attributes[0]['priority'] : 0;
-      $matcher->addMethodCall('addProvider', array(
-        $id,
-        new Reference($id),
-        $priority,
-      ));
-    }
-  }
-}
