[auth] Delete fuchsia::Modular::auth::TokenProvider instances.

This change:
* Deletes |token_provider.fidl| and all its corresponding instances are removed
from the modular and ledger codebases.
* Removes support to old deprecated GetAuthenticationContext interface.
* Replaces all V2 method names to the original names.
* P2P sync code is updated with support to only the fuchsia::auth::TokenManager
  version.

TESTED = CQ, Manual login, Guest login,
         fx run-test peridot_public_lib_unittests,
	 fx run-test peridot_lib_unittests,
	 fx shell /pkgfs/packages/modular_tests/0/test/run_modular_tests.sh

Change-Id: Ib1ff6215b5e35dcc0a13dcbebe4d4eac479a2275
diff --git a/bin/agents/clipboard/meta/clipboard_agent.cmx b/bin/agents/clipboard/meta/clipboard_agent.cmx
index 6930e41..ea5cd3a 100644
--- a/bin/agents/clipboard/meta/clipboard_agent.cmx
+++ b/bin/agents/clipboard/meta/clipboard_agent.cmx
@@ -8,7 +8,6 @@
             "fuchsia.cobalt.LoggerFactory",
             "fuchsia.modular.ComponentContext",
             "fuchsia.modular.ModuleContext",
-            "fuchsia.modular.auth.TokenProvider",
             "fuchsia.modular.AgentContext",
             "fuchsia.net.LegacySocketProvider",
             "fuchsia.net.oldhttp.HttpService",
diff --git a/bin/basemgr/basemgr_impl.cc b/bin/basemgr/basemgr_impl.cc
index 6dc2ebc..2d122a1 100644
--- a/bin/basemgr/basemgr_impl.cc
+++ b/bin/basemgr/basemgr_impl.cc
@@ -48,7 +48,6 @@
       on_shutdown_(std::move(on_shutdown)),
       user_provider_impl_("UserProviderImpl"),
       base_shell_context_binding_(this),
-      account_provider_context_binding_(this),
       authentication_context_provider_binding_(this) {
   UpdateSessionShellConfig();
 
@@ -164,25 +163,6 @@
   return did_stop;
 }
 
-FuturePtr<> BasemgrImpl::StopAccountProvider() {
-  if (!account_provider_) {
-    FXL_DLOG(INFO) << "StopAccountProvider() called when already stopped";
-
-    return Future<>::CreateCompleted("StopAccountProvider::Completed");
-  }
-
-  auto did_stop = Future<>::Create("StopAccountProvider");
-
-  account_provider_->Teardown(kBasicTimeout, [did_stop, this] {
-    FXL_DLOG(INFO) << "- fuchsia::modular::auth::AccountProvider down";
-
-    account_provider_.release();
-    did_stop->Complete();
-  });
-
-  return did_stop;
-}
-
 FuturePtr<> BasemgrImpl::StopTokenManagerFactoryApp() {
   if (!token_manager_factory_app_) {
     FXL_DLOG(INFO)
@@ -221,35 +201,19 @@
   }
 
   // Start OAuth Token Manager App.
+  token_manager_factory_app_.release();
   fuchsia::modular::AppConfig token_manager_config;
-  if (settings_.enable_garnet_token_manager) {
-    token_manager_config.url = "token_manager_factory";
-    FXL_DLOG(INFO) << "Initialzing token_manager_factory_app()";
-    token_manager_factory_app_ =
-        std::make_unique<AppClient<fuchsia::modular::Lifecycle>>(
-            launcher_, CloneStruct(token_manager_config));
-    token_manager_factory_app_->services().ConnectToService(
-        token_manager_factory_.NewRequest());
-  } else {
-    token_manager_config.url = settings_.account_provider.url;
-    token_manager_factory_app_.release();
-  }
-
-  account_provider_ =
-      std::make_unique<AppClient<fuchsia::modular::auth::AccountProvider>>(
-          launcher_, std::move(token_manager_config),
-          "/data/modular/ACCOUNT_MANAGER");
-  account_provider_->SetAppErrorHandler(
-      [] { FXL_CHECK(false) << "Token manager crashed. Stopping basemgr."; });
-  account_provider_->primary_service()->Initialize(
-      account_provider_context_binding_.NewBinding());
+  token_manager_config.url = settings_.account_provider.url;
+  token_manager_factory_app_ =
+      std::make_unique<AppClient<fuchsia::modular::Lifecycle>>(
+          launcher_, CloneStruct(token_manager_config));
+  token_manager_factory_app_->services().ConnectToService(
+      token_manager_factory_.NewRequest());
 
   user_provider_impl_.reset(new UserProviderImpl(
       launcher_, settings_.sessionmgr, session_shell_config_,
-      settings_.story_shell, account_provider_->primary_service().get(),
-      token_manager_factory_.get(),
-      authentication_context_provider_binding_.NewBinding().Bind(),
-      settings_.enable_garnet_token_manager, this));
+      settings_.story_shell, token_manager_factory_.get(),
+      authentication_context_provider_binding_.NewBinding().Bind(), this));
 
   ShowSetupOrLogin();
 
@@ -287,8 +251,6 @@
   // to.
   user_provider_impl_.Teardown(kUserProviderTimeout, [this] {
     FXL_DLOG(INFO) << "- fuchsia::modular::UserProvider down";
-    StopAccountProvider()->Then([this] {
-      FXL_DLOG(INFO) << "- fuchsia::modular::auth::AccountProvider down";
       StopTokenManagerFactoryApp()->Then([this] {
         FXL_DLOG(INFO) << "- fuchsia::auth::TokenManagerFactory down";
         StopBaseShell()->Then([this] {
@@ -296,21 +258,9 @@
           on_shutdown_();
         });
       });
-    });
   });
 }
 
-void BasemgrImpl::GetAuthenticationContext(
-    fidl::StringPtr account_id,
-    fidl::InterfaceRequest<fuchsia::modular::auth::AuthenticationContext>
-        request) {
-  // TODO(MI4-1107): Basemgr needs to implement AuthenticationContext
-  // itself, and proxy calls for StartOverlay & StopOverlay to BaseShell,
-  // starting it if it's not running yet.
-  FXL_CHECK(base_shell_);
-  base_shell_->GetAuthenticationContext(account_id, std::move(request));
-}
-
 void BasemgrImpl::GetAuthenticationUIContext(
     fidl::InterfaceRequest<fuchsia::auth::AuthenticationUIContext> request) {
   // TODO(MI4-1107): Basemgr needs to implement AuthenticationUIContext
diff --git a/bin/basemgr/basemgr_impl.h b/bin/basemgr/basemgr_impl.h
index 64aa95b..6f4ad89 100644
--- a/bin/basemgr/basemgr_impl.h
+++ b/bin/basemgr/basemgr_impl.h
@@ -40,7 +40,6 @@
 // 3) Manages the lifecycle of sessions, represented as |sessionmgr| processes.
 class BasemgrImpl : fuchsia::modular::BaseShellContext,
                     fuchsia::auth::AuthenticationContextProvider,
-                    fuchsia::modular::auth::AccountProviderContext,
                     fuchsia::ui::policy::KeyboardCaptureListenerHACK,
                     modular::UserProviderImpl::Delegate {
  public:
@@ -73,8 +72,6 @@
 
   FuturePtr<> StopBaseShell();
 
-  FuturePtr<> StopAccountProvider();
-
   FuturePtr<> StopTokenManagerFactoryApp();
 
   void Start();
@@ -86,12 +83,6 @@
   // |fuchsia::modular::BaseShellContext|
   void Shutdown() override;
 
-  // |AccountProviderContext|
-  void GetAuthenticationContext(
-      fidl::StringPtr account_id,
-      fidl::InterfaceRequest<fuchsia::modular::auth::AuthenticationContext>
-          request) override;
-
   // |AuthenticationContextProvider|
   void GetAuthenticationUIContext(
       fidl::InterfaceRequest<fuchsia::auth::AuthenticationUIContext> request)
@@ -155,13 +146,9 @@
   AsyncHolder<UserProviderImpl> user_provider_impl_;
 
   fidl::Binding<fuchsia::modular::BaseShellContext> base_shell_context_binding_;
-  fidl::Binding<fuchsia::modular::auth::AccountProviderContext>
-      account_provider_context_binding_;
   fidl::Binding<fuchsia::auth::AuthenticationContextProvider>
       authentication_context_provider_binding_;
 
-  std::unique_ptr<AppClient<fuchsia::modular::auth::AccountProvider>>
-      account_provider_;
   std::unique_ptr<AppClient<fuchsia::modular::Lifecycle>>
       token_manager_factory_app_;
   fuchsia::auth::TokenManagerFactoryPtr token_manager_factory_;
diff --git a/bin/basemgr/basemgr_settings.cc b/bin/basemgr/basemgr_settings.cc
index 9770a20..d358b9a 100644
--- a/bin/basemgr/basemgr_settings.cc
+++ b/bin/basemgr/basemgr_settings.cc
@@ -25,13 +25,12 @@
   session_shell.url = command_line.GetOptionValueWithDefault(
       "session_shell", "ermine_session_shell");
   account_provider.url = command_line.GetOptionValueWithDefault(
-      "account_provider", "oauth_token_manager");
+      "account_provider", "token_manager_factory");
 
   disable_statistics = command_line.HasOption("disable_statistics");
   no_minfs = command_line.HasOption("no_minfs");
   test = command_line.HasOption("test");
   enable_presenter = command_line.HasOption("enable_presenter");
-  enable_garnet_token_manager = true;
 
   ParseShellArgs(command_line.GetOptionValueWithDefault("base_shell_args", ""),
                  &base_shell.args);
@@ -70,7 +69,6 @@
       --no_minfs
       --test
       --enable_presenter
-      --enable_garnet_token_manager
     DEVICE_NAME: Name which session shell uses to identify this device.
     BASE_SHELL:  URL of the base shell to run.
                 Defaults to "userpicker_base_shell".
diff --git a/bin/basemgr/basemgr_settings.h b/bin/basemgr/basemgr_settings.h
index b79249f..0cfe6cd 100644
--- a/bin/basemgr/basemgr_settings.h
+++ b/bin/basemgr/basemgr_settings.h
@@ -32,7 +32,6 @@
   bool no_minfs;
   bool test;
   bool enable_presenter;
-  bool enable_garnet_token_manager;
 
  private:
   void ParseShellArgs(const std::string& value,
diff --git a/bin/basemgr/dev_base_shell.cc b/bin/basemgr/dev_base_shell.cc
index fd34bde..f01490c 100644
--- a/bin/basemgr/dev_base_shell.cc
+++ b/bin/basemgr/dev_base_shell.cc
@@ -124,15 +124,6 @@
   }
 
   // |fuchsia::modular::BaseShell|
-  void GetAuthenticationContext(
-      fidl::StringPtr /*username*/,
-      fidl::InterfaceRequest<
-          fuchsia::modular::auth::AuthenticationContext> /*request*/) override {
-    FXL_LOG(INFO) << "fuchsia::modular::BaseShell::GetAuthenticationContext()"
-                     " is unimplemented.";
-  }
-
-  // |fuchsia::modular::BaseShell|
   void GetAuthenticationUIContext(
       fidl::InterfaceRequest<
           fuchsia::auth::AuthenticationUIContext> /*request*/) override {
diff --git a/bin/basemgr/user_controller_impl.cc b/bin/basemgr/user_controller_impl.cc
index ebe7fdf..1dc48d9 100644
--- a/bin/basemgr/user_controller_impl.cc
+++ b/bin/basemgr/user_controller_impl.cc
@@ -21,8 +21,6 @@
     fuchsia::modular::AppConfig sessionmgr,
     fuchsia::modular::AppConfig session_shell,
     fuchsia::modular::AppConfig story_shell,
-    fidl::InterfaceHandle<fuchsia::modular::auth::TokenProviderFactory>
-        token_provider_factory,
     fidl::InterfaceHandle<fuchsia::auth::TokenManager> ledger_token_manager,
     fidl::InterfaceHandle<fuchsia::auth::TokenManager> agent_token_manager,
     fuchsia::modular::auth::AccountPtr account,
@@ -61,9 +59,8 @@
   sessionmgr_app_->services().ConnectToService(sessionmgr_.NewRequest());
   sessionmgr_->Initialize(
       std::move(account), std::move(session_shell), std::move(story_shell),
-      std::move(token_provider_factory), std::move(ledger_token_manager),
-      std::move(agent_token_manager), user_context_binding_.NewBinding(),
-      std::move(view_owner_request));
+      std::move(ledger_token_manager), std::move(agent_token_manager),
+      user_context_binding_.NewBinding(), std::move(view_owner_request));
 
   sessionmgr_app_->SetAppErrorHandler([this] {
     FXL_LOG(ERROR) << "Sessionmgr seems to have crashed unexpectedly. "
diff --git a/bin/basemgr/user_controller_impl.h b/bin/basemgr/user_controller_impl.h
index 7bc3da9..1af0f6a 100644
--- a/bin/basemgr/user_controller_impl.h
+++ b/bin/basemgr/user_controller_impl.h
@@ -44,8 +44,6 @@
       fuchsia::modular::AppConfig sessionmgr,
       fuchsia::modular::AppConfig session_shell,
       fuchsia::modular::AppConfig story_shell,
-      fidl::InterfaceHandle<fuchsia::modular::auth::TokenProviderFactory>
-          token_provider_factory,
       fidl::InterfaceHandle<fuchsia::auth::TokenManager> ledger_token_manager,
       fidl::InterfaceHandle<fuchsia::auth::TokenManager> agent_token_manager,
       fuchsia::modular::auth::AccountPtr account,
diff --git a/bin/basemgr/user_controller_impl_unittest.cc b/bin/basemgr/user_controller_impl_unittest.cc
index bd5b0e2..ff99304 100644
--- a/bin/basemgr/user_controller_impl_unittest.cc
+++ b/bin/basemgr/user_controller_impl_unittest.cc
@@ -17,36 +17,6 @@
 using ::component::testing::FakeLauncher;
 using UserControllerImplTest = gtest::TestLoopFixture;
 
-TEST_F(UserControllerImplTest, StartSessionmgrWithTokenProviderFactory) {
-  FakeLauncher launcher;
-  std::string url = "test_url_string";
-  fuchsia::modular::AppConfig app_config;
-  app_config.url = url;
-
-  bool callback_called = false;
-  launcher.RegisterComponent(
-      url, [&callback_called](
-               fuchsia::sys::LaunchInfo launch_info,
-               fidl::InterfaceRequest<fuchsia::sys::ComponentController> ctrl) {
-        callback_called = true;
-      });
-
-  fuchsia::modular::auth::TokenProviderFactoryPtr token_provider_factory;
-  fuchsia::auth::TokenManagerPtr ledger_token_manager;
-  fuchsia::auth::TokenManagerPtr agent_token_manager;
-  fuchsia::modular::UserControllerPtr user_controller;
-
-  UserControllerImpl impl(
-      &launcher, CloneStruct(app_config), CloneStruct(app_config),
-      CloneStruct(app_config), std::move(token_provider_factory),
-      std::move(ledger_token_manager), std::move(agent_token_manager),
-      nullptr /* account */, nullptr /* view_owner_request */,
-      nullptr /* base_shell_services */, user_controller.NewRequest(),
-      nullptr /* done_callback */);
-
-  EXPECT_TRUE(callback_called);
-}
-
 TEST_F(UserControllerImplTest, StartSessionmgrWithTokenManagers) {
   FakeLauncher launcher;
   std::string url = "test_url_string";
@@ -61,18 +31,16 @@
         callback_called = true;
       });
 
-  fuchsia::modular::auth::TokenProviderFactoryPtr token_provider_factory;
   fuchsia::auth::TokenManagerPtr ledger_token_manager;
   fuchsia::auth::TokenManagerPtr agent_token_manager;
   fuchsia::modular::UserControllerPtr user_controller;
 
   UserControllerImpl impl(
       &launcher, CloneStruct(app_config), CloneStruct(app_config),
-      CloneStruct(app_config), std::move(token_provider_factory),
-      std::move(ledger_token_manager), std::move(agent_token_manager),
-      nullptr /* account */, nullptr /* view_owner_request */,
-      nullptr /* base_shell_services */, user_controller.NewRequest(),
-      nullptr /* done_callback */);
+      CloneStruct(app_config), std::move(ledger_token_manager),
+      std::move(agent_token_manager), nullptr /* account */,
+      nullptr /* view_owner_request */, nullptr /* base_shell_services */,
+      user_controller.NewRequest(), nullptr /* done_callback */);
 
   EXPECT_TRUE(callback_called);
 }
@@ -92,7 +60,6 @@
         return;
       });
 
-  fuchsia::modular::auth::TokenProviderFactoryPtr token_provider_factory;
   fuchsia::auth::TokenManagerPtr ledger_token_manager;
   fuchsia::auth::TokenManagerPtr agent_token_manager;
   fuchsia::modular::UserControllerPtr user_controller;
@@ -100,10 +67,10 @@
   bool done_callback_called = false;
   UserControllerImpl impl(
       &launcher, CloneStruct(app_config), CloneStruct(app_config),
-      CloneStruct(app_config), std::move(token_provider_factory),
-      std::move(ledger_token_manager), std::move(agent_token_manager),
-      nullptr /* account */, nullptr /* view_owner_request */,
-      nullptr /* base_shell_services */, user_controller.NewRequest(),
+      CloneStruct(app_config), std::move(ledger_token_manager),
+      std::move(agent_token_manager), nullptr /* account */,
+      nullptr /* view_owner_request */, nullptr /* base_shell_services */,
+      user_controller.NewRequest(),
       /* done_callback = */ [&done_callback_called](UserControllerImpl*) {
         done_callback_called = true;
       });
diff --git a/bin/basemgr/user_provider_impl.cc b/bin/basemgr/user_provider_impl.cc
index f8b9d60..7b9475a 100644
--- a/bin/basemgr/user_provider_impl.cc
+++ b/bin/basemgr/user_provider_impl.cc
@@ -113,18 +113,15 @@
     const fuchsia::modular::AppConfig& sessionmgr,
     const fuchsia::modular::AppConfig& session_shell,
     const fuchsia::modular::AppConfig& story_shell,
-    fuchsia::modular::auth::AccountProvider* account_provider,
     fuchsia::auth::TokenManagerFactory* token_manager_factory,
     fuchsia::auth::AuthenticationContextProviderPtr
         authentication_context_provider,
-    bool use_token_manager_factory, Delegate* const delegate)
+    Delegate* const delegate)
     : launcher_(launcher),
       sessionmgr_(sessionmgr),
       session_shell_(session_shell),
       story_shell_(story_shell),
-      account_provider_(account_provider),
       token_manager_factory_(token_manager_factory),
-      use_token_manager_factory_(use_token_manager_factory),
       authentication_context_provider_(
           std::move(authentication_context_provider)),
       delegate_(delegate),
@@ -230,63 +227,6 @@
 void UserProviderImpl::AddUser(
     fuchsia::modular::auth::IdentityProvider identity_provider,
     AddUserCallback callback) {
-  if (!use_token_manager_factory_) {
-    AddUserV1(identity_provider, std::move(callback));
-  } else {
-    AddUserV2(identity_provider, std::move(callback));
-  }
-}
-
-void UserProviderImpl::RemoveUser(fidl::StringPtr account_id,
-                                  RemoveUserCallback callback) {
-  fuchsia::modular::auth::AccountPtr account;
-  if (users_storage_) {
-    for (const auto* user : *users_storage_->users()) {
-      if (user->id()->str() == account_id) {
-        account = Convert(user);
-      }
-    }
-  }
-
-  if (!account) {
-    callback("User not found.");
-    return;
-  }
-
-  if (!use_token_manager_factory_) {
-    RemoveUserV1(std::move(account), std::move(callback));
-  } else {
-    RemoveUserV2(std::move(account), std::move(callback));
-  }
-}
-
-void UserProviderImpl::AddUserV1(
-    const fuchsia::modular::auth::IdentityProvider identity_provider,
-    AddUserCallback callback) {
-  FXL_DCHECK(account_provider_);
-
-  account_provider_->AddAccount(
-      identity_provider, [this, identity_provider, callback](
-                             fuchsia::modular::auth::AccountPtr account,
-                             fidl::StringPtr error_code) {
-        if (!account) {
-          callback(nullptr, error_code);
-          return;
-        }
-
-        std::string error;
-        if (!AddUserToAccountsDB(account.get(), &error)) {
-          callback(nullptr, error);
-          return;
-        }
-
-        callback(std::move(account), error_code);
-      });
-}
-
-void UserProviderImpl::AddUserV2(
-    const fuchsia::modular::auth::IdentityProvider identity_provider,
-    AddUserCallback callback) {
   FXL_DCHECK(token_manager_factory_);
 
   // Creating a new user, the initial bootstrapping will be done by
@@ -350,6 +290,25 @@
       });
 }
 
+void UserProviderImpl::RemoveUser(fidl::StringPtr account_id,
+                                  RemoveUserCallback callback) {
+  fuchsia::modular::auth::AccountPtr account;
+  if (users_storage_) {
+    for (const auto* user : *users_storage_->users()) {
+      if (user->id()->str() == account_id) {
+        account = Convert(user);
+      }
+    }
+  }
+
+  if (!account) {
+    callback("User not found.");
+    return;
+  }
+
+  RemoveUserInternal(std::move(account), std::move(callback));
+}
+
 bool UserProviderImpl::AddUserToAccountsDB(
     const fuchsia::modular::auth::Account* account, std::string* error) {
   FXL_DCHECK(account);
@@ -401,36 +360,8 @@
   return WriteUsersDb(new_serialized_users, error);
 }
 
-void UserProviderImpl::RemoveUserV1(fuchsia::modular::auth::AccountPtr account,
-                                    RemoveUserCallback callback) {
-  FXL_DCHECK(account);
-  FXL_DCHECK(account_provider_);
-
-  FXL_DLOG(INFO) << "Removing user account :" << account->id;
-
-  auto account_id = account->id;
-  account_provider_->RemoveAccount(
-      std::move(*account), false /* disable single logout*/,
-      [this, account_id, callback](fuchsia::modular::auth::AuthErr auth_err) {
-        if (auth_err.status != fuchsia::modular::auth::Status::OK) {
-          FXL_LOG(ERROR) << "Error from RemoveAccount(): " << auth_err.message;
-          callback(auth_err.message);
-          return;
-        }
-
-        std::string error;
-        if (!RemoveUserFromAccountsDB(account_id, &error)) {
-          FXL_LOG(ERROR) << "Error in updating user database: " << error;
-          callback(error);
-          return;
-        }
-
-        callback("");  // success
-      });
-}
-
-void UserProviderImpl::RemoveUserV2(fuchsia::modular::auth::AccountPtr account,
-                                    RemoveUserCallback callback) {
+void UserProviderImpl::RemoveUserInternal(
+    fuchsia::modular::auth::AccountPtr account, RemoveUserCallback callback) {
   FXL_DCHECK(account);
   auto account_id = account->id;
 
@@ -561,21 +492,14 @@
   auto account_id = account ? account->id.get() : GetRandomId();
   FXL_DLOG(INFO) << "Login() User:" << account_id;
 
-  fuchsia::modular::auth::TokenProviderFactoryPtr token_provider_factory;
-  fuchsia::auth::TokenManagerPtr ledger_token_manager;
-  fuchsia::auth::TokenManagerPtr agent_token_manager;
-  if (!use_token_manager_factory_) {
-    // Get |fuchsia::modular::auth::TokenProviderFactory| for this user.
-    account_provider_->GetTokenProviderFactory(
-        account_id, token_provider_factory.NewRequest());
-  } else {
     // Instead of passing token_manager_factory all the way to agents and
     // runners with all auth provider configurations, send two
     // |fuchsia::auth::TokenManager| handles, one for ledger and one for agents
     // for the given user account |account_id|.
-    ledger_token_manager = CreateTokenManager(account_id);
-    agent_token_manager = CreateTokenManager(account_id);
-  }
+  fuchsia::auth::TokenManagerPtr ledger_token_manager =
+      CreateTokenManager(account_id);
+  fuchsia::auth::TokenManagerPtr agent_token_manager =
+      CreateTokenManager(account_id);
 
   auto view_owner =
       delegate_->GetSessionShellViewOwner(std::move(params.view_owner));
@@ -584,7 +508,7 @@
 
   auto controller = std::make_unique<UserControllerImpl>(
       launcher_, CloneStruct(sessionmgr_), CloneStruct(session_shell_),
-      CloneStruct(story_shell_), std::move(token_provider_factory),
+      CloneStruct(story_shell_),
       std::move(ledger_token_manager), std::move(agent_token_manager),
       std::move(account), std::move(view_owner), std::move(service_provider),
       std::move(params.user_controller), [this](UserControllerImpl* c) {
diff --git a/bin/basemgr/user_provider_impl.h b/bin/basemgr/user_provider_impl.h
index 7cc9401..a7839ad 100644
--- a/bin/basemgr/user_provider_impl.h
+++ b/bin/basemgr/user_provider_impl.h
@@ -61,10 +61,9 @@
       const fuchsia::modular::AppConfig& sessionmgr,
       const fuchsia::modular::AppConfig& session_shell,
       const fuchsia::modular::AppConfig& story_shell,
-      fuchsia::modular::auth::AccountProvider* account_provider,
       fuchsia::auth::TokenManagerFactory* token_manager_factory,
       fuchsia::auth::AuthenticationContextProviderPtr auth_context_provider,
-      bool use_token_manager_factory, Delegate* const delegate);
+      Delegate* const delegate);
 
   void Connect(fidl::InterfaceRequest<fuchsia::modular::UserProvider> request);
 
@@ -96,24 +95,6 @@
       fidl::InterfaceRequest<fuchsia::auth::AuthenticationUIContext> request)
       override;
 
-  // Add user using |fuchsia::modular::auth::AccountProvider| interface.
-  void AddUserV1(
-      const fuchsia::modular::auth::IdentityProvider identity_provider,
-      AddUserCallback callback);
-
-  // Add user using |fuchsia::auth::TokenManagerFactory| interface.
-  void AddUserV2(
-      const fuchsia::modular::auth::IdentityProvider identity_provider,
-      AddUserCallback callback);
-
-  // Remove user using |fuchsia::modular::auth::AccountProvider| interface.
-  void RemoveUserV1(fuchsia::modular::auth::AccountPtr account,
-                    RemoveUserCallback callback);
-
-  // Remove user using |fuchsia::auth::TokenManagerFactory| interface.
-  void RemoveUserV2(fuchsia::modular::auth::AccountPtr account,
-                    RemoveUserCallback callback);
-
   // Returns a new |fuchsia::auth::TokenManager| handle for the given user
   // account |account_id|.
   fuchsia::auth::TokenManagerPtr CreateTokenManager(fidl::StringPtr account_id);
@@ -123,7 +104,8 @@
   bool RemoveUserFromAccountsDB(fidl::StringPtr account_id, std::string* error);
   bool WriteUsersDb(const std::string& serialized_users, std::string* error);
   bool Parse(const std::string& serialized_users);
-
+  void RemoveUserInternal(fuchsia::modular::auth::AccountPtr account,
+                          RemoveUserCallback callback);
   void LoginInternal(fuchsia::modular::auth::AccountPtr account,
                      fuchsia::modular::UserLoginParams params);
 
@@ -134,11 +116,8 @@
   const fuchsia::modular::AppConfig&
       session_shell_;                               // Neither owned nor copied.
   const fuchsia::modular::AppConfig& story_shell_;  // Neither owned nor copied.
-  fuchsia::modular::auth::AccountProvider* const
-      account_provider_;  // Neither owned nor copied.
   fuchsia::auth::TokenManagerFactory* const
       token_manager_factory_;  // Neither owned nor copied.
-  bool use_token_manager_factory_ = false;
   fuchsia::auth::AuthenticationContextProviderPtr
       authentication_context_provider_;
   Delegate* const delegate_;  // Neither owned nor copied.
diff --git a/bin/cloud_provider_firestore/app/factory_impl.cc b/bin/cloud_provider_firestore/app/factory_impl.cc
index a45ad4a..46fb4e4 100644
--- a/bin/cloud_provider_firestore/app/factory_impl.cc
+++ b/bin/cloud_provider_firestore/app/factory_impl.cc
@@ -55,42 +55,19 @@
 
 void FactoryImpl::GetCloudProvider(
     Config config,
-    fidl::InterfaceHandle<fuchsia::modular::auth::TokenProvider> token_provider,
-    fidl::InterfaceRequest<cloud_provider::CloudProvider>
-        cloud_provider_request,
-    GetCloudProviderCallback callback) {
-  auto firebase_auth =
-      GetFirebaseAuth(token_provider.Bind(), nullptr, config.api_key);
-
-  GetFirebaseCloudProvider(std::move(config), std::move(firebase_auth),
-                           std::move(cloud_provider_request),
-                           std::move(callback));
-}
-
-void FactoryImpl::GetCloudProviderV2(
-    Config config,
     fidl::InterfaceHandle<fuchsia::auth::TokenManager> token_manager,
     fidl::InterfaceRequest<cloud_provider::CloudProvider>
         cloud_provider_request,
-    GetCloudProviderV2Callback callback) {
-  auto firebase_auth =
-      GetFirebaseAuth(nullptr, token_manager.Bind(), config.api_key);
+    GetCloudProviderCallback callback) {
+  auto firebase_auth = std::make_unique<firebase_auth::FirebaseAuthImpl>(
+      GetFirebaseAuthConfig(config.api_key, cobalt_client_name_), dispatcher_,
+      random_, token_manager.Bind(), startup_context_);
 
   GetFirebaseCloudProvider(std::move(config), std::move(firebase_auth),
                            std::move(cloud_provider_request),
                            std::move(callback));
 }
 
-std::unique_ptr<firebase_auth::FirebaseAuthImpl> FactoryImpl::GetFirebaseAuth(
-    fuchsia::modular::auth::TokenProviderPtr token_provider,
-    fuchsia::auth::TokenManagerPtr token_manager,
-    fidl::StringPtr firebase_api_key) {
-  return std::make_unique<firebase_auth::FirebaseAuthImpl>(
-      GetFirebaseAuthConfig(firebase_api_key, cobalt_client_name_), dispatcher_,
-      random_, std::move(token_provider), std::move(token_manager),
-      startup_context_);
-}
-
 void FactoryImpl::GetFirebaseCloudProvider(
     Config config,
     std::unique_ptr<firebase_auth::FirebaseAuthImpl> firebase_auth,
diff --git a/bin/cloud_provider_firestore/app/factory_impl.h b/bin/cloud_provider_firestore/app/factory_impl.h
index adc0774..df8ffb4 100644
--- a/bin/cloud_provider_firestore/app/factory_impl.h
+++ b/bin/cloud_provider_firestore/app/factory_impl.h
@@ -7,7 +7,6 @@
 
 #include <fuchsia/ledger/cloud/cpp/fidl.h>
 #include <fuchsia/ledger/cloud/firestore/cpp/fidl.h>
-#include <fuchsia/modular/auth/cpp/fidl.h>
 #include <lib/async/dispatcher.h>
 #include <lib/callback/auto_cleanable.h>
 #include <lib/callback/cancellable.h>
@@ -38,25 +37,11 @@
   // Factory:
   void GetCloudProvider(
       Config config,
-      fidl::InterfaceHandle<fuchsia::modular::auth::TokenProvider>
-          token_provider,
-      fidl::InterfaceRequest<cloud_provider::CloudProvider>
-          cloud_provider_request,
-      GetCloudProviderCallback callback) override;
-
-  // Factory:
-  void GetCloudProviderV2(
-      Config config,
       fidl::InterfaceHandle<fuchsia::auth::TokenManager> token_manager,
       fidl::InterfaceRequest<cloud_provider::CloudProvider>
           cloud_provider_request,
       GetCloudProviderCallback callback) override;
 
-  std::unique_ptr<firebase_auth::FirebaseAuthImpl> GetFirebaseAuth(
-      fuchsia::modular::auth::TokenProviderPtr token_provider,
-      fuchsia::auth::TokenManagerPtr token_manager,
-      fidl::StringPtr firebase_api_key);
-
   void GetFirebaseCloudProvider(
       Config config,
       std::unique_ptr<firebase_auth::FirebaseAuthImpl> firebase_auth,
diff --git a/bin/cloud_provider_firestore/app/factory_impl_unittest.cc b/bin/cloud_provider_firestore/app/factory_impl_unittest.cc
index 8b0e6d1..42c88a8 100644
--- a/bin/cloud_provider_firestore/app/factory_impl_unittest.cc
+++ b/bin/cloud_provider_firestore/app/factory_impl_unittest.cc
@@ -11,7 +11,6 @@
 #include <lib/gtest/test_loop_fixture.h>
 
 #include "peridot/lib/firebase_auth/testing/test_token_manager.h"
-#include "peridot/lib/firebase_auth/testing/test_token_provider.h"
 #include "peridot/lib/rng/test_random.h"
 
 namespace cloud_provider_firestore {
@@ -23,8 +22,6 @@
         factory_impl_(dispatcher(), &random_, /*startup_context=*/nullptr,
                       /*cobalt_client_name=*/""),
         factory_binding_(&factory_impl_, factory_.NewRequest()),
-        token_provider_(dispatcher()),
-        token_provider_binding_(&token_provider_),
         token_manager_(dispatcher()),
         token_manager_binding_(&token_manager_) {}
   ~FactoryImplTest() override {}
@@ -35,9 +32,6 @@
   FactoryPtr factory_;
   fidl::Binding<Factory> factory_binding_;
 
-  firebase_auth::TestTokenProvider token_provider_;
-  fidl::Binding<fuchsia::modular::auth::TokenProvider> token_provider_binding_;
-
   firebase_auth::TestTokenManager token_manager_;
   fidl::Binding<fuchsia::auth::TokenManager> token_manager_binding_;
 
@@ -47,29 +41,6 @@
 
 TEST_F(FactoryImplTest, GetCloudProvider) {
   bool callback_called = false;
-  token_provider_.Set("this is a token", "some id", "me@example.com");
-
-  cloud_provider::Status status = cloud_provider::Status::INTERNAL_ERROR;
-  cloud_provider::CloudProviderPtr cloud_provider;
-  Config config;
-  config.server_id = "some server id";
-  config.api_key = "some api key";
-  factory_->GetCloudProvider(
-      std::move(config), token_provider_binding_.NewBinding(),
-      cloud_provider.NewRequest(),
-      callback::Capture(callback::SetWhenCalled(&callback_called), &status));
-  RunLoopUntilIdle();
-  EXPECT_TRUE(callback_called);
-  EXPECT_EQ(cloud_provider::Status::OK, status);
-
-  callback_called = false;
-  factory_impl_.ShutDown(callback::SetWhenCalled(&callback_called));
-  RunLoopUntilIdle();
-  EXPECT_TRUE(callback_called);
-}
-
-TEST_F(FactoryImplTest, GetCloudProviderV2) {
-  bool callback_called = false;
   token_manager_.Set("this is a token", "some id", "me@example.com");
 
   cloud_provider::Status status = cloud_provider::Status::INTERNAL_ERROR;
@@ -77,7 +48,7 @@
   Config config;
   config.server_id = "some server id";
   config.api_key = "some api key";
-  factory_->GetCloudProviderV2(
+  factory_->GetCloudProvider(
       std::move(config), token_manager_binding_.NewBinding(),
       cloud_provider.NewRequest(),
       callback::Capture(callback::SetWhenCalled(&callback_called), &status));
diff --git a/bin/cloud_provider_firestore/fidl/factory.fidl b/bin/cloud_provider_firestore/fidl/factory.fidl
index e13fba2..fc0f740 100644
--- a/bin/cloud_provider_firestore/fidl/factory.fidl
+++ b/bin/cloud_provider_firestore/fidl/factory.fidl
@@ -6,7 +6,6 @@
 
 using fuchsia.auth;
 using fuchsia.ledger.cloud;
-using fuchsia.modular.auth;
 
 // Configuration to use when connecting to the Firestore server.
 struct Config {
@@ -23,21 +22,9 @@
   //
   // Parameters:
   // |config| configuration
-  // |token_provider| is used to get the appropriate auth tokens
-  //     associated with user for whom the cloud provider is running.
-  1: GetCloudProvider(
-                Config config,
-                fuchsia.modular.auth.TokenProvider? token_provider,
-                request<fuchsia.ledger.cloud.CloudProvider> cloud_provider)
-      -> (fuchsia.ledger.cloud.Status status);
-
-  // Creates a cloud provider instance using the given |config|.
-  //
-  // Parameters:
-  // |config| configuration
   // |token_manager| is used to get the appropriate auth tokens
   //     associated with user for whom the cloud provider is running.
-  2: GetCloudProviderV2(
+  1: GetCloudProvider(
                 Config config,
                 fuchsia.auth.TokenManager? token_manager,
                 request<fuchsia.ledger.cloud.CloudProvider> cloud_provider)
diff --git a/bin/cloud_provider_firestore/testing/cloud_provider_factory.cc b/bin/cloud_provider_firestore/testing/cloud_provider_factory.cc
index 66b6a31..21f2494 100644
--- a/bin/cloud_provider_firestore/testing/cloud_provider_factory.cc
+++ b/bin/cloud_provider_firestore/testing/cloud_provider_factory.cc
@@ -45,41 +45,6 @@
 
 CloudProviderFactory::UserId::UserId() : user_id_(GenerateUserId()) {}
 
-class CloudProviderFactory::TokenProviderContainer {
- public:
-  TokenProviderContainer(
-      component::StartupContext* startup_context,
-      async_dispatcher_t* dispatcher, rng::Random* random,
-      std::unique_ptr<service_account::Credentials> credentials,
-      std::string user_id,
-      fidl::InterfaceRequest<fuchsia::modular::auth::TokenProvider> request)
-      : startup_context_(startup_context),
-        network_wrapper_(
-            dispatcher,
-            std::make_unique<backoff::ExponentialBackoff>(
-                random->NewBitGenerator<uint64_t>()),
-            [this] {
-              return startup_context_
-                  ->ConnectToEnvironmentService<http::HttpService>();
-            }),
-        token_provider_(&network_wrapper_, std::move(credentials),
-                        std::move(user_id)),
-        binding_(&token_provider_, std::move(request)) {}
-
-  void set_on_empty(fit::closure on_empty) {
-    binding_.set_error_handler(
-        [on_empty = std::move(on_empty)](zx_status_t status) { on_empty(); });
-  }
-
- private:
-  component::StartupContext* const startup_context_;
-  network_wrapper::NetworkWrapperImpl network_wrapper_;
-  service_account::ServiceAccountTokenProvider token_provider_;
-  fidl::Binding<fuchsia::modular::auth::TokenProvider> binding_;
-
-  FXL_DISALLOW_COPY_AND_ASSIGN(TokenProviderContainer);
-};
-
 class CloudProviderFactory::TokenManagerContainer {
  public:
   TokenManagerContainer(
@@ -144,26 +109,6 @@
 void CloudProviderFactory::MakeCloudProvider(
     UserId user_id,
     fidl::InterfaceRequest<cloud_provider::CloudProvider> request) {
-  fuchsia::modular::auth::TokenProviderPtr token_provider;
-  MakeTokenProvider(std::move(user_id), token_provider.NewRequest());
-
-  cloud_provider_firestore::Config firebase_config;
-  firebase_config.server_id = credentials_->project_id();
-  firebase_config.api_key = api_key_;
-
-  cloud_provider_factory_->GetCloudProvider(
-      std::move(firebase_config), std::move(token_provider), std::move(request),
-      [](cloud_provider::Status status) {
-        if (status != cloud_provider::Status::OK) {
-          FXL_LOG(ERROR) << "Failed to create a cloud provider: "
-                         << fidl::ToUnderlying(status);
-        }
-      });
-}
-
-void CloudProviderFactory::MakeCloudProviderV2(
-    UserId user_id,
-    fidl::InterfaceRequest<cloud_provider::CloudProvider> request) {
   fuchsia::auth::TokenManagerPtr token_manager;
   MakeTokenManager(std::move(user_id), token_manager.NewRequest());
 
@@ -171,7 +116,7 @@
   firebase_config.server_id = credentials_->project_id();
   firebase_config.api_key = api_key_;
 
-  cloud_provider_factory_->GetCloudProviderV2(
+  cloud_provider_factory_->GetCloudProvider(
       std::move(firebase_config), std::move(token_manager), std::move(request),
       [](cloud_provider::Status status) {
         if (status != cloud_provider::Status::OK) {
@@ -181,19 +126,6 @@
       });
 }
 
-void CloudProviderFactory::MakeTokenProvider(
-    UserId user_id,
-    fidl::InterfaceRequest<fuchsia::modular::auth::TokenProvider> request) {
-  async::PostTask(services_loop_.dispatcher(),
-                  fxl::MakeCopyable([this, user_id = std::move(user_id),
-                                     request = std::move(request)]() mutable {
-                    token_providers_.emplace(
-                        startup_context_, services_loop_.dispatcher(), random_,
-                        credentials_->Clone(), std::move(user_id.user_id()),
-                        std::move(request));
-                  }));
-}
-
 void CloudProviderFactory::MakeTokenManager(
     UserId user_id,
     fidl::InterfaceRequest<fuchsia::auth::TokenManager> request) {
diff --git a/bin/cloud_provider_firestore/testing/cloud_provider_factory.h b/bin/cloud_provider_firestore/testing/cloud_provider_factory.h
index e5bdabc..eab1814 100644
--- a/bin/cloud_provider_firestore/testing/cloud_provider_factory.h
+++ b/bin/cloud_provider_firestore/testing/cloud_provider_factory.h
@@ -16,7 +16,6 @@
 #include "peridot/bin/cloud_provider_firestore/include/types.h"
 #include "peridot/lib/firebase_auth/testing/credentials.h"
 #include "peridot/lib/firebase_auth/testing/service_account_token_manager.h"
-#include "peridot/lib/firebase_auth/testing/service_account_token_provider.h"
 #include "peridot/lib/rng/random.h"
 #include "peridot/lib/rng/system_random.h"
 
@@ -59,20 +58,11 @@
       UserId user_id,
       fidl::InterfaceRequest<cloud_provider::CloudProvider> request);
 
-  void MakeCloudProviderV2(
-      UserId user_id,
-      fidl::InterfaceRequest<cloud_provider::CloudProvider> request);
-
-  void MakeTokenProvider(
-      UserId user_id,
-      fidl::InterfaceRequest<fuchsia::modular::auth::TokenProvider> request);
-
   void MakeTokenManager(
       UserId user_id,
       fidl::InterfaceRequest<fuchsia::auth::TokenManager> request);
 
  private:
-  class TokenProviderContainer;
   class TokenManagerContainer;
   component::StartupContext* const startup_context_;
   rng::Random* const random_;
@@ -82,7 +72,6 @@
   // Loop on which the token manager runs.
   async::Loop services_loop_;
 
-  callback::AutoCleanableSet<TokenProviderContainer> token_providers_;
   callback::AutoCleanableSet<TokenManagerContainer> token_managers_;
 
   fuchsia::sys::ComponentControllerPtr cloud_provider_controller_;
diff --git a/bin/ledger/app/ledger_repository_factory_impl.cc b/bin/ledger/app/ledger_repository_factory_impl.cc
index eb61a46..e245a89 100644
--- a/bin/ledger/app/ledger_repository_factory_impl.cc
+++ b/bin/ledger/app/ledger_repository_factory_impl.cc
@@ -30,7 +30,6 @@
 #include "peridot/bin/ledger/fidl/include/types.h"
 #include "peridot/bin/ledger/p2p_provider/impl/p2p_provider_impl.h"
 #include "peridot/bin/ledger/p2p_provider/impl/static_user_id_provider.h"
-#include "peridot/bin/ledger/p2p_provider/impl/user_id_provider_impl.h"
 #include "peridot/bin/ledger/p2p_sync/impl/user_communicator_impl.h"
 #include "peridot/bin/ledger/storage/impl/leveldb_factory.h"
 #include "peridot/bin/ledger/sync_coordinator/impl/user_sync_impl.h"
@@ -357,22 +356,13 @@
     return nullptr;
   }
 
-  std::unique_ptr<p2p_provider::UserIdProvider> user_id_provider;
-  if (!repository_information.user_id.empty()) {
-    user_id_provider = std::make_unique<p2p_provider::StaticUserIdProvider>(
-        repository_information.user_id);
-  } else {
-    fuchsia::modular::auth::TokenProviderPtr token_provider =
-        environment_->startup_context()
-            ->ConnectToEnvironmentService<
-                fuchsia::modular::auth::TokenProvider>();
-
-    user_id_provider = std::make_unique<p2p_provider::UserIdProviderImpl>(
-        environment_, repository_information.content_path,
-        std::move(token_provider),
-        environment_->disable_statistics() ? "" : "ledger_p2p");
+  if (repository_information.user_id.empty()) {
+    return nullptr;
   }
 
+  auto user_id_provider = std::make_unique<p2p_provider::StaticUserIdProvider>(
+      repository_information.user_id);
+
   return user_communicator_factory_->GetUserCommunicator(
       std::move(user_id_provider));
 }
diff --git a/bin/ledger/fidl/internal.fidl b/bin/ledger/fidl/internal.fidl
index 1c4d220..0135905 100644
--- a/bin/ledger/fidl/internal.fidl
+++ b/bin/ledger/fidl/internal.fidl
@@ -14,7 +14,7 @@
 interface LedgerRepositoryFactory : fuchsia.ledger.ErrorNotifier {
     // Binds to the directory referenced by |repository|. If this is called
     // multiple times for the same directory, only the first instance of
-    // |server_id| / |token_provider| will be used. Any subsequent ones will
+    // |server_id| / |cloud_provider| will be used. Any subsequent ones will
     // simply be ignored.
     //
     // Parameters:
@@ -29,8 +29,7 @@
     // |user_id| is a unique, not device local, user identifier. It will be
     //     used to enable Peer to Peer over NetConnector, and will be removed
     //     once Ledger uses Overnet for Peer to Peer communication. If it is
-    //     empty, Ledger will try to retrieve a TokenProvider in the
-    //     environment to fetch the identifier.
+    //     empty, Ledger will not synchronize using Peer to Peer communication.
     1: GetRepository(handle<channel> repository_directory,
                      fuchsia.ledger.cloud.CloudProvider? cloud_provider,
                      string user_id,
diff --git a/bin/ledger/meta/ledger.cmx b/bin/ledger/meta/ledger.cmx
index 37333be..3aab396 100644
--- a/bin/ledger/meta/ledger.cmx
+++ b/bin/ledger/meta/ledger.cmx
@@ -5,7 +5,6 @@
     "sandbox": {
         "features": [],
         "services": [
-            "fuchsia.modular.auth.TokenProvider",
             "fuchsia.netconnector.NetConnector",
             "fuchsia.tracelink.Registry",
             "fuchsia.net.LegacySocketProvider",
diff --git a/bin/ledger/p2p_provider/impl/BUILD.gn b/bin/ledger/p2p_provider/impl/BUILD.gn
index ed50cae..13268d4 100644
--- a/bin/ledger/p2p_provider/impl/BUILD.gn
+++ b/bin/ledger/p2p_provider/impl/BUILD.gn
@@ -14,8 +14,6 @@
     "remote_connection.h",
     "static_user_id_provider.cc",
     "static_user_id_provider.h",
-    "user_id_provider_impl.cc",
-    "user_id_provider_impl.h",
   ]
 
   public_deps = [
diff --git a/bin/ledger/p2p_provider/impl/user_id_provider_impl.cc b/bin/ledger/p2p_provider/impl/user_id_provider_impl.cc
deleted file mode 100644
index cce1d3e..0000000
--- a/bin/ledger/p2p_provider/impl/user_id_provider_impl.cc
+++ /dev/null
@@ -1,101 +0,0 @@
-// Copyright 2018 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "peridot/bin/ledger/p2p_provider/impl/user_id_provider_impl.h"
-
-#include <lib/backoff/exponential_backoff.h>
-#include <lib/fit/function.h>
-#include <lib/fxl/files/file.h>
-#include <lib/fxl/logging.h>
-
-#include "peridot/lib/firebase_auth/firebase_auth_impl.h"
-
-namespace p2p_provider {
-
-namespace {
-
-firebase_auth::FirebaseAuthImpl::Config GetFirebaseAuthConfig(
-    const std::string& api_key, const std::string& cobalt_client_name) {
-  firebase_auth::FirebaseAuthImpl::Config config;
-  config.api_key = api_key;
-  config.cobalt_client_name = cobalt_client_name;
-
-  return config;
-}
-
-}  // namespace
-
-constexpr fxl::StringView user_id_filename = "p2p_user_id";
-
-UserIdProviderImpl::UserIdProviderImpl(
-    ledger::Environment* environment, ledger::DetachedPath user_directory,
-    fuchsia::modular::auth::TokenProviderPtr token_provider_ptr,
-    std::string cobalt_client_name)
-    : user_id_path_(user_directory.SubPath(user_id_filename)),
-      firebase_auth_(std::make_unique<firebase_auth::FirebaseAuthImpl>(
-          GetFirebaseAuthConfig(environment->firebase_api_key(),
-                                cobalt_client_name),
-          environment->dispatcher(), environment->random(),
-          std::move(token_provider_ptr), nullptr,
-          environment->startup_context())) {}
-
-UserIdProviderImpl::~UserIdProviderImpl() = default;
-
-void UserIdProviderImpl::GetUserId(
-    fit::function<void(Status, std::string)> callback) {
-  FXL_DCHECK(callback);
-  std::string stored_id;
-  if (LoadUserIdFromFile(&stored_id)) {
-    callback(Status::OK, stored_id);
-    return;
-  }
-
-  firebase_auth_->GetFirebaseUserId(
-      [this, callback = std::move(callback)](firebase_auth::AuthStatus status,
-                                             std::string user_id) {
-        if (status != firebase_auth::AuthStatus::OK) {
-          FXL_LOG(ERROR) << "Firebase auth returned an error.";
-          callback(Status::ERROR, "");
-          return;
-        }
-        if (!UpdateUserId(user_id)) {
-          FXL_LOG(WARNING) << "Unable to persist the user id for caching. "
-                              "Continuing anyway...";
-          // We have the user id, we can continue anyway.
-        }
-        callback(Status::OK, user_id);
-      });
-}
-
-bool UserIdProviderImpl::LoadUserIdFromFile(std::string* id) {
-  if (!files::IsFileAt(user_id_path_.root_fd(), user_id_path_.path())) {
-    return false;
-  }
-
-  if (!files::ReadFileToStringAt(user_id_path_.root_fd(), user_id_path_.path(),
-                                 id)) {
-    FXL_LOG(ERROR) << "Unable to read the id file at: " << user_id_path_.path();
-    return false;
-  }
-  return true;
-}
-
-bool UserIdProviderImpl::WriteUserIdToFile(std::string id) {
-  if (!files::WriteFileAt(user_id_path_.root_fd(), user_id_path_.path(),
-                          id.data(), id.size())) {
-    FXL_LOG(ERROR) << "Failed to persist the id at " << user_id_path_.path();
-    return false;
-  }
-  return true;
-}
-
-bool UserIdProviderImpl::UpdateUserId(std::string user_id) {
-  std::string stored_id;
-  if (LoadUserIdFromFile(&stored_id) && stored_id == user_id) {
-    return true;
-  }
-  return WriteUserIdToFile(user_id);
-}
-
-}  // namespace p2p_provider
diff --git a/bin/ledger/p2p_provider/impl/user_id_provider_impl.h b/bin/ledger/p2p_provider/impl/user_id_provider_impl.h
deleted file mode 100644
index 5e2962a..0000000
--- a/bin/ledger/p2p_provider/impl/user_id_provider_impl.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2018 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PERIDOT_BIN_LEDGER_P2P_PROVIDER_IMPL_USER_ID_PROVIDER_IMPL_H_
-#define PERIDOT_BIN_LEDGER_P2P_PROVIDER_IMPL_USER_ID_PROVIDER_IMPL_H_
-
-#include <string>
-
-#include <fuchsia/modular/auth/cpp/fidl.h>
-#include <lib/component/cpp/startup_context.h>
-#include <lib/fit/function.h>
-
-#include "peridot/bin/ledger/environment/environment.h"
-#include "peridot/bin/ledger/filesystem/detached_path.h"
-#include "peridot/bin/ledger/p2p_provider/public/user_id_provider.h"
-#include "peridot/lib/firebase_auth/firebase_auth.h"
-
-namespace p2p_provider {
-
-// Implementation of |UserIdProvider| that retrieves the user id from the user
-// Google profile using the given |TokenProvider| and caches this information in
-// the filesystem.
-class UserIdProviderImpl : public UserIdProvider {
- public:
-  UserIdProviderImpl(
-      ledger::Environment* environment, ledger::DetachedPath user_directory,
-      fuchsia::modular::auth::TokenProviderPtr token_provider_ptr,
-      std::string cobalt_client_name);
-  ~UserIdProviderImpl() override;
-
-  void GetUserId(fit::function<void(Status, std::string)> callback) override;
-
- private:
-  bool LoadUserIdFromFile(std::string* id);
-  bool UpdateUserId(std::string user_id);
-  bool WriteUserIdToFile(std::string id);
-
-  const ledger::DetachedPath user_id_path_;
-  std::unique_ptr<firebase_auth::FirebaseAuth> firebase_auth_;
-};
-
-}  // namespace p2p_provider
-
-#endif  // PERIDOT_BIN_LEDGER_P2P_PROVIDER_IMPL_USER_ID_PROVIDER_IMPL_H_
diff --git a/bin/ledger/tests/e2e_sync/ledger_app_instance_factory_e2e.cc b/bin/ledger/tests/e2e_sync/ledger_app_instance_factory_e2e.cc
index d753709..381f85b 100644
--- a/bin/ledger/tests/e2e_sync/ledger_app_instance_factory_e2e.cc
+++ b/bin/ledger/tests/e2e_sync/ledger_app_instance_factory_e2e.cc
@@ -20,7 +20,7 @@
 #include "peridot/bin/ledger/testing/ledger_app_instance_factory.h"
 #include "peridot/bin/ledger/tests/e2e_sync/ledger_app_instance_factory_e2e.h"
 #include "peridot/lib/convert/convert.h"
-#include "peridot/lib/firebase_auth/testing/fake_token_provider.h"
+#include "peridot/lib/firebase_auth/testing/fake_token_manager.h"
 
 namespace ledger {
 namespace {
@@ -66,11 +66,6 @@
                               std::move(sync_params.api_key),
                               std::move(sync_params.credentials)),
       user_id_(std::move(user_id)) {
-  service_provider_impl_.AddService<fuchsia::modular::auth::TokenProvider>(
-      [this](fidl::InterfaceRequest<fuchsia::modular::auth::TokenProvider>
-                 request) {
-        cloud_provider_factory_.MakeTokenProvider(user_id_, std::move(request));
-      });
 }
 
 void LedgerAppInstanceImpl::Init(
@@ -84,10 +79,6 @@
   launch_info.directory_request = child_services.NewRequest();
   launch_info.arguments.push_back("--disable_reporting");
   launch_info.arguments.push_back("--firebase_api_key=" + sync_params_.api_key);
-  fuchsia::sys::ServiceList service_list;
-  service_list.names.push_back(fuchsia::modular::auth::TokenProvider::Name_);
-  service_provider_impl_.AddBinding(service_list.provider.NewRequest());
-  launch_info.additional_services = fidl::MakeOptional(std::move(service_list));
 
   startup_context_->launcher()->CreateComponent(std::move(launch_info),
                                                 controller_.NewRequest());
diff --git a/bin/sessionmgr/agent_runner/agent_context_impl.cc b/bin/sessionmgr/agent_runner/agent_context_impl.cc
index 78a5936..2cc54eb 100644
--- a/bin/sessionmgr/agent_runner/agent_context_impl.cc
+++ b/bin/sessionmgr/agent_runner/agent_context_impl.cc
@@ -18,25 +18,6 @@
 
 namespace {
 
-// Maps |fuchsia::modular::auth::Status| status codes to |fuchsia::auth::Status|
-// status codes.
-fuchsia::auth::Status ConvertAuthStatus(fuchsia::modular::auth::Status status) {
-  switch (status) {
-    case fuchsia::modular::auth::Status::OK:
-      return fuchsia::auth::Status::OK;
-    case fuchsia::modular::auth::Status::OAUTH_SERVER_ERROR:
-      return fuchsia::auth::Status::AUTH_PROVIDER_SERVER_ERROR;
-    case fuchsia::modular::auth::Status::BAD_RESPONSE:
-      return fuchsia::auth::Status::AUTH_PROVIDER_SERVER_ERROR;
-    case fuchsia::modular::auth::Status::NETWORK_ERROR:
-      return fuchsia::auth::Status::NETWORK_ERROR;
-    case fuchsia::modular::auth::Status::INTERNAL_ERROR:
-      return fuchsia::auth::Status::INTERNAL_ERROR;
-    default:
-      return fuchsia::auth::Status::UNKNOWN_ERROR;
-  }
-}
-
 // A stopgap solution to map an agent's url to a directory name where the
 // agent's /data is mapped. We need three properties here - (1) two module urls
 // that are the same get mapped to the same hash, (2) two modules urls that are
@@ -199,7 +180,6 @@
       agent_runner_(info.component_context_info.agent_runner),
       component_context_impl_(info.component_context_info,
                               kAgentComponentNamespace, url_, url_),
-      token_provider_factory_(info.token_provider_factory),
       token_manager_(info.token_manager),
       entity_provider_runner_(
           info.component_context_info.entity_provider_runner),
@@ -277,24 +257,8 @@
   component_context_impl_.Connect(std::move(request));
 }
 
-void AgentContextImpl::GetTokenProvider(
-    fidl::InterfaceRequest<fuchsia::modular::auth::TokenProvider> request) {
-  if (token_provider_factory_ != nullptr) {
-    token_provider_factory_->GetTokenProvider(url_, std::move(request));
-  } else {
-    // This should never happen. But if there is a bug in setting these handles
-    // by |sessionmgr|, at least we can infer it from the logs.
-    FXL_LOG(ERROR) << "Token provider factory is not set.";
-  }
-}
-
 void AgentContextImpl::GetTokenManager(
     fidl::InterfaceRequest<fuchsia::auth::TokenManager> request) {
-  if (token_manager_ == nullptr) {
-    FXL_DLOG(INFO) << "Token manager is not set, falling back to token "
-                   << "provider";
-    GetTokenProvider(token_provider_.NewRequest());
-  }
   token_manager_bindings_.AddBinding(this, std::move(request));
 }
 
@@ -328,54 +292,25 @@
     fuchsia::auth::AppConfig app_config, fidl::StringPtr user_profile_id,
     fidl::VectorPtr<::fidl::StringPtr> app_scopes,
     GetAccessTokenCallback callback) {
+  FXL_CHECK(token_manager_);
+
   FXL_DLOG(INFO) << "AgentContextImpl::GetAccessToken() invoked for user:"
                  << user_profile_id;
-  if (token_manager_ != nullptr) {
-    token_manager_->GetAccessToken(std::move(app_config),
-                                   std::move(user_profile_id),
-                                   std::move(app_scopes), std::move(callback));
-  } else {
-    if (!token_provider_.is_bound()) {
-      GetTokenProvider(token_provider_.NewRequest());
-    }
-    token_provider_->GetAccessToken(
-        [callback = std::move(callback)](
-            fidl::StringPtr access_token,
-            fuchsia::modular::auth::AuthErr authErr) {
-          if (authErr.status != fuchsia::modular::auth::Status::OK) {
-            callback(ConvertAuthStatus(authErr.status), nullptr);
-            return;
-          }
-
-          callback(fuchsia::auth::Status::OK, std::move(access_token));
-        });
-  }
+  token_manager_->GetAccessToken(std::move(app_config),
+                                 std::move(user_profile_id),
+                                 std::move(app_scopes), std::move(callback));
 }
 
 void AgentContextImpl::GetIdToken(fuchsia::auth::AppConfig app_config,
                                   fidl::StringPtr user_profile_id,
                                   fidl::StringPtr audience,
                                   GetIdTokenCallback callback) {
+  FXL_CHECK(token_manager_);
+
   FXL_DLOG(INFO) << "AgentContextImpl::GetIdToken() invoked for user:"
                  << user_profile_id;
-  if (token_manager_ != nullptr) {
-    token_manager_->GetIdToken(std::move(app_config),
-                               std::move(user_profile_id), std::move(audience),
-                               std::move(callback));
-  } else {
-    if (!token_provider_.is_bound()) {
-      GetTokenProvider(token_provider_.NewRequest());
-    }
-    token_provider_->GetIdToken(
-        [callback = std::move(callback)](
-            fidl::StringPtr id_token, fuchsia::modular::auth::AuthErr authErr) {
-          if (authErr.status != fuchsia::modular::auth::Status::OK) {
-            callback(ConvertAuthStatus(authErr.status), nullptr);
-            return;
-          }
-          callback(fuchsia::auth::Status::OK, std::move(id_token));
-        });
-  }
+  token_manager_->GetIdToken(std::move(app_config), std::move(user_profile_id),
+                             std::move(audience), std::move(callback));
 }
 
 void AgentContextImpl::GetFirebaseToken(fuchsia::auth::AppConfig app_config,
@@ -383,35 +318,13 @@
                                         fidl::StringPtr audience,
                                         fidl::StringPtr firebase_api_key,
                                         GetFirebaseTokenCallback callback) {
+  FXL_CHECK(token_manager_);
+
   FXL_DLOG(INFO) << "AgentContextImpl::GetFirebaseToken() invoked for user:"
                  << user_profile_id;
-  if (token_manager_ != nullptr) {
-    token_manager_->GetFirebaseToken(
-        std::move(app_config), std::move(user_profile_id), std::move(audience),
-        std::move(firebase_api_key), std::move(callback));
-  } else {
-    if (!token_provider_.is_bound()) {
-      GetTokenProvider(token_provider_.NewRequest());
-    }
-    token_provider_->GetFirebaseAuthToken(
-        std::move(firebase_api_key),
-        [callback = std::move(callback)](
-            fuchsia::modular::auth::FirebaseTokenPtr firebase_token,
-            fuchsia::modular::auth::AuthErr authErr) {
-          if (authErr.status != fuchsia::modular::auth::Status::OK) {
-            callback(ConvertAuthStatus(authErr.status), nullptr);
-            return;
-          }
-
-          fuchsia::auth::FirebaseTokenPtr fb_token;
-          fb_token->id_token = firebase_token->id_token;
-          fb_token->email = firebase_token->email;
-          fb_token->local_id = firebase_token->local_id;
-          fb_token->expires_in = 0;
-
-          callback(fuchsia::auth::Status::OK, std::move(fb_token));
-        });
-  }
+  token_manager_->GetFirebaseToken(
+      std::move(app_config), std::move(user_profile_id), std::move(audience),
+      std::move(firebase_api_key), std::move(callback));
 }
 
 void AgentContextImpl::DeleteAllTokens(fuchsia::auth::AppConfig app_config,
@@ -424,13 +337,9 @@
 
 void AgentContextImpl::ListProfileIds(fuchsia::auth::AppConfig app_config,
                                       ListProfileIdsCallback callback) {
-  if (token_manager_ != nullptr) {
-    token_manager_->ListProfileIds(std::move(app_config), std::move(callback));
-  } else {
-    // ListProfileIds is not needed for old TokenProvider
-    auto user_profile_ids = fidl::VectorPtr<fidl::StringPtr>::New(0);
-    callback(fuchsia::auth::Status::OK, std::move(user_profile_ids));
-  }
+  FXL_CHECK(token_manager_);
+
+  token_manager_->ListProfileIds(std::move(app_config), std::move(callback));
 }
 
 void AgentContextImpl::StopAgentIfIdle() {
diff --git a/bin/sessionmgr/agent_runner/agent_context_impl.h b/bin/sessionmgr/agent_runner/agent_context_impl.h
index a8d520b..c8a4f0c 100644
--- a/bin/sessionmgr/agent_runner/agent_context_impl.h
+++ b/bin/sessionmgr/agent_runner/agent_context_impl.h
@@ -27,7 +27,6 @@
 struct AgentContextInfo {
   const ComponentContextInfo component_context_info;
   fuchsia::sys::Launcher* const launcher;
-  fuchsia::modular::auth::TokenProviderFactory* const token_provider_factory;
   fuchsia::auth::TokenManager* const token_manager;
   fuchsia::modular::UserIntelligenceProvider* const user_intelligence_provider;
 };
@@ -84,10 +83,6 @@
       fidl::InterfaceRequest<fuchsia::modular::ComponentContext> request)
       override;
   // |fuchsia::modular::AgentContext|
-  void GetTokenProvider(
-      fidl::InterfaceRequest<fuchsia::modular::auth::TokenProvider> request)
-      override;
-  // |fuchsia::modular::AgentContext|
   void GetTokenManager(
       fidl::InterfaceRequest<fuchsia::auth::TokenManager> request) override;
   // |fuchsia::modular::AgentContext|
@@ -144,7 +139,6 @@
 
   std::unique_ptr<AppClient<fuchsia::modular::Lifecycle>> app_client_;
   fuchsia::modular::AgentPtr agent_;
-  fuchsia::modular::auth::TokenProviderPtr token_provider_;
   fidl::BindingSet<fuchsia::modular::AgentContext> agent_context_bindings_;
   fidl::BindingSet<fuchsia::modular::AgentController>
       agent_controller_bindings_;
@@ -158,8 +152,6 @@
   // application's namespace.
   component::ServiceProviderImpl service_provider_impl_;
 
-  fuchsia::modular::auth::TokenProviderFactory* const
-      token_provider_factory_;                          // Not owned.
   fuchsia::auth::TokenManager* const token_manager_;    // Not owned.
   EntityProviderRunner* const entity_provider_runner_;  // Not owned.
   fuchsia::modular::UserIntelligenceProvider* const
diff --git a/bin/sessionmgr/agent_runner/agent_runner.cc b/bin/sessionmgr/agent_runner/agent_runner.cc
index ae47a91..6948526 100644
--- a/bin/sessionmgr/agent_runner/agent_runner.cc
+++ b/bin/sessionmgr/agent_runner/agent_runner.cc
@@ -28,7 +28,6 @@
     MessageQueueManager* const message_queue_manager,
     fuchsia::ledger::internal::LedgerRepository* const ledger_repository,
     AgentRunnerStorage* const agent_runner_storage,
-    fuchsia::modular::auth::TokenProviderFactory* const token_provider_factory,
     fuchsia::auth::TokenManager* const token_manager,
     fuchsia::modular::UserIntelligenceProvider* const
         user_intelligence_provider,
@@ -37,7 +36,6 @@
       message_queue_manager_(message_queue_manager),
       ledger_repository_(ledger_repository),
       agent_runner_storage_(agent_runner_storage),
-      token_provider_factory_(token_provider_factory),
       token_manager_(token_manager),
       user_intelligence_provider_(user_intelligence_provider),
       entity_provider_runner_(entity_provider_runner),
@@ -120,8 +118,8 @@
   ComponentContextInfo component_info = {message_queue_manager_, this,
                                          ledger_repository_,
                                          entity_provider_runner_};
-  AgentContextInfo info = {component_info, launcher_, token_provider_factory_,
-                           token_manager_, user_intelligence_provider_};
+  AgentContextInfo info = {component_info, launcher_, token_manager_,
+                           user_intelligence_provider_};
   fuchsia::modular::AppConfig agent_config;
   agent_config.url = agent_url;
 
diff --git a/bin/sessionmgr/agent_runner/agent_runner.h b/bin/sessionmgr/agent_runner/agent_runner.h
index 27f8d97..f15586e 100644
--- a/bin/sessionmgr/agent_runner/agent_runner.h
+++ b/bin/sessionmgr/agent_runner/agent_runner.h
@@ -13,7 +13,6 @@
 #include <fuchsia/auth/cpp/fidl.h>
 #include <fuchsia/ledger/cpp/fidl.h>
 #include <fuchsia/ledger/internal/cpp/fidl.h>
-#include <fuchsia/modular/auth/cpp/fidl.h>
 #include <fuchsia/modular/cpp/fidl.h>
 #include <fuchsia/sys/cpp/fidl.h>
 #include <lib/async/cpp/operation.h>
@@ -44,7 +43,6 @@
       MessageQueueManager* message_queue_manager,
       fuchsia::ledger::internal::LedgerRepository* ledger_repository,
       AgentRunnerStorage* agent_runner_storage,
-      fuchsia::modular::auth::TokenProviderFactory* token_provider_factory,
       fuchsia::auth::TokenManager* token_manager,
       fuchsia::modular::UserIntelligenceProvider* user_intelligence_provider,
       EntityProviderRunner* entity_provider_runner);
@@ -210,7 +208,6 @@
   fuchsia::ledger::internal::LedgerRepository* const ledger_repository_;
   // |agent_runner_storage_| must outlive this class.
   AgentRunnerStorage* const agent_runner_storage_;
-  fuchsia::modular::auth::TokenProviderFactory* const token_provider_factory_;
   fuchsia::auth::TokenManager* const token_manager_;
   fuchsia::modular::UserIntelligenceProvider* const user_intelligence_provider_;
   EntityProviderRunner* const entity_provider_runner_;
diff --git a/bin/sessionmgr/agent_runner/agent_runner_unittest.cc b/bin/sessionmgr/agent_runner/agent_runner_unittest.cc
index 3a50663..ce76453 100644
--- a/bin/sessionmgr/agent_runner/agent_runner_unittest.cc
+++ b/bin/sessionmgr/agent_runner/agent_runner_unittest.cc
@@ -8,7 +8,6 @@
 
 #include <fs/service.h>
 #include <fs/synchronous-vfs.h>
-#include <fuchsia/modular/auth/cpp/fidl.h>
 #include <fuchsia/modular/cpp/fidl.h>
 #include <fuchsia/sys/cpp/fidl.h>
 #include <lib/component/cpp/service_provider_impl.h>
@@ -46,8 +45,7 @@
     // order for agent creation to be synchronous, which these tests assume.
     agent_runner_ = std::make_unique<AgentRunner>(
         &launcher_, mqm_.get(), ledger_repository(), &agent_runner_storage_,
-        token_provider_factory_.get(), token_manager_.get(), nullptr,
-        entity_provider_runner_.get());
+        token_manager_.get(), nullptr, entity_provider_runner_.get());
   }
 
   void TearDown() override {
@@ -73,7 +71,6 @@
   std::unique_ptr<EntityProviderRunner> entity_provider_runner_;
   std::unique_ptr<AgentRunner> agent_runner_;
 
-  fuchsia::modular::auth::TokenProviderFactoryPtr token_provider_factory_;
   fuchsia::auth::TokenManagerPtr token_manager_;
 
   FXL_DISALLOW_COPY_AND_ASSIGN(AgentRunnerTest);
diff --git a/bin/sessionmgr/entity_provider_runner/entity_provider_runner_unittest.cc b/bin/sessionmgr/entity_provider_runner/entity_provider_runner_unittest.cc
index 24d9d82..bc628de 100644
--- a/bin/sessionmgr/entity_provider_runner/entity_provider_runner_unittest.cc
+++ b/bin/sessionmgr/entity_provider_runner/entity_provider_runner_unittest.cc
@@ -8,7 +8,6 @@
 
 #include <fs/service.h>
 #include <fs/synchronous-vfs.h>
-#include <fuchsia/modular/auth/cpp/fidl.h>
 #include <fuchsia/modular/cpp/fidl.h>
 #include <fuchsia/sys/cpp/fidl.h>
 #include <lib/agent/cpp/agent_impl.h>
@@ -51,8 +50,7 @@
     // order for agent creation to be synchronous, which these tests assume.
     agent_runner_ = std::make_unique<AgentRunner>(
         &launcher_, mqm_.get(), ledger_repository(), &agent_runner_storage_,
-        token_provider_factory_.get(), token_manager_.get(), nullptr,
-        entity_provider_runner_.get());
+        token_manager_.get(), nullptr, entity_provider_runner_.get());
   }
 
   void TearDown() override {
@@ -101,7 +99,6 @@
   std::unique_ptr<EntityProviderRunner> entity_provider_runner_;
   std::unique_ptr<AgentRunner> agent_runner_;
 
-  fuchsia::modular::auth::TokenProviderFactoryPtr token_provider_factory_;
   fuchsia::auth::TokenManagerPtr token_manager_;
 
   FXL_DISALLOW_COPY_AND_ASSIGN(EntityProviderRunnerTest);
diff --git a/bin/sessionmgr/sessionmgr_impl.cc b/bin/sessionmgr/sessionmgr_impl.cc
index 305eed8..0be7d13 100644
--- a/bin/sessionmgr/sessionmgr_impl.cc
+++ b/bin/sessionmgr/sessionmgr_impl.cc
@@ -186,15 +186,13 @@
     fuchsia::modular::auth::AccountPtr account,
     fuchsia::modular::AppConfig session_shell,
     fuchsia::modular::AppConfig story_shell,
-    fidl::InterfaceHandle<fuchsia::modular::auth::TokenProviderFactory>
-        token_provider_factory,
     fidl::InterfaceHandle<fuchsia::auth::TokenManager> ledger_token_manager,
     fidl::InterfaceHandle<fuchsia::auth::TokenManager> agent_token_manager,
     fidl::InterfaceHandle<fuchsia::modular::internal::UserContext> user_context,
     fidl::InterfaceRequest<fuchsia::ui::viewsv1token::ViewOwner>
         view_owner_request) {
-  InitializeUser(std::move(account), std::move(token_provider_factory),
-                 std::move(agent_token_manager), std::move(user_context));
+  InitializeUser(std::move(account), std::move(agent_token_manager),
+                 std::move(user_context));
   InitializeLedger(std::move(ledger_token_manager));
   InitializeDeviceMap();
   InitializeMessageQueueManager();
@@ -209,18 +207,11 @@
 
 void SessionmgrImpl::InitializeUser(
     fuchsia::modular::auth::AccountPtr account,
-    fidl::InterfaceHandle<fuchsia::modular::auth::TokenProviderFactory>
-        token_provider_factory,
     fidl::InterfaceHandle<fuchsia::auth::TokenManager> agent_token_manager,
     fidl::InterfaceHandle<fuchsia::modular::internal::UserContext>
         user_context) {
-  if (token_provider_factory.is_valid()) {
-    token_provider_factory_ = token_provider_factory.Bind();
-    AtEnd(Reset(&token_provider_factory_));
-  } else {
     agent_token_manager_ = agent_token_manager.Bind();
     AtEnd(Reset(&agent_token_manager_));
-  }
 
   user_context_ = user_context.Bind();
   AtEnd(Reset(&user_context_));
@@ -268,23 +259,10 @@
   fuchsia::modular::AppConfig ledger_config;
   ledger_config.url = kLedgerAppUrl;
 
-  fuchsia::sys::ServiceListPtr service_list = nullptr;
-  if (account_) {
-    service_list = fuchsia::sys::ServiceList::New();
-    service_list->names.push_back(fuchsia::modular::auth::TokenProvider::Name_);
-    ledger_service_provider_.AddService<fuchsia::modular::auth::TokenProvider>(
-        [this](fidl::InterfaceRequest<fuchsia::modular::auth::TokenProvider>
-                   request) {
-          token_provider_factory_->GetTokenProvider(kLedgerAppUrl,
-                                                    std::move(request));
-        });
-    ledger_service_provider_.AddBinding(service_list->provider.NewRequest());
-  }
-
   ledger_app_ =
       std::make_unique<AppClient<fuchsia::ledger::internal::LedgerController>>(
           user_environment_->GetLauncher(), std::move(ledger_config), "",
-          std::move(service_list));
+          nullptr);
   ledger_app_->SetAppErrorHandler([this] {
     FXL_LOG(ERROR) << "Ledger seems to have crashed unexpectedly." << std::endl
                    << "CALLING Logout() DUE TO UNRECOVERABLE LEDGER ERROR.";
@@ -451,10 +429,8 @@
   agent_runner_.reset(new AgentRunner(
       user_environment_->GetLauncher(), message_queue_manager_.get(),
       ledger_repository_.get(), agent_runner_storage_.get(),
-      token_provider_factory_.is_bound() ? token_provider_factory_.get()
-                                         : nullptr,
-      agent_token_manager_.is_bound() ? agent_token_manager_.get() : nullptr,
-      user_intelligence_provider_impl_.get(), entity_provider_runner_.get()));
+      agent_token_manager_.get(), user_intelligence_provider_impl_.get(),
+      entity_provider_runner_.get()));
   AtEnd(Teardown(kAgentRunnerTimeout, "AgentRunner", &agent_runner_));
 
   maxwell_component_context_bindings_ = std::make_unique<
@@ -879,32 +855,19 @@
 
 fuchsia::ledger::cloud::CloudProviderPtr SessionmgrImpl::GetCloudProvider(
     fidl::InterfaceHandle<fuchsia::auth::TokenManager> ledger_token_manager) {
+  FXL_CHECK(ledger_token_manager);
+
   fuchsia::ledger::cloud::CloudProviderPtr cloud_provider;
   auto cloud_provider_config = GetLedgerFirestoreConfig();
 
-  if (ledger_token_manager.is_valid()) {
-    cloud_provider_factory_->GetCloudProviderV2(
-        std::move(cloud_provider_config), std::move(ledger_token_manager),
-        cloud_provider.NewRequest(), [](fuchsia::ledger::cloud::Status status) {
-          if (status != fuchsia::ledger::cloud::Status::OK) {
-            FXL_LOG(ERROR) << "Failed to create a cloud provider: "
-                           << fidl::ToUnderlying(status);
-          }
-        });
-  } else {
-    fidl::InterfaceHandle<fuchsia::modular::auth::TokenProvider>
-        ledger_token_provider;
-    token_provider_factory_->GetTokenProvider(
-        kLedgerAppUrl, ledger_token_provider.NewRequest());
-    cloud_provider_factory_->GetCloudProvider(
-        std::move(cloud_provider_config), std::move(ledger_token_provider),
-        cloud_provider.NewRequest(), [](fuchsia::ledger::cloud::Status status) {
-          if (status != fuchsia::ledger::cloud::Status::OK) {
-            FXL_LOG(ERROR) << "Failed to create a cloud provider: "
-                           << fidl::ToUnderlying(status);
-          }
-        });
-  }
+  cloud_provider_factory_->GetCloudProvider(
+      std::move(cloud_provider_config), std::move(ledger_token_manager),
+      cloud_provider.NewRequest(), [](fuchsia::ledger::cloud::Status status) {
+        if (status != fuchsia::ledger::cloud::Status::OK) {
+          FXL_LOG(ERROR) << "Failed to create a cloud provider: "
+                         << fidl::ToUnderlying(status);
+        }
+      });
   return cloud_provider;
 }
 
diff --git a/bin/sessionmgr/sessionmgr_impl.h b/bin/sessionmgr/sessionmgr_impl.h
index 2b9d5b8..f1571ae 100644
--- a/bin/sessionmgr/sessionmgr_impl.h
+++ b/bin/sessionmgr/sessionmgr_impl.h
@@ -88,8 +88,6 @@
       fuchsia::modular::auth::AccountPtr account,
       fuchsia::modular::AppConfig session_shell,
       fuchsia::modular::AppConfig story_shell,
-      fidl::InterfaceHandle<fuchsia::modular::auth::TokenProviderFactory>
-          token_provider_factory,
       fidl::InterfaceHandle<fuchsia::auth::TokenManager> ledger_token_manager,
       fidl::InterfaceHandle<fuchsia::auth::TokenManager> agent_token_manager,
       fidl::InterfaceHandle<fuchsia::modular::internal::UserContext>
@@ -104,8 +102,6 @@
   // Sequence of Initialize() broken up into steps for clarity.
   void InitializeUser(
       fuchsia::modular::auth::AccountPtr account,
-      fidl::InterfaceHandle<fuchsia::modular::auth::TokenProviderFactory>
-          token_provider_factory,
       fidl::InterfaceHandle<fuchsia::auth::TokenManager> agent_token_manager,
       fidl::InterfaceHandle<fuchsia::modular::internal::UserContext>
           user_context);
@@ -213,7 +209,6 @@
   fidl::BindingSet<fuchsia::modular::SessionShellContext>
       session_shell_context_bindings_;
 
-  fuchsia::modular::auth::TokenProviderFactoryPtr token_provider_factory_;
   fuchsia::auth::TokenManagerPtr agent_token_manager_;
   fuchsia::modular::internal::UserContextPtr user_context_;
   std::unique_ptr<AppClient<fuchsia::modular::Lifecycle>> cloud_provider_app_;
diff --git a/bin/token_manager/dev_token_manager.cc b/bin/token_manager/dev_token_manager.cc
index 3536c94..babb2f0 100644
--- a/bin/token_manager/dev_token_manager.cc
+++ b/bin/token_manager/dev_token_manager.cc
@@ -24,24 +24,16 @@
 
  private:
   // |AccountProvider| implementation:
-  void Initialize(
-      fidl::InterfaceHandle<fuchsia::modular::auth::AccountProviderContext>
-          provider) override;
   void Terminate() override;
   void AddAccount(fuchsia::modular::auth::IdentityProvider identity_provider,
                   AddAccountCallback callback) override;
   void RemoveAccount(fuchsia::modular::auth::Account account, bool revoke_all,
                      RemoveAccountCallback callback) override;
-  void GetTokenProviderFactory(
-      fidl::StringPtr account_id,
-      fidl::InterfaceRequest<fuchsia::modular::auth::TokenProviderFactory>
-          request) override;
 
   std::string GenerateAccountId();
 
   async::Loop* const loop_;
   std::shared_ptr<component::StartupContext> startup_context_;
-  fuchsia::modular::auth::AccountProviderContextPtr account_provider_context_;
   fidl::Binding<AccountProvider> binding_;
 
   FXL_DISALLOW_COPY_AND_ASSIGN(AccountProviderImpl);
@@ -58,12 +50,6 @@
       });
 }
 
-void AccountProviderImpl::Initialize(
-    fidl::InterfaceHandle<fuchsia::modular::auth::AccountProviderContext>
-        provider) {
-  account_provider_context_.Bind(std::move(provider));
-}
-
 void AccountProviderImpl::Terminate() { loop_->Quit(); }
 
 std::string AccountProviderImpl::GenerateAccountId() {
@@ -95,11 +81,6 @@
                                         bool revoke_all,
                                         RemoveAccountCallback callback) {}
 
-void AccountProviderImpl::GetTokenProviderFactory(
-    fidl::StringPtr account_id,
-    fidl::InterfaceRequest<fuchsia::modular::auth::TokenProviderFactory>
-        request) {}
-
 }  // namespace auth
 }  // namespace modular
 }  // namespace fuchsia
diff --git a/examples/simple/meta/simple_agent.cmx b/examples/simple/meta/simple_agent.cmx
index 630d985..3bcc536 100644
--- a/examples/simple/meta/simple_agent.cmx
+++ b/examples/simple/meta/simple_agent.cmx
@@ -9,7 +9,6 @@
             "fuchsia.modular.examples.simple",
             "fuchsia.modular.ComponentContext",
             "fuchsia.modular.ModuleContext",
-            "fuchsia.modular.auth.TokenProvider",
             "fuchsia.net.LegacySocketProvider",
             "fuchsia.net.oldhttp.HttpService",
             "fuchsia.netconnector.NetConnector",
@@ -17,4 +16,4 @@
             "fuchsia.tracelink.Registry"
         ]
     }
-}
\ No newline at end of file
+}
diff --git a/examples/simple/meta/simple_module.cmx b/examples/simple/meta/simple_module.cmx
index a5177f0..ece8074 100644
--- a/examples/simple/meta/simple_module.cmx
+++ b/examples/simple/meta/simple_module.cmx
@@ -8,7 +8,6 @@
             "fuchsia.cobalt.LoggerFactory",
             "fuchsia.modular.ComponentContext",
             "fuchsia.modular.ModuleContext",
-            "fuchsia.modular.auth.TokenProvider",
             "fuchsia.net.LegacySocketProvider",
             "fuchsia.net.oldhttp.HttpService",
             "fuchsia.netconnector.NetConnector",
@@ -16,4 +15,4 @@
             "fuchsia.tracelink.Registry"
         ]
     }
-}
\ No newline at end of file
+}
diff --git a/examples/swap_cpp/meta/swap_module1.cmx b/examples/swap_cpp/meta/swap_module1.cmx
index a5177f0..ece8074 100644
--- a/examples/swap_cpp/meta/swap_module1.cmx
+++ b/examples/swap_cpp/meta/swap_module1.cmx
@@ -8,7 +8,6 @@
             "fuchsia.cobalt.LoggerFactory",
             "fuchsia.modular.ComponentContext",
             "fuchsia.modular.ModuleContext",
