 core/core.services.yml                       |  5 +++++
 core/lib/Drupal/Core/Authentication/Anon.php | 24 ++++++++++++++++++++++++
 2 files changed, 29 insertions(+)

diff --git a/core/core.services.yml b/core/core.services.yml
index 459503e..e1f029c 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -1452,6 +1452,11 @@ services:
     class: Drupal\Core\Authentication\AuthenticationCollector
     tags:
       - { name: service_collector, tag: authentication_provider, call: addProvider }
+  authentication.anon:
+    class: Drupal\Core\Authentication\Anon
+    arguments: []
+    tags:
+      - { name: authentication_provider, provider_id: 'anon', priority: 0, global: TRUE }
   authentication_subscriber:
     class: Drupal\Core\EventSubscriber\AuthenticationSubscriber
     arguments: ['@authentication', '@current_user']
diff --git a/core/lib/Drupal/Core/Authentication/Anon.php b/core/lib/Drupal/Core/Authentication/Anon.php
new file mode 100644
index 0000000..5d3ef8d
--- /dev/null
+++ b/core/lib/Drupal/Core/Authentication/Anon.php
@@ -0,0 +1,24 @@
+<?php
+
+namespace Drupal\Core\Authentication;
+
+use Drupal\Core\Session\AnonymousUserSession;
+use Symfony\Component\HttpFoundation\Request;
+
+class Anon implements AuthenticationProviderInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function applies(Request $request) {
+    return TRUE;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function authenticate(Request $request) {
+    return new AnonymousUserSession();
+  }
+
+}
