docs: def do_authenticate_account(self, authc_token):
          """
          Returns an account object only when the current token authenticates AND
          the authentication process is complete, raising otherwise
  
          :returns:  Account
          :raises AdditionalAuthenticationRequired: when additional tokens are required,
                                                    passing the account object
          """
          try:
              realms = self.token_realm_resolver[authc_token.__class__]
          except KeyError:
              raise KeyError('Unsupported Token Type Provided: ', authc_token.__class__.__name__)
  
          if (len(self.realms) == 1):
              account = self.authenticate_single_realm_account(realms[0], authc_token)
          else:
              account = self.authenticate_multi_realm_account(self.realms, authc_token)
  
          cred_type = authc_token.token_info['cred_type']
          attempts = account['authc_info'][cred_type].get('failed_attempts', [])
          self.validate_locked(authc_token, attempts)
  
          # TODO:  refactor this to something less rigid as it is unreliable:
          if len(account['authc_info']) > authc_token.token_info['tier']:
              if self.mfa_dispatcher:
                  realm = self.token_realm_resolver[TOTPToken][0]  # s/b only one
                  totp_token = realm.generate_totp_token(account)
                  mfa_info = account['authc_info']['totp_key']['2fa_info']
                  self.mfa_dispatcher.dispatch(authc_token.identifier,
                                               mfa_info,
                                               totp_token)
              raise AdditionalAuthenticationRequired(account['account_id'])
          return account