Q:

Is there a way to load admin session by email in magento 2?

I found some similar questions like how to load customer by email in magento2? but I need to load admin user, not customer. Also I unsuccessfully tried to find information in the official docs, but...
EDIT:
Sorry, I a little bit rephrase the question:
How can I load admin session in admin place by email?

A:

So, I've still use deprecated ->load() method and here is my working code sample:
public function __construct(
  Magento\User\Model\UserFactory $userFactory,
  Magento\Backend\Model\Auth\Session $session,
  \Magento\Security\Model\AdminSessionsManager $adminSessionsManager,
  \Magento\Framework\Stdlib\DateTime\DateTime $dateTime
)
{
  $this->userFactory = $userFactory;
  $this->session = $session;
  $this->adminSessionsManager = $adminSessionsManager;
  $this->dateTime = $dateTime;
}
//...
public function my_method()
{
  $user_email = 'sample@example.com';
  $user = $this->userFactory->create()->load($user_email, 'email');
  if ($user->getId()) {
    $this->session->setUser($user);
    $this->adminSessionsManager->getCurrentSession()->load($this->session->getSessionId());
    $sessionInfo = $this->adminSessionsManager->getCurrentSession();
    $sessionInfo->setUpdatedAt($this->dateTime->gmtTimestamp());
    $sessionInfo->setStatus($sessionInfo::LOGGED_IN);
    $this->adminSessionsManager->processLogin();
    $this->eventManager->dispatch(
      'backend_auth_user_login_success',
      ['user' => $user]
    );
  } 
  else {
    throw new AuthenticationException(__("User does not exist."));
  }
}

But I think this looks a bit ugly. If anyone knows a more elegant solution - welcome! :)