-            "fuchsia.modular.auth.TokenProvider",
             "fuchsia.net.LegacySocketProvider",
             "fuchsia.net.oldhttp.HttpService",
             "fuchsia.netconnector.NetConnector",
@@ -16,4 +15,4 @@
             "fuchsia.tracelink.Registry"
         ]
     }
-}
\ No newline at end of file
+}
diff --git a/examples/swap_cpp/meta/swap_module2.cmx b/examples/swap_cpp/meta/swap_module2.cmx
index a5177f0..ece8074 100644
--- a/examples/swap_cpp/meta/swap_module2.cmx
+++ b/examples/swap_cpp/meta/swap_module2.cmx
@@ -8,7 +8,6 @@
             "fuchsia.cobalt.LoggerFactory",
             "fuchsia.modular.ComponentContext",
             "fuchsia.modular.ModuleContext",
-            "fuchsia.modular.auth.TokenProvider",
             "fuchsia.net.LegacySocketProvider",
             "fuchsia.net.oldhttp.HttpService",
             "fuchsia.netconnector.NetConnector",
@@ -16,4 +15,4 @@
             "fuchsia.tracelink.Registry"
         ]
     }
-}
\ No newline at end of file
+}
diff --git a/examples/swap_cpp/meta/swap_recipe.cmx b/examples/swap_cpp/meta/swap_recipe.cmx
index a5177f0..ece8074 100644
--- a/examples/swap_cpp/meta/swap_recipe.cmx
+++ b/examples/swap_cpp/meta/swap_recipe.cmx
@@ -8,7 +8,6 @@
             "fuchsia.cobalt.LoggerFactory",
             "fuchsia.modular.ComponentContext",
             "fuchsia.modular.ModuleContext",
-            "fuchsia.modular.auth.TokenProvider",
             "fuchsia.net.LegacySocketProvider",
             "fuchsia.net.oldhttp.HttpService",
             "fuchsia.netconnector.NetConnector",
@@ -16,4 +15,4 @@
             "fuchsia.tracelink.Registry"
         ]
     }
-}
\ No newline at end of file
+}
diff --git a/examples/todo_cpp/meta/todo_cpp.cmx b/examples/todo_cpp/meta/todo_cpp.cmx
index a5177f0..ece8074 100644
--- a/examples/todo_cpp/meta/todo_cpp.cmx
+++ b/examples/todo_cpp/meta/todo_cpp.cmx
@@ -8,7 +8,6 @@
             "fuchsia.cobalt.LoggerFactory",
             "fuchsia.modular.ComponentContext",
             "fuchsia.modular.ModuleContext",
-            "fuchsia.modular.auth.TokenProvider",
             "fuchsia.net.LegacySocketProvider",
             "fuchsia.net.oldhttp.HttpService",
             "fuchsia.netconnector.NetConnector",
@@ -16,4 +15,4 @@
             "fuchsia.tracelink.Registry"
         ]
     }
-}
\ No newline at end of file
+}
diff --git a/lib/firebase_auth/BUILD.gn b/lib/firebase_auth/BUILD.gn
index 11e0870..4e847f0 100644
--- a/lib/firebase_auth/BUILD.gn
+++ b/lib/firebase_auth/BUILD.gn
@@ -37,7 +37,6 @@
 
   sources = [
     "firebase_auth_impl_unittest.cc",
-    "firebase_auth_v2_impl_unittest.cc",
   ]
 
   deps = [
diff --git a/lib/firebase_auth/firebase_auth_impl.cc b/lib/firebase_auth/firebase_auth_impl.cc
index 3d8c9c7..f5de43b 100644
--- a/lib/firebase_auth/firebase_auth_impl.cc
+++ b/lib/firebase_auth/firebase_auth_impl.cc
@@ -18,28 +18,10 @@
 
 constexpr char kConfigBinProtoPath[] =
     "/pkg/data/firebase_auth_cobalt_config.pb";
-constexpr int32_t kCobaltAuthFailureMetricId = 3;
-constexpr int32_t kCobaltAuthV2FailureMetricId = 4;
+constexpr int32_t kCobaltAuthFailureMetricId = 4;
 
 // Returns true if the authentication failure may be transient.
-bool IsRetriableError(fuchsia::modular::auth::Status status) {
-  switch (status) {
-    case fuchsia::modular::auth::Status::OK:  // This should never happen.
-    case fuchsia::modular::auth::Status::BAD_REQUEST:
-    case fuchsia::modular::auth::Status::OAUTH_SERVER_ERROR:
-    case fuchsia::modular::auth::Status::USER_CANCELLED:
-      return false;
-    case fuchsia::modular::auth::Status::BAD_RESPONSE:
-    case fuchsia::modular::auth::Status::NETWORK_ERROR:
-    case fuchsia::modular::auth::Status::INTERNAL_ERROR:
-      return true;
-  }
-  // In case of unexpected status, retry just in case.
-  return true;
-}
-
-// Returns true if the authentication failure may be transient.
-bool IsRetriableErrorV2(fuchsia::auth::Status status) {
+bool IsRetriableError(fuchsia::auth::Status status) {
   switch (status) {
     case fuchsia::auth::Status::OK:  // This should never happen.
     case fuchsia::auth::Status::AUTH_PROVIDER_SERVER_ERROR:
@@ -63,11 +45,9 @@
 
 FirebaseAuthImpl::FirebaseAuthImpl(
     Config config, async_dispatcher_t* dispatcher, rng::Random* random,
-    fuchsia::modular::auth::TokenProviderPtr token_provider,
     fuchsia::auth::TokenManagerPtr token_manager,
     component::StartupContext* startup_context)
     : config_(std::move(config)),
-      token_provider_(std::move(token_provider)),
       token_manager_(std::move(token_manager)),
       backoff_(std::make_unique<backoff::ExponentialBackoff>(
           random->NewBitGenerator<uint64_t>())),
@@ -84,12 +64,10 @@
 
 FirebaseAuthImpl::FirebaseAuthImpl(
     Config config, async_dispatcher_t* dispatcher,
-    fuchsia::modular::auth::TokenProviderPtr token_provider,
     fuchsia::auth::TokenManagerPtr token_manager,
     std::unique_ptr<backoff::Backoff> backoff,
     std::unique_ptr<cobalt::CobaltLogger> cobalt_logger)
     : config_(std::move(config)),
-      token_provider_(std::move(token_provider)),
       token_manager_(std::move(token_manager)),
       backoff_(std::move(backoff)),
       max_retries_(config_.max_retries),
@@ -98,7 +76,7 @@
       task_runner_(dispatcher) {}
 
 void FirebaseAuthImpl::set_error_handler(fit::closure on_error) {
-  token_provider_.set_error_handler(
+  token_manager_.set_error_handler(
       [on_error = std::move(on_error)](zx_status_t status) { on_error(); });
 }
 
@@ -109,84 +87,25 @@
                         "may be unauthenticated.";
   }
   auto cancellable = callback::CancellableImpl::Create([] {});
-  if (token_manager_.is_bound()) {
-    GetTokenV2(max_retries_,
-               [callback = cancellable->WrapCallback(std::move(callback))](
-                   auto status, auto token) {
-                 callback(status, token ? token->id_token : "");
-               });
-  } else {
-    GetToken(max_retries_, [callback = cancellable->WrapCallback(
-                                std::move(callback))](auto status, auto token) {
-      callback(status, token ? token->id_token : "");
-    });
-  }
+  GetToken(max_retries_, [callback = cancellable->WrapCallback(
+                              std::move(callback))](auto status, auto token) {
+    callback(status, token ? token->id_token : "");
+  });
   return cancellable;
 }
 
 fxl::RefPtr<callback::Cancellable> FirebaseAuthImpl::GetFirebaseUserId(
     fit::function<void(AuthStatus, std::string)> callback) {
   auto cancellable = callback::CancellableImpl::Create([] {});
-  if (token_manager_.is_bound()) {
-    GetTokenV2(max_retries_,
-               [callback = cancellable->WrapCallback(std::move(callback))](
-                   auto status, auto token) {
-                 callback(status, token ? token->local_id : "");
-               });
-  } else {
-    GetToken(max_retries_, [callback = cancellable->WrapCallback(
-                                std::move(callback))](auto status, auto token) {
-      callback(status, token ? token->local_id : "");
-    });
-  }
+  GetToken(max_retries_, [callback = cancellable->WrapCallback(
+                              std::move(callback))](auto status, auto token) {
+    callback(status, token ? token->local_id : "");
+  });
   return cancellable;
 }
 
 void FirebaseAuthImpl::GetToken(
     int max_retries,
-    fit::function<void(AuthStatus, fuchsia::modular::auth::FirebaseTokenPtr)>
-        callback) {
-  token_provider_->GetFirebaseAuthToken(
-      config_.api_key,
-      fxl::MakeCopyable([this, max_retries, callback = std::move(callback)](
-                            fuchsia::modular::auth::FirebaseTokenPtr token,
-                            fuchsia::modular::auth::AuthErr error) mutable {
-        if (!token || error.status != fuchsia::modular::auth::Status::OK) {
-          if (!token && error.status == fuchsia::modular::auth::Status::OK) {
-            FXL_LOG(ERROR)
-                << "null Firebase token returned from token provider with no "
-                << "error reported. This should never happen. Retrying.";
-            error.status = fuchsia::modular::auth::Status::BAD_RESPONSE;
-          } else {
-            FXL_LOG(ERROR)
-                << "Error retrieving the Firebase token from token provider: "
-                << fidl::ToUnderlying(error.status) << ", '" << error.message
-                << "', retrying.";
-          }
-
-          if (max_retries > 0 && IsRetriableError(error.status)) {
-            task_runner_.PostDelayedTask(
-                [this, max_retries, callback = std::move(callback)]() mutable {
-                  GetToken(max_retries - 1, std::move(callback));
-                },
-                backoff_->GetNext());
-            return;
-          }
-        }
-
-        backoff_->Reset();
-        if (error.status == fuchsia::modular::auth::Status::OK) {
-          callback(AuthStatus::OK, std::move(token));
-        } else {
-          ReportError(kCobaltAuthFailureMetricId,
-                      static_cast<uint32_t>(error.status));
-          callback(AuthStatus::ERROR, std::move(token));
-        }
-      }));
-}
-
-void FirebaseAuthImpl::GetTokenV2(
-    int max_retries,
     fit::function<void(AuthStatus, fuchsia::auth::FirebaseTokenPtr)> callback) {
   fuchsia::auth::AppConfig oauth_config;
   oauth_config.auth_provider_type = "google";
@@ -210,10 +129,10 @@
                 << fidl::ToUnderlying(status) << "', retrying.";
           }
 
-          if (max_retries > 0 && IsRetriableErrorV2(status)) {
+          if (max_retries > 0 && IsRetriableError(status)) {
             task_runner_.PostDelayedTask(
                 [this, max_retries, callback = std::move(callback)]() mutable {
-                  GetTokenV2(max_retries - 1, std::move(callback));
+                  GetToken(max_retries - 1, std::move(callback));
                 },
                 backoff_->GetNext());
             return;
@@ -224,7 +143,7 @@
         if (status == fuchsia::auth::Status::OK) {
           callback(AuthStatus::OK, std::move(token));
         } else {
-          ReportError(kCobaltAuthV2FailureMetricId,
+          ReportError(kCobaltAuthFailureMetricId,
                       static_cast<uint32_t>(status));
           callback(AuthStatus::ERROR, std::move(token));
         }
diff --git a/lib/firebase_auth/firebase_auth_impl.h b/lib/firebase_auth/firebase_auth_impl.h
index da76613..3e74c2d 100644
--- a/lib/firebase_auth/firebase_auth_impl.h
+++ b/lib/firebase_auth/firebase_auth_impl.h
@@ -10,7 +10,6 @@
 #include <string>
 
 #include <fuchsia/auth/cpp/fidl.h>
-#include <fuchsia/modular/auth/cpp/fidl.h>
 #include <lib/async/dispatcher.h>
 #include <lib/backoff/backoff.h>
 #include <lib/callback/cancellable.h>
@@ -28,16 +27,16 @@
 // system token provider.
 //
 // If configured with an empty |api_key|, doesn't attempt to use
-// |token_provider| and yields empty Firebase tokens and user ids. This allows
+// |token_manager| and yields empty Firebase tokens and user ids. This allows
 // the code to work without auth against public instances (e.g. for running
 // benchmarks).
 //
 // If configured with an empty |cobalt_client_name| or null |startup_context|,
 // disables statistics collection about failures.
 //
-// *Warning*: if |token_provider| disconnects, all requests in progress are
+// *Warning*: if |token_manager| disconnects, all requests in progress are
 // dropped on the floor. TODO(ppi): keep track of pending requests and call the
-// callbacks with status TOKEN_PROVIDER_DISCONNECTED when this happens.
+// callbacks with status TOKEN_MANAGER_DISCONNECTED when this happens.
 class FirebaseAuthImpl : public FirebaseAuth {
  public:
   struct Config {
@@ -51,12 +50,10 @@
 
   FirebaseAuthImpl(Config config, async_dispatcher_t* dispatcher,
                    rng::Random* random,
-                   fuchsia::modular::auth::TokenProviderPtr token_provider,
                    fuchsia::auth::TokenManagerPtr token_manager,
                    component::StartupContext* startup_context);
   // For tests.
   FirebaseAuthImpl(Config config, async_dispatcher_t* dispatcher,
-                   fuchsia::modular::auth::TokenProviderPtr token_provider,
                    fuchsia::auth::TokenManagerPtr token_manager,
                    std::unique_ptr<backoff::Backoff> backoff,
                    std::unique_ptr<cobalt::CobaltLogger> cobalt_logger);
@@ -73,28 +70,19 @@
       override;
 
  private:
-  // Retrieves the Firebase token from the token provider, transparently
-  // retrying the request up to |max_retries| times in case of non-fatal
-  // errors.
-  void GetToken(int max_retries,
-                fit::function<void(firebase_auth::AuthStatus,
-                                   fuchsia::modular::auth::FirebaseTokenPtr)>
-                    callback);
-
   // Retrieves the Firebase token from the fuchsia::auth::TokenManager,
   // transparently retrying the request up to |max_retries| times in case of
   // non-fatal errors.
-  void GetTokenV2(int max_retries,
-                  fit::function<void(firebase_auth::AuthStatus,
-                                     fuchsia::auth::FirebaseTokenPtr)>
-                      callback);
+  void GetToken(int max_retries,
+                fit::function<void(firebase_auth::AuthStatus,
+                                   fuchsia::auth::FirebaseTokenPtr)>
+                    callback);
 
   // Sends a Cobalt event for metric |metric_id| counting the error code
   // |status|, unless |cobalt_client_name_| is empty.
   void ReportError(int32_t metric_id, uint32_t status);
 
   const Config config_;
-  fuchsia::modular::auth::TokenProviderPtr token_provider_;
   fuchsia::auth::TokenManagerPtr token_manager_;
   const std::unique_ptr<backoff::Backoff> backoff_;
   const int max_retries_;
diff --git a/lib/firebase_auth/firebase_auth_impl_unittest.cc b/lib/firebase_auth/firebase_auth_impl_unittest.cc
index 4ba5372..58df55c 100644
--- a/lib/firebase_auth/firebase_auth_impl_unittest.cc
+++ b/lib/firebase_auth/firebase_auth_impl_unittest.cc
@@ -1,4 +1,4 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
+// Copyright 2018 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -6,7 +6,7 @@
 
 #include <utility>
 
-#include <fuchsia/modular/auth/cpp/fidl.h>
+#include <fuchsia/auth/cpp/fidl.h>
 #include <lib/backoff/testing/test_backoff.h>
 #include <lib/callback/capture.h>
 #include <lib/callback/set_when_called.h>
@@ -14,7 +14,7 @@
 #include <lib/fxl/functional/make_copyable.h>
 #include <lib/gtest/test_loop_fixture.h>
 
-#include "peridot/lib/firebase_auth/testing/test_token_provider.h"
+#include "peridot/lib/firebase_auth/testing/test_token_manager.h"
 
 namespace firebase_auth {
 
@@ -30,7 +30,7 @@
   void LogEventCount(uint32_t metric_id, uint32_t event_code,
                      const std::string& component, zx::duration period_duration,
                      int64_t count) override {
-    EXPECT_EQ(3u, metric_id);
+    EXPECT_EQ(4u, metric_id);
     // The value should contain the client name.
     EXPECT_TRUE(component.find("firebase-test") != std::string::npos);
     *called_ += 1;
@@ -62,11 +62,11 @@
 class FirebaseAuthImplTest : public gtest::TestLoopFixture {
  public:
   FirebaseAuthImplTest()
-      : token_provider_(dispatcher()),
-        token_provider_binding_(&token_provider_),
+      : token_manager_(dispatcher()),
+        token_manager_binding_(&token_manager_),
         firebase_auth_(
             {"api_key", "firebase-test", 1}, dispatcher(),
-            token_provider_binding_.NewBinding().Bind(), nullptr, InitBackoff(),
+            token_manager_binding_.NewBinding().Bind(), InitBackoff(),
             std::make_unique<MockCobaltLogger>(&report_observation_count_)) {}
 
   ~FirebaseAuthImplTest() override {}
@@ -79,8 +79,8 @@
     return backoff;
   }
 
-  TestTokenProvider token_provider_;
-  fidl::Binding<fuchsia::modular::auth::TokenProvider> token_provider_binding_;
+  TestTokenManager token_manager_;
+  fidl::Binding<fuchsia::auth::TokenManager> token_manager_binding_;
   FirebaseAuthImpl firebase_auth_;
   int report_observation_count_ = 0;
   backoff::TestBackoff* backoff_;
@@ -90,7 +90,7 @@
 };
 
 TEST_F(FirebaseAuthImplTest, GetFirebaseToken) {
-  token_provider_.Set("this is a token", "some id", "me@example.com");
+  token_manager_.Set("this is a token", "some id", "me@example.com");
 
   bool called;
   AuthStatus auth_status;
@@ -108,7 +108,7 @@
   bool called;
   AuthStatus auth_status;
   std::string firebase_token;
-  token_provider_.SetError(fuchsia::modular::auth::Status::NETWORK_ERROR);
+  token_manager_.SetError(fuchsia::auth::Status::NETWORK_ERROR);
   backoff_->SetOnGetNext(QuitLoopClosure());
   firebase_auth_.GetFirebaseToken(callback::Capture(
       callback::SetWhenCalled(&called), &auth_status, &firebase_token));
@@ -118,7 +118,7 @@
   EXPECT_EQ(0, backoff_->reset_count);
   EXPECT_EQ(0, report_observation_count_);
 
-  token_provider_.Set("this is a token", "some id", "me@example.com");
+  token_manager_.Set("this is a token", "some id", "me@example.com");
   RunLoopUntilIdle();
   EXPECT_TRUE(called);
   EXPECT_EQ(AuthStatus::OK, auth_status);
@@ -129,7 +129,7 @@
 }
 
 TEST_F(FirebaseAuthImplTest, GetFirebaseUserId) {
-  token_provider_.Set("this is a token", "some id", "me@example.com");
+  token_manager_.Set("this is a token", "some id", "me@example.com");
 
   bool called;
   AuthStatus auth_status;
@@ -147,7 +147,7 @@
   bool called;
   AuthStatus auth_status;
   std::string firebase_id;
-  token_provider_.SetError(fuchsia::modular::auth::Status::NETWORK_ERROR);
+  token_manager_.SetError(fuchsia::auth::Status::NETWORK_ERROR);
   backoff_->SetOnGetNext(QuitLoopClosure());
   firebase_auth_.GetFirebaseUserId(callback::Capture(
       callback::SetWhenCalled(&called), &auth_status, &firebase_id));
@@ -157,7 +157,7 @@
   EXPECT_EQ(0, backoff_->reset_count);
   EXPECT_EQ(0, report_observation_count_);
 
-  token_provider_.Set("this is a token", "some id", "me@example.com");
+  token_manager_.Set("this is a token", "some id", "me@example.com");
   RunLoopUntilIdle();
   EXPECT_TRUE(called);
   EXPECT_EQ(AuthStatus::OK, auth_status);
@@ -170,7 +170,7 @@
 TEST_F(FirebaseAuthImplTest, GetFirebaseUserIdMaxRetry) {
   bool called;
   AuthStatus auth_status;
-  token_provider_.SetError(fuchsia::modular::auth::Status::NETWORK_ERROR);
+  token_manager_.SetError(fuchsia::auth::Status::NETWORK_ERROR);
   backoff_->SetOnGetNext(QuitLoopClosure());
   firebase_auth_.GetFirebaseUserId(callback::Capture(
       callback::SetWhenCalled(&called), &auth_status, &std::ignore));
@@ -181,7 +181,7 @@
   EXPECT_EQ(0, report_observation_count_);
 
   // Exceeding the maximum number of retriable errors returns an error.
-  token_provider_.SetError(fuchsia::modular::auth::Status::INTERNAL_ERROR);
+  token_manager_.SetError(fuchsia::auth::Status::INTERNAL_ERROR);
   RunLoopUntilIdle();
   EXPECT_TRUE(called);
   EXPECT_EQ(AuthStatus::ERROR, auth_status);
@@ -193,7 +193,7 @@
 TEST_F(FirebaseAuthImplTest, GetFirebaseUserIdNonRetriableError) {
   bool called;
   AuthStatus auth_status;
-  token_provider_.SetError(fuchsia::modular::auth::Status::BAD_REQUEST);
+  token_manager_.SetError(fuchsia::auth::Status::INVALID_REQUEST);
   backoff_->SetOnGetNext(QuitLoopClosure());
   firebase_auth_.GetFirebaseUserId(callback::Capture(
       callback::SetWhenCalled(&called), &auth_status, &std::ignore));
diff --git a/lib/firebase_auth/firebase_auth_v2_impl_unittest.cc b/lib/firebase_auth/firebase_auth_v2_impl_unittest.cc
deleted file mode 100644
index d69b184..0000000
--- a/lib/firebase_auth/firebase_auth_v2_impl_unittest.cc
+++ /dev/null
@@ -1,210 +0,0 @@
-// Copyright 2018 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "peridot/lib/firebase_auth/firebase_auth_impl.h"
-
-#include <utility>
-
-#include <fuchsia/auth/cpp/fidl.h>
-#include <lib/backoff/testing/test_backoff.h>
-#include <lib/callback/capture.h>
-#include <lib/callback/set_when_called.h>
-#include <lib/fidl/cpp/binding.h>
-#include <lib/fxl/functional/make_copyable.h>
-#include <lib/gtest/test_loop_fixture.h>
-
-#include "peridot/lib/firebase_auth/testing/test_token_manager.h"
-
-namespace firebase_auth {
-
-namespace {
-
-class MockCobaltLogger : public cobalt::CobaltLogger {
- public:
-  ~MockCobaltLogger() override = default;
-
-  MockCobaltLogger(int* called) : called_(called) {}
-
-  void LogEvent(uint32_t metric_id, uint32_t event_code) override {}
-  void LogEventCount(uint32_t metric_id, uint32_t event_code,
-                     const std::string& component, zx::duration period_duration,
-                     int64_t count) override {
-    EXPECT_EQ(4u, metric_id);
-    // The value should contain the client name.
-    EXPECT_TRUE(component.find("firebase-test") != std::string::npos);
-    *called_ += 1;
-  }
-  void LogElapsedTime(uint32_t metric_id, uint32_t event_code,
-                      const std::string& component,
-                      zx::duration elapsed_time) override {}
-  void LogFrameRate(uint32_t metric_id, uint32_t event_code,
-                    const std::string& component, float fps) override {}
-  void LogMemoryUsage(uint32_t metric_id, uint32_t event_code,
-                      const std::string& component, int64_t bytes) override {}
-  void LogString(uint32_t metric_id, const std::string& s) override {}
-  void StartTimer(uint32_t metric_id, uint32_t event_code,
-                  const std::string& component, const std::string& timer_id,
-                  zx::time timestamp, zx::duration timeout) override {}
-  void EndTimer(const std::string& timer_id, zx::time timestamp,
-                zx::duration timeout) override {}
-  void LogIntHistogram(
-      uint32_t metric_id, uint32_t event_code, const std::string& component,
-      std::vector<fuchsia::cobalt::HistogramBucket> histogram) override {}
-  void LogCustomEvent(
-      uint32_t metric_id,
-      std::vector<fuchsia::cobalt::CustomEventValue> event_values) override {}
-
- private:
-  int* called_;
-};
-
-class FirebaseAuthV2ImplTest : public gtest::TestLoopFixture {
- public:
-  FirebaseAuthV2ImplTest()
-      : token_manager_(dispatcher()),
-        token_manager_binding_(&token_manager_),
-        firebase_auth_(
-            {"api_key", "firebase-test", 1}, dispatcher(), nullptr,
-            token_manager_binding_.NewBinding().Bind(), InitBackoff(),
-            std::make_unique<MockCobaltLogger>(&report_observation_count_)) {}
-
-  ~FirebaseAuthV2ImplTest() override {}
-
- protected:
-  std::unique_ptr<backoff::Backoff> InitBackoff() {
-    // TODO(LE-630): Don't use a backoff duration of 0.
-    auto backoff = std::make_unique<backoff::TestBackoff>(zx::sec(0));
-    backoff_ = backoff.get();
-    return backoff;
-  }
-
-  TestTokenManager token_manager_;
-  fidl::Binding<fuchsia::auth::TokenManager> token_manager_binding_;
-  FirebaseAuthImpl firebase_auth_;
-  int report_observation_count_ = 0;
-  backoff::TestBackoff* backoff_;
-
- private:
-  FXL_DISALLOW_COPY_AND_ASSIGN(FirebaseAuthV2ImplTest);
-};
-
-TEST_F(FirebaseAuthV2ImplTest, GetFirebaseToken) {
-  token_manager_.Set("this is a token", "some id", "me@example.com");
-
-  bool called;
-  AuthStatus auth_status;
-  std::string firebase_token;
-  firebase_auth_.GetFirebaseToken(callback::Capture(
-      callback::SetWhenCalled(&called), &auth_status, &firebase_token));
-  RunLoopUntilIdle();
-  EXPECT_TRUE(called);
-  EXPECT_EQ(AuthStatus::OK, auth_status);
-  EXPECT_EQ("this is a token", firebase_token);
-  EXPECT_EQ(0, report_observation_count_);
-}
-
-TEST_F(FirebaseAuthV2ImplTest, GetFirebaseTokenRetryOnError) {
-  bool called;
-  AuthStatus auth_status;
-  std::string firebase_token;
-  token_manager_.SetError(fuchsia::auth::Status::NETWORK_ERROR);
-  backoff_->SetOnGetNext(QuitLoopClosure());
-  firebase_auth_.GetFirebaseToken(callback::Capture(
-      callback::SetWhenCalled(&called), &auth_status, &firebase_token));
-  RunLoopUntilIdle();
-  EXPECT_FALSE(called);
-  EXPECT_EQ(1, backoff_->get_next_count);
-  EXPECT_EQ(0, backoff_->reset_count);
-  EXPECT_EQ(0, report_observation_count_);
-
-  token_manager_.Set("this is a token", "some id", "me@example.com");
-  RunLoopUntilIdle();
-  EXPECT_TRUE(called);
-  EXPECT_EQ(AuthStatus::OK, auth_status);
-  EXPECT_EQ("this is a token", firebase_token);
-  EXPECT_EQ(1, backoff_->get_next_count);
-  EXPECT_EQ(1, backoff_->reset_count);
-  EXPECT_EQ(0, report_observation_count_);
-}
-
-TEST_F(FirebaseAuthV2ImplTest, GetFirebaseUserId) {
-  token_manager_.Set("this is a token", "some id", "me@example.com");
-
-  bool called;
-  AuthStatus auth_status;
-  std::string firebase_user_id;
-  firebase_auth_.GetFirebaseUserId(callback::Capture(
-      callback::SetWhenCalled(&called), &auth_status, &firebase_user_id));
-  RunLoopUntilIdle();
-  EXPECT_TRUE(called);
-  EXPECT_EQ(AuthStatus::OK, auth_status);
-  EXPECT_EQ("some id", firebase_user_id);
-  EXPECT_EQ(0, report_observation_count_);
-}
-
-TEST_F(FirebaseAuthV2ImplTest, GetFirebaseUserIdRetryOnError) {
-  bool called;
-  AuthStatus auth_status;
-  std::string firebase_id;
-  token_manager_.SetError(fuchsia::auth::Status::NETWORK_ERROR);
-  backoff_->SetOnGetNext(QuitLoopClosure());
-  firebase_auth_.GetFirebaseUserId(callback::Capture(
-      callback::SetWhenCalled(&called), &auth_status, &firebase_id));
-  RunLoopUntilIdle();
-  EXPECT_FALSE(called);
-  EXPECT_EQ(1, backoff_->get_next_count);
-  EXPECT_EQ(0, backoff_->reset_count);
-  EXPECT_EQ(0, report_observation_count_);
-
-  token_manager_.Set("this is a token", "some id", "me@example.com");
-  RunLoopUntilIdle();
-  EXPECT_TRUE(called);
-  EXPECT_EQ(AuthStatus::OK, auth_status);
-  EXPECT_EQ("some id", firebase_id);
-  EXPECT_EQ(1, backoff_->get_next_count);
-  EXPECT_EQ(1, backoff_->reset_count);
-  EXPECT_EQ(0, report_observation_count_);
-}
-
-TEST_F(FirebaseAuthV2ImplTest, GetFirebaseUserIdMaxRetry) {
-  bool called;
-  AuthStatus auth_status;
-  token_manager_.SetError(fuchsia::auth::Status::NETWORK_ERROR);
-  backoff_->SetOnGetNext(QuitLoopClosure());
-  firebase_auth_.GetFirebaseUserId(callback::Capture(
-      callback::SetWhenCalled(&called), &auth_status, &std::ignore));
-  RunLoopUntilIdle();
-  EXPECT_FALSE(called);
-  EXPECT_EQ(1, backoff_->get_next_count);
-  EXPECT_EQ(0, backoff_->reset_count);
-  EXPECT_EQ(0, report_observation_count_);
-
-  // Exceeding the maximum number of retriable errors returns an error.
-  token_manager_.SetError(fuchsia::auth::Status::INTERNAL_ERROR);
-  RunLoopUntilIdle();
-  EXPECT_TRUE(called);
-  EXPECT_EQ(AuthStatus::ERROR, auth_status);
-  EXPECT_EQ(1, backoff_->get_next_count);
-  EXPECT_EQ(1, backoff_->reset_count);
-  EXPECT_EQ(1, report_observation_count_);
-}
-
-TEST_F(FirebaseAuthV2ImplTest, GetFirebaseUserIdNonRetriableError) {
-  bool called;
-  AuthStatus auth_status;
-  token_manager_.SetError(fuchsia::auth::Status::INVALID_REQUEST);
-  backoff_->SetOnGetNext(QuitLoopClosure());
-  firebase_auth_.GetFirebaseUserId(callback::Capture(
-      callback::SetWhenCalled(&called), &auth_status, &std::ignore));
-  RunLoopUntilIdle();
-  EXPECT_TRUE(called);
-  EXPECT_EQ(AuthStatus::ERROR, auth_status);
-  EXPECT_EQ(0, backoff_->get_next_count);
-  EXPECT_EQ(1, backoff_->reset_count);
-  EXPECT_EQ(1, report_observation_count_);
-}
-
-}  // namespace
-
-}  // namespace firebase_auth
diff --git a/lib/firebase_auth/testing/BUILD.gn b/lib/firebase_auth/testing/BUILD.gn
index f06a322..bcbe5ae 100644
--- a/lib/firebase_auth/testing/BUILD.gn
+++ b/lib/firebase_auth/testing/BUILD.gn
@@ -13,21 +13,16 @@
   sources = [
     "fake_token_manager.cc",
     "fake_token_manager.h",
-    "fake_token_provider.cc",
-    "fake_token_provider.h",
     "test_firebase_auth.cc",
     "test_firebase_auth.h",
     "test_token_manager.cc",
     "test_token_manager.h",
-    "test_token_provider.cc",
-    "test_token_provider.h",
   ]
 
   public_deps = [
     "//garnet/public/fidl/fuchsia.auth",
     "//peridot/lib/firebase_auth",
     "//peridot/lib/rng",
-    "//peridot/public/fidl/fuchsia.modular.auth",
   ]
 
   deps = [
@@ -45,8 +40,6 @@
   sources = [
     "service_account_token_minter.cc",
     "service_account_token_minter.h",
-    "service_account_token_provider.cc",
-    "service_account_token_provider.h",
     "service_account_token_manager.cc",
     "service_account_token_manager.h",
   ]
@@ -57,7 +50,6 @@
     "//garnet/public/lib/callback",
     "//garnet/public/lib/fxl",
     "//garnet/public/lib/network_wrapper",
-    "//peridot/public/fidl/fuchsia.modular.auth",
   ]
 
   deps = [
@@ -122,7 +114,6 @@
     "service_account_test_util.h",
     "service_account_test_util.cc",
     "service_account_token_minter_unittest.cc",
-    "service_account_token_provider_unittest.cc",
     "service_account_token_manager_unittest.cc",
   ]
 
diff --git a/lib/firebase_auth/testing/fake_token_provider.cc b/lib/firebase_auth/testing/fake_token_provider.cc
deleted file mode 100644
index 5e1fa05..0000000
--- a/lib/firebase_auth/testing/fake_token_provider.cc
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright 2016 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "peridot/lib/firebase_auth/testing/fake_token_provider.h"
-
-#include <lib/fxl/logging.h>
-
-#include "peridot/lib/convert/convert.h"
-
-namespace firebase_auth {
-
-FakeTokenProvider::FakeTokenProvider(rng::Random* random)
-    : firebase_id_token_(""),
-      firebase_local_id_(convert::ToHex(random->RandomUniqueBytes())),
-      email_("dummy@example.com"),
-      client_id_("client_id") {}
-
-void FakeTokenProvider::GetAccessToken(GetAccessTokenCallback callback) {
-  fuchsia::modular::auth::AuthErr error;
-  error.status = fuchsia::modular::auth::Status::OK;
-  error.message = "";
-  FXL_NOTIMPLEMENTED() << "FakeTokenProvider::GetAccessToken not implemented";
-  callback(nullptr, std::move(error));
-}
-
-void FakeTokenProvider::GetIdToken(GetIdTokenCallback callback) {
-  fuchsia::modular::auth::AuthErr error;
-  error.status = fuchsia::modular::auth::Status::OK;
-  error.message = "";
-  FXL_NOTIMPLEMENTED() << "FakeTokenProvider::GetIdToken not implemented";
-  callback(nullptr, std::move(error));
-}
-
-void FakeTokenProvider::GetFirebaseAuthToken(
-    fidl::StringPtr /*firebase_api_key*/,
-    GetFirebaseAuthTokenCallback callback) {
-  fuchsia::modular::auth::AuthErr error;
-  error.status = fuchsia::modular::auth::Status::OK;
-  error.message = "";
-  if (firebase_local_id_.empty()) {
-    callback(nullptr, std::move(error));
-    return;
-  }
-  fuchsia::modular::auth::FirebaseTokenPtr token =
-      fuchsia::modular::auth::FirebaseToken::New();
-  token->id_token = firebase_id_token_;
-  token->local_id = firebase_local_id_;
-  token->email = email_;
-  callback(std::move(token), std::move(error));
-}
-
-void FakeTokenProvider::GetClientId(GetClientIdCallback callback) {
-  if (client_id_.empty()) {
-    callback(nullptr);
-  } else {
-    callback(client_id_);
-  }
-}
-
-}  // namespace firebase_auth
diff --git a/lib/firebase_auth/testing/fake_token_provider.h b/lib/firebase_auth/testing/fake_token_provider.h
deleted file mode 100644
index 93b642a..0000000
--- a/lib/firebase_auth/testing/fake_token_provider.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2016 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PERIDOT_LIB_FIREBASE_AUTH_TESTING_FAKE_TOKEN_PROVIDER_H_
-#define PERIDOT_LIB_FIREBASE_AUTH_TESTING_FAKE_TOKEN_PROVIDER_H_
-
-#include <functional>
-
-#include <fuchsia/modular/auth/cpp/fidl.h>
-#include <lib/fxl/macros.h>
-
-#include "peridot/lib/rng/random.h"
-
-namespace firebase_auth {
-// FakeTokenProvider is a dummy implementation of a TokenProvider intended to be
-// used to connect to unauthenticated firebase instances.
-//
-// The local ID Firebase token are set to a random UUID fixed at the
-// construction time.
-//
-// Other token values are set to dummy const values.
-class FakeTokenProvider : public fuchsia::modular::auth::TokenProvider {
- public:
-  FakeTokenProvider(rng::Random* random);
-  ~FakeTokenProvider() override {}
-
- private:
-  void GetAccessToken(GetAccessTokenCallback callback) override;
-  void GetIdToken(GetIdTokenCallback callback) override;
-  void GetFirebaseAuthToken(fidl::StringPtr firebase_api_key,
-                            GetFirebaseAuthTokenCallback callback) override;
-  void GetClientId(GetClientIdCallback callback) override;
-
-  std::string firebase_id_token_;
-  std::string firebase_local_id_;
-  std::string email_;
-  std::string client_id_;
-  FXL_DISALLOW_COPY_AND_ASSIGN(FakeTokenProvider);
-};
-
-}  // namespace firebase_auth
-
-#endif  // PERIDOT_LIB_FIREBASE_AUTH_TESTING_FAKE_TOKEN_PROVIDER_H_
diff --git a/lib/firebase_auth/testing/service_account_token_provider.cc b/lib/firebase_auth/testing/service_account_token_provider.cc
deleted file mode 100644
index f421545..0000000
--- a/lib/firebase_auth/testing/service_account_token_provider.cc
+++ /dev/null
@@ -1,86 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "peridot/lib/firebase_auth/testing/service_account_token_provider.h"
-
-#include <lib/fxl/logging.h>
-
-namespace service_account {
-
-namespace {
-
-fuchsia::modular::auth::Status ConvertStatus(
-    ServiceAccountTokenMinter::Status status) {
-  switch (status) {
-    case ServiceAccountTokenMinter::Status::OK:
-      return fuchsia::modular::auth::Status::OK;
-    case ServiceAccountTokenMinter::Status::AUTH_SERVER_ERROR:
-      return fuchsia::modular::auth::Status::OAUTH_SERVER_ERROR;
-    case ServiceAccountTokenMinter::Status::BAD_RESPONSE:
-      return fuchsia::modular::auth::Status::BAD_RESPONSE;
-    case ServiceAccountTokenMinter::Status::NETWORK_ERROR:
-      return fuchsia::modular::auth::Status::NETWORK_ERROR;
-    case ServiceAccountTokenMinter::Status::INTERNAL_ERROR:
-    default:
-      return fuchsia::modular::auth::Status::INTERNAL_ERROR;
-  }
-}
-
-fuchsia::modular::auth::AuthErr GetError(fuchsia::modular::auth::Status status,
-                                         std::string message) {
-  fuchsia::modular::auth::AuthErr error;
-  error.status = status;
-  error.message = message;
-  return error;
-}
-
-}  // namespace
-
-ServiceAccountTokenProvider::ServiceAccountTokenProvider(
-    network_wrapper::NetworkWrapper* network_wrapper,
-    std::unique_ptr<Credentials> credentials, std::string user_id)
-    : service_account_token_minter_(network_wrapper, std::move(credentials),
-                                    std::move(user_id)) {}
-
-ServiceAccountTokenProvider::~ServiceAccountTokenProvider() {}
-
-void ServiceAccountTokenProvider::GetAccessToken(
-    GetAccessTokenCallback callback) {
-  FXL_NOTIMPLEMENTED();
-  callback(nullptr, GetError(fuchsia::modular::auth::Status::INTERNAL_ERROR,
-                             "Not implemented."));
-}
-
-void ServiceAccountTokenProvider::GetIdToken(GetIdTokenCallback callback) {
-  FXL_NOTIMPLEMENTED();
-  callback(nullptr, GetError(fuchsia::modular::auth::Status::INTERNAL_ERROR,
-                             "Not implemented."));
-}
-
-void ServiceAccountTokenProvider::GetFirebaseAuthToken(
-    fidl::StringPtr firebase_api_key, GetFirebaseAuthTokenCallback callback) {
-  service_account_token_minter_.GetFirebaseToken(
-      std::move(firebase_api_key),
-      [this, callback = std::move(callback)](
-          const ServiceAccountTokenMinter::GetTokenResponse& response) {
-        auto error =
-            GetError(ConvertStatus(response.status), response.error_msg);
-
-        if (response.status == ServiceAccountTokenMinter::Status::OK) {
-          auto fb_token = fuchsia::modular::auth::FirebaseToken::New();
-          fb_token->id_token = response.id_token;
-          fb_token->local_id = response.local_id;
-          fb_token->email = response.email;
-          callback(std::move(fb_token), std::move(error));
-        } else {
-          callback(nullptr, std::move(error));
-        }
-      });
-}
-
-void ServiceAccountTokenProvider::GetClientId(GetClientIdCallback callback) {
-  callback(service_account_token_minter_.GetClientId());
-}
-
-}  // namespace service_account
diff --git a/lib/firebase_auth/testing/service_account_token_provider.h b/lib/firebase_auth/testing/service_account_token_provider.h
deleted file mode 100644
index 4256cd9..0000000
--- a/lib/firebase_auth/testing/service_account_token_provider.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PERIDOT_LIB_FIREBASE_AUTH_TESTING_SERVICE_ACCOUNT_TOKEN_PROVIDER_H_
-#define PERIDOT_LIB_FIREBASE_AUTH_TESTING_SERVICE_ACCOUNT_TOKEN_PROVIDER_H_
-
-#include <map>
-
-#include <fuchsia/modular/auth/cpp/fidl.h>
-#include <lib/fxl/macros.h>
-
-#include "peridot/lib/firebase_auth/testing/service_account_token_minter.h"
-
-namespace service_account {
-
-// An implementation of |TokenProvider| that uses a Firebase service account to
-// register a new user of the given id and mint tokens for it.
-class ServiceAccountTokenProvider
-    : public fuchsia::modular::auth::TokenProvider {
- public:
-  ServiceAccountTokenProvider(network_wrapper::NetworkWrapper* network_wrapper,
-                              std::unique_ptr<Credentials> credentials,
-                              std::string user_id);
-  ~ServiceAccountTokenProvider() override;
-
-  // fuchsia::modular::auth::TokenProvider:
-  void GetAccessToken(GetAccessTokenCallback callback) override;
-  void GetIdToken(GetIdTokenCallback callback) override;
-  void GetFirebaseAuthToken(fidl::StringPtr firebase_api_key,
-                            GetFirebaseAuthTokenCallback callback) override;
-  void GetClientId(GetClientIdCallback callback) override;
-
- private:
-  ServiceAccountTokenMinter service_account_token_minter_;
-
-  FXL_DISALLOW_COPY_AND_ASSIGN(ServiceAccountTokenProvider);
-};
-
-};  // namespace service_account
-
-#endif  // PERIDOT_LIB_FIREBASE_AUTH_TESTING_SERVICE_ACCOUNT_TOKEN_PROVIDER_H_
diff --git a/lib/firebase_auth/testing/service_account_token_provider_unittest.cc b/lib/firebase_auth/testing/service_account_token_provider_unittest.cc
deleted file mode 100644
index e03b960..0000000
--- a/lib/firebase_auth/testing/service_account_token_provider_unittest.cc
+++ /dev/null
@@ -1,145 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "peridot/lib/firebase_auth/testing/service_account_token_provider.h"
-
-#include <lib/callback/capture.h>
-#include <lib/callback/set_when_called.h>
-#include <lib/fsl/vmo/strings.h>
-#include <lib/fxl/files/file.h>
-#include <lib/fxl/logging.h>
-#include <lib/fxl/strings/string_number_conversions.h>
-#include <lib/gtest/test_loop_fixture.h>
-#include <lib/network_wrapper/fake_network_wrapper.h>
-#include <rapidjson/stringbuffer.h>
-#include <rapidjson/writer.h>
-
-#include "peridot/lib/firebase_auth/testing/service_account_test_constants.h"
-#include "peridot/lib/firebase_auth/testing/service_account_test_util.h"
-
-namespace service_account {
-namespace {
-namespace http = ::fuchsia::net::oldhttp;
-
-class ServiceAccountTokenProviderTest : public gtest::TestLoopFixture {
- public:
-  ServiceAccountTokenProviderTest()
-      : network_wrapper_(dispatcher()),
-        token_provider_(&network_wrapper_,
-                        Credentials::Parse(kTestServiceAccountConfig),
-                        "user_id") {}
-
- protected:
-  bool GetToken(std::string api_key,
-                fuchsia::modular::auth::FirebaseTokenPtr* token,
-                fuchsia::modular::auth::AuthErr* error) {
-    bool called;
-    token_provider_.GetFirebaseAuthToken(
-        api_key,
-        callback::Capture(callback::SetWhenCalled(&called), token, error));
-    RunLoopUntilIdle();
-    return called;
-  }
-
-  network_wrapper::FakeNetworkWrapper network_wrapper_;
-  ServiceAccountTokenProvider token_provider_;
-};
-
-TEST_F(ServiceAccountTokenProviderTest, GetToken) {
-  network_wrapper_.SetResponse(GetResponseForTest(
-      nullptr, 200, GetSuccessResponseBodyForTest("token", 3600)));
-
-  fuchsia::modular::auth::FirebaseTokenPtr token;
-  fuchsia::modular::auth::AuthErr error;
-  ASSERT_TRUE(GetToken("api_key", &token, &error));
-  ASSERT_EQ(fuchsia::modular::auth::Status::OK, error.status) << error.message;
-  ASSERT_EQ("token", token->id_token);
-}
-
-TEST_F(ServiceAccountTokenProviderTest, GetTokenFromCache) {
-  network_wrapper_.SetResponse(GetResponseForTest(
-      nullptr, 200, GetSuccessResponseBodyForTest("token", 3600)));
-
-  fuchsia::modular::auth::FirebaseTokenPtr token;
-  fuchsia::modular::auth::AuthErr error;
-
-  ASSERT_TRUE(GetToken("api_key", &token, &error));
-  EXPECT_EQ(fuchsia::modular::auth::Status::OK, error.status) << error.message;
-  EXPECT_EQ("token", token->id_token);
-  EXPECT_TRUE(network_wrapper_.GetRequest());
-
-  network_wrapper_.ResetRequest();
-  network_wrapper_.SetResponse(GetResponseForTest(
-      nullptr, 200, GetSuccessResponseBodyForTest("token2", 3600)));
-
-  ASSERT_TRUE(GetToken("api_key", &token, &error));
-  EXPECT_EQ(fuchsia::modular::auth::Status::OK, error.status) << error.message;
-  EXPECT_EQ("token", token->id_token);
-  EXPECT_FALSE(network_wrapper_.GetRequest());
-}
-
-TEST_F(ServiceAccountTokenProviderTest, GetTokenNoCacheCache) {
-  network_wrapper_.SetResponse(GetResponseForTest(
-      nullptr, 200, GetSuccessResponseBodyForTest("token", 0)));
-
-  fuchsia::modular::auth::FirebaseTokenPtr token;
-  fuchsia::modular::auth::AuthErr error;
-
-  ASSERT_TRUE(GetToken("api_key", &token, &error));
-  EXPECT_EQ(fuchsia::modular::auth::Status::OK, error.status) << error.message;
-  EXPECT_EQ("token", token->id_token);
-  EXPECT_TRUE(network_wrapper_.GetRequest());
-
-  network_wrapper_.SetResponse(GetResponseForTest(
-      nullptr, 200, GetSuccessResponseBodyForTest("token2", 0)));
-
-  ASSERT_TRUE(GetToken("api_key", &token, &error));
-  EXPECT_EQ(fuchsia::modular::auth::Status::OK, error.status) << error.message;
-  EXPECT_EQ("token2", token->id_token);
-  EXPECT_TRUE(network_wrapper_.GetRequest());
-}
-
-TEST_F(ServiceAccountTokenProviderTest, NetworkError) {
-  auto network_error = http::HttpError::New();
-  network_error->description = "Error";
-
-  network_wrapper_.SetResponse(
-      GetResponseForTest(std::move(network_error), 0, ""));
-
-  fuchsia::modular::auth::FirebaseTokenPtr token;
-  fuchsia::modular::auth::AuthErr error;
-
-  ASSERT_TRUE(GetToken("api_key", &token, &error));
-  EXPECT_EQ(fuchsia::modular::auth::Status::NETWORK_ERROR, error.status);
-  EXPECT_FALSE(token);
-  EXPECT_TRUE(network_wrapper_.GetRequest());
-}
-
-TEST_F(ServiceAccountTokenProviderTest, AuthenticationError) {
-  network_wrapper_.SetResponse(
-      GetResponseForTest(nullptr, 401, "Unauthorized"));
-
-  fuchsia::modular::auth::FirebaseTokenPtr token;
-  fuchsia::modular::auth::AuthErr error;
-
-  ASSERT_TRUE(GetToken("api_key", &token, &error));
-  EXPECT_EQ(fuchsia::modular::auth::Status::OAUTH_SERVER_ERROR, error.status);
-  EXPECT_FALSE(token);
-  EXPECT_TRUE(network_wrapper_.GetRequest());
-}
-
-TEST_F(ServiceAccountTokenProviderTest, ResponseFormatError) {
-  network_wrapper_.SetResponse(GetResponseForTest(nullptr, 200, ""));
-
-  fuchsia::modular::auth::FirebaseTokenPtr token;
-  fuchsia::modular::auth::AuthErr error;
-
-  ASSERT_TRUE(GetToken("api_key", &token, &error));
-  EXPECT_EQ(fuchsia::modular::auth::Status::BAD_RESPONSE, error.status);
-  EXPECT_FALSE(token);
-  EXPECT_TRUE(network_wrapper_.GetRequest());
-}
-
-}  // namespace
-}  // namespace service_account
diff --git a/lib/firebase_auth/testing/test_token_provider.cc b/lib/firebase_auth/testing/test_token_provider.cc
deleted file mode 100644
index 59a1205..0000000
--- a/lib/firebase_auth/testing/test_token_provider.cc
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "peridot/lib/firebase_auth/testing/test_token_provider.h"
-
-#include <lib/async/cpp/task.h>
-#include <lib/fidl/cpp/clone.h>
-#include <lib/fidl/cpp/optional.h>
-#include <lib/fxl/logging.h>
-
-namespace firebase_auth {
-TestTokenProvider::TestTokenProvider(async_dispatcher_t* dispatcher)
-    : dispatcher_(dispatcher) {
-  error_to_return_.status = fuchsia::modular::auth::Status::OK;
-  error_to_return_.message = "";
-}
-
-TestTokenProvider::~TestTokenProvider() {}
-
-void TestTokenProvider::GetAccessToken(GetAccessTokenCallback /*callback*/) {
-  FXL_NOTIMPLEMENTED();
-}
-
-void TestTokenProvider::GetIdToken(GetIdTokenCallback /*callback*/) {
-  FXL_NOTIMPLEMENTED();
-}
-
-void TestTokenProvider::GetFirebaseAuthToken(
-    fidl::StringPtr /*firebase_api_key*/,
-    GetFirebaseAuthTokenCallback callback) {
-  fuchsia::modular::auth::FirebaseTokenPtr token_to_return_copy;
-  fidl::Clone(token_to_return_, &token_to_return_copy);
-  fuchsia::modular::auth::AuthErr error_to_return_copy;
-  fidl::Clone(error_to_return_, &error_to_return_copy);
-  async::PostTask(
-      dispatcher_, [token_to_return = std::move(token_to_return_copy),
-                    error_to_return = std::move(error_to_return_copy),
-                    callback = std::move(callback)]() mutable {
-        callback(std::move(token_to_return), std::move(error_to_return));
-      });
-}
-
-void TestTokenProvider::GetClientId(GetClientIdCallback /*callback*/) {
-  FXL_NOTIMPLEMENTED();
-}
-
-void TestTokenProvider::Set(std::string id_token, std::string local_id,
-                            std::string email) {
-  token_to_return_ = fuchsia::modular::auth::FirebaseToken::New();
-  token_to_return_->id_token = id_token;
-  token_to_return_->local_id = local_id;
-  token_to_return_->email = email;
-  error_to_return_.status = fuchsia::modular::auth::Status::OK;
-  error_to_return_.message = "";
-}
-
-void TestTokenProvider::SetError(fuchsia::modular::auth::Status error) {
-  FXL_CHECK(error != fuchsia::modular::auth::Status::OK);
-  token_to_return_ = nullptr;
-  error_to_return_.status = error;
-}
-}  // namespace firebase_auth
diff --git a/lib/firebase_auth/testing/test_token_provider.h b/lib/firebase_auth/testing/test_token_provider.h
deleted file mode 100644
index e3bc8f3..0000000
--- a/lib/firebase_auth/testing/test_token_provider.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PERIDOT_LIB_FIREBASE_AUTH_TESTING_TEST_TOKEN_PROVIDER_H_
-#define PERIDOT_LIB_FIREBASE_AUTH_TESTING_TEST_TOKEN_PROVIDER_H_
-
-#include <string>
-
-#include <fuchsia/modular/auth/cpp/fidl.h>
-#include <lib/async/dispatcher.h>
-#include <lib/fxl/functional/make_copyable.h>
-#include <lib/fxl/memory/ref_ptr.h>
-
-namespace firebase_auth {
-
-class TestTokenProvider : public fuchsia::modular::auth::TokenProvider {
- public:
-  explicit TestTokenProvider(async_dispatcher_t* dispatcher);
-
-  ~TestTokenProvider() override;
-
-  // fuchsia::modular::auth::TokenProvider:
-  void GetAccessToken(GetAccessTokenCallback callback) override;
-
-  void GetIdToken(GetIdTokenCallback callback) override;
-
-  void GetFirebaseAuthToken(fidl::StringPtr firebase_api_key,
-                            GetFirebaseAuthTokenCallback callback) override;
-
-  void GetClientId(GetClientIdCallback /*callback*/) override;
-
-  // Sets the token to return with the provided parameters, and status to OK.
-  void Set(std::string id_token, std::string local_id, std::string email);
-
-  // Sets the token to return to null, and status to |error|.
-  // |error| must not be OK.
-  void SetError(fuchsia::modular::auth::Status error);
-
- private:
-  async_dispatcher_t* const dispatcher_;
-  fuchsia::modular::auth::FirebaseTokenPtr token_to_return_;
-  fuchsia::modular::auth::AuthErr error_to_return_;
-
-  FXL_DISALLOW_COPY_AND_ASSIGN(TestTokenProvider);
-};
-
-}  // namespace firebase_auth
-
-#endif  // PERIDOT_LIB_FIREBASE_AUTH_TESTING_TEST_TOKEN_PROVIDER_H_
diff --git a/public/fidl/fuchsia.modular.auth/BUILD.gn b/public/fidl/fuchsia.modular.auth/BUILD.gn
index e75d35f..f5bbc15 100644
--- a/public/fidl/fuchsia.modular.auth/BUILD.gn
+++ b/public/fidl/fuchsia.modular.auth/BUILD.gn
@@ -4,8 +4,6 @@
 
 import("//build/fidl/fidl.gni")
 
-# TODO(alhaad/ukode): Move token_provider.fidl into a separate rule since
-# third-party components should only depend on it.
 # TODO(alhaad/ukode): Also move these services to a separate repository.
 fidl("fuchsia.modular.auth") {
   sdk_category = "partner"
@@ -13,7 +11,6 @@
   sources = [
     "account/account.fidl",
     "account_provider.fidl",
-    "token_provider.fidl",
   ]
 
   deps = [
diff --git a/public/fidl/fuchsia.modular.auth/account_provider.fidl b/public/fidl/fuchsia.modular.auth/account_provider.fidl
index 66d682b..e32a85c 100644
--- a/public/fidl/fuchsia.modular.auth/account_provider.fidl
+++ b/public/fidl/fuchsia.modular.auth/account_provider.fidl
@@ -6,18 +6,48 @@
 
 using fuchsia.ui.viewsv1token;
 
+// Authentication errors returned by AccountProvider. It contains error status
+// code along with a detailed error message.
+struct AuthErr {
+    Status status;
+    string message;
+};
+
+// Specifies the success/failure status.
+enum Status {
+    // Success
+    OK = 0;
+    // A problem with client configuration such as invalid_client, missing params
+    // etc. This should happen only in development not at run-time, unless
+    // user/developer changes any of this config. No retry is required.
+    BAD_REQUEST = 1;
+    // Unable to parse the server side response. Retry is optional, this error
+    // should be extremely rare.
+    BAD_RESPONSE = 2;
+    // Server is reachable and propagated an error returned by OAuth Server
+    // backends.  That kind of error cannot be fixed on retries, and has some
+    // root cause that needs to be addressed either in the client's configuration
+    // or because the user explicitly revoked access to the client app.  For
+    // instance: invalid_token, expired_token, invalid_client_id, invalid_user,
+    // invalid_args, etc.
+    OAUTH_SERVER_ERROR = 3;
+    // User cancelled the flow, no need to retry.
+    USER_CANCELLED = 4;
+    // Network error, eg. unreachable. This may be temporary, a retry is
+    // recommended.
+    NETWORK_ERROR = 5;
+    // Internal error. Retry is optional, this error should be rare.
+    INTERNAL_ERROR = 6;
+};
+
 // An interface that allows the Framework to talk to the token manager service
-// to add new accounts or be able to get a |TokenProviderFactory| that can be
-// used to provide specialized instances of |TokenProvider| to third party
-// agents.
+// to add new accounts and be able to mint the corresponding |TokenManager|
+// specialized instances for thid party agents and first party ledger client.
 //
-// This is only meant to be used by the Framework.
+// This is only meant to be used by the Framework and will be replaced with
+// |AccountManager| in the near future.
 [Discoverable]
 interface AccountProvider {
-    // Called by the Framework once, right after starting up a token manager
-    // application.
-    1: Initialize(AccountProviderContext account_provider_context);
-
     // Adds a new user account. This involves talking to the identity provider and
     // fetching profile attributes.
     2: AddAccount(IdentityProvider identity_provider)
@@ -39,38 +69,8 @@
     // device.
     3: RemoveAccount(Account account, bool revoke_all) -> (AuthErr status);
 
-    // Get a |TokenProviderFactory| associated with an |account_id|. It is used by
-    // the Framework to provide instances of |TokenProvider| to third party
-    // Agents.
-    4: GetTokenProviderFactory(string account_id,
-                               request<TokenProviderFactory> request);
-
     // This signals |AccountProvider| to teardown itself. After the
     // AccountProvider responds by closing its handle, the caller may terminate
     // the |AccountProvider| application if it hasn't already exited.
     5: Terminate();
 };
-
-interface TokenProviderFactory {
-    1: GetTokenProvider(string application_url, request<TokenProvider> request);
-};
-
-// Implemented by basemgr and provided to AccountProvider.Initialize().
-interface AccountProviderContext {
-    // Used by the token mangager application to request the Framework to display
-    // a view to the user.
-    1: GetAuthenticationContext(string account_id, request<AuthenticationContext> request);
-};
-
-// This interface is implemented by base shell. It is used to notify the
-// base shell that a view for login needs to be started or stopped. The base
-// shell can close this connection if it wants to cancel the current
-// authentication flow.
-interface AuthenticationContext {
-    // Requests base shell to display |view_owner| for authentication. No other
-    // call to StartOverlay() must be made until StopOverlay() has been called.
-    1: StartOverlay(fuchsia.ui.viewsv1token.ViewOwner view_owner);
-
-    // Requests base shell to stop displaying the auth view.
-    2: StopOverlay();
-};
diff --git a/public/fidl/fuchsia.modular.auth/token_provider.fidl b/public/fidl/fuchsia.modular.auth/token_provider.fidl
deleted file mode 100644
index 6e54207..0000000
--- a/public/fidl/fuchsia.modular.auth/token_provider.fidl
+++ /dev/null
@@ -1,86 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-library fuchsia.modular.auth;
-
-// This interface provides tokens to Agents for their current user. This service
-// can be obtained by agents via AgentContext.GetTokenProvider().
-[Discoverable]
-interface TokenProvider {
-    // Gets the access token (with pre-defined scopes) for this user. Access token
-    // is returned from cache if not expired, otherwise refreshed from the server.
-    //
-    // Empty response is returned if running in incognito mode.
-    1: GetAccessToken() -> (string? access_token, AuthErr auth_err);
-
-    // Gets the Identity token (with pre-defined scopes) for this user. Identity
-    // token is returned from cache if not expired, otherwise refreshed from the
-    // server.
-    //
-    // Empty response is returned if running in incognito mode.
-    2: GetIdToken() -> (string? id_token, AuthErr auth_err);
-
-    // Gets the |FirebaseToken| for this user for the specified firebase api key.
-    // This api invokes firebase auth's VerifyAssertion endpoint that takes an
-    // OAuth IdToken as the input. Firebase auth token is returned from cache if
-    // not expired, otherwise refreshed from the server.
-    //
-    // Empty response is returned if running in incognito mode.
-    3: GetFirebaseAuthToken(string firebase_api_key)
-           -> (FirebaseToken? firebase_token, AuthErr auth_err);
-
-    // Returns the client id used to fetch the above tokens.
-    4: GetClientId() -> (string? client_id);
-};
-
-// Authentication errors returned by Token Manager. It contains error status
-// code along with a detailed error message.
-struct AuthErr {
-    Status status;
-    string message;
-};
-
-// Specifies the success/failure status.
-enum Status {
-    // Success
-    OK = 0;
-    // A problem with client configuration such as invalid_client, missing params
-    // etc. This should happen only in development not at run-time, unless
-    // user/developer changes any of this config. No retry is required.
-    BAD_REQUEST = 1;
-    // Unable to parse the server side response. Retry is optional, this error
-    // should be extremely rare.
-    BAD_RESPONSE = 2;
-    // Server is reachable and propagated an error returned by OAuth Server
-    // backends.  That kind of error cannot be fixed on retries, and has some
-    // root cause that needs to be addressed either in the client's configuration
-    // or because the user explicitly revoked access to the client app.  For
-    // instance: invalid_token, expired_token, invalid_client_id, invalid_user,
-    // invalid_args, etc.
-    OAUTH_SERVER_ERROR = 3;
-    // User cancelled the flow, no need to retry.
-    USER_CANCELLED = 4;
-    // Network error, eg. unreachable. This may be temporary, a retry is
-    // recommended.
-    NETWORK_ERROR = 5;
-    // Internal error. Retry is optional, this error should be rare.
-    INTERNAL_ERROR = 6;
-};
-
-// Stores attributes related to a firebase auth token for a given firebase api
-// key. These tokens are obtained by agents using
-// TokenProvider.GetFirebaseAuthToken().
-//
-// These tokens are minted by the Firebase Auth servers and are meant to be used
-// for authorizing users into Firebase services such as DB and storage.
-struct FirebaseToken {
-    // The auth token in firebase database and storage requests.
-    string id_token;
-
-    // Uniquely identifies the user.
-    string local_id;
-
-    // User's email address as provided by the Identity Provider.
-    string email;
-};
diff --git a/public/fidl/fuchsia.modular.internal/sessionmgr.fidl b/public/fidl/fuchsia.modular.internal/sessionmgr.fidl
index 5414a63..5a9f440 100644
--- a/public/fidl/fuchsia.modular.internal/sessionmgr.fidl
+++ b/public/fidl/fuchsia.modular.internal/sessionmgr.fidl
@@ -22,7 +22,6 @@
     1: Initialize(fuchsia.modular.auth.Account? account,
                   fuchsia.modular.AppConfig session_shell,
                   fuchsia.modular.AppConfig story_shell,
-                  fuchsia.modular.auth.TokenProviderFactory? token_provider_factory,
                   fuchsia.auth.TokenManager? ledger_token_manager,
                   fuchsia.auth.TokenManager? agent_token_manager,
                   UserContext user_context,
diff --git a/public/fidl/fuchsia.modular/agent/agent_context.fidl b/public/fidl/fuchsia.modular/agent/agent_context.fidl
index 77330b0..c0f0b6d 100644
--- a/public/fidl/fuchsia.modular/agent/agent_context.fidl
+++ b/public/fidl/fuchsia.modular/agent/agent_context.fidl
@@ -5,7 +5,6 @@
 library fuchsia.modular;
 
 using fuchsia.auth;
-using fuchsia.modular.auth;
 
 /// An instance of this service is exposed to agents in their namespace.
 /// |AgentContext| allows an agent to schedule tasks which run in response to
@@ -17,10 +16,6 @@
     /// namespace/environment for Modules.
     1: GetComponentContext(request<ComponentContext> request);
 
-    /// The auth token provider this Agent may use for accessing external services.
-    /// @Deprecated
-    2: GetTokenProvider(request<fuchsia.modular.auth.TokenProvider> request);
-
     /// Connects to an EntityReferenceFactory for this Agent. Entity references
     /// obtained from this EntityReferenceFactory will be resolved back to this
     /// Agent.
diff --git a/public/fidl/fuchsia.modular/basemgr/base_shell.fidl b/public/fidl/fuchsia.modular/basemgr/base_shell.fidl
index baa12b6..ff27c45 100644
--- a/public/fidl/fuchsia.modular/basemgr/base_shell.fidl
+++ b/public/fidl/fuchsia.modular/basemgr/base_shell.fidl
@@ -5,7 +5,6 @@
 library fuchsia.modular;
 
 using fuchsia.auth;
-using fuchsia.modular.auth;
 using fuchsia.ui.policy;
 
 // This interface is implemented by a base shell. Dependencies and parameters
@@ -25,17 +24,6 @@
                   BaseShellParams base_shell_params);
 
     // This method may be invoked by the basemgr to request an
-    // AuthenticationContext associated with |username|. |request| will then be
-    // used to request the base shell to show login screen during a
-    // UserProvider.AddUser() or if a token needs to be refreshed.
-    //
-    // A |request| is tied to a |username| because the basemgr allows
-    // multiple users to be logged in at the same time.
-    // Deprecated
-    2: GetAuthenticationContext(string username,
-                                request<fuchsia.modular.auth.AuthenticationContext> request);
-
-    // This method may be invoked by the basemgr to request an
     // AuthenticationUIContext. |request| will then be used to request the base
     // shell to show login screen during a UserProvider.AddUser() or if a token
     // needs to be refreshed.