Ошибка авторизации, попробуйте перезапустить программу, ошибка подтверждения токена

Обновлено: 04.07.2024

Ошибки "Ошибка аутентификации", возникающие при использовании правильных учетных данных, обычно связаны с проблемой конфигурации в Active Directory.

Чтобы устранить эту ошибку, попробуйте сделать следующее:

Подтвердите, что код регистрации каталога в клиенте соответствует значению, связанному с WorkSpace

  1. Откройте клиент Amazon WorkSpaces. В окне входа выберите «Настройки», «Управление информацией для входа». Запишите регистрационный код.
    Примечание. Если у вас несколько регистрационных кодов, закройте всплывающее окно и выберите «Изменить регистрационный код».
  2. Подтвердите, что регистрационный код соответствует значению, связанному с WorkSpace, в консоли Amazon WorkSpaces или в приветственном письме.
    Примечание. Чтобы найти регистрационный код из консоли, откройте консоль Amazon WorkSpaces и просмотрите список рабочих столов WorkSpaces в выбранном регионе. Щелкните стрелку рядом с идентификатором WorkSpace, чтобы отобразить сведения о WorkSpace, а затем запишите код регистрации.

Убедитесь, что пользовательский объект Active Directory пользователя соответствует предварительным требованиям

  • Необходимо использовать предварительную аутентификацию Kerberos.
  • Очистить Пользователь должен сменить пароль при следующем входе в систему.
  • Выполните следующую команду, чтобы убедиться, что срок действия пароля пользователя не истек, заменив имя пользователя своим значением:

Если вы используете Simple AD или AWS Directory Service для Microsoft Active Directory, выберите Забыли пароль? из клиента Amazon WorkSpaces, чтобы сбросить пароль.

Подтвердите, что атрибут sAMAccountName объекта пользователя не был изменен

Amazon WorkSpaces не поддерживает изменения атрибута имени пользователя Active Directory. Аутентификация завершается ошибкой, если атрибуты имени пользователя в Amazon WorkSpaces и Active Directory не совпадают.

Если вы изменили имя sAMAccountName, вы можете просто изменить его обратно, после чего WorkSpace возобновит работу правильно.

Если вам необходимо переименовать пользователя, выполните следующие действия:

Предупреждение. Удаление WorkSpace — это необратимое действие. Данные пользователя WorkSpace не сохраняются и уничтожаются.

  1. Выполняйте резервное копирование файлов с пользовательского тома во внешнее хранилище, например Amazon WorkDocs или Amazon FSx. .
  2. Измените атрибут. для пользователя.

Убедитесь, что атрибут имени пользователя не содержит недопустимых символов

Для приложений Amazon Web Services (AWS), включая Amazon WorkSpaces, существуют некоторые ограничения на символы в атрибутах имени пользователя. См. статью Общие сведения об ограничениях имени пользователя для приложений AWS, чтобы убедиться, что в атрибуте имени пользователя используются только допустимые символы.

Если атрибут имени пользователя Amazon WorkSpaces содержит недопустимые символы, выполните следующие действия:

Предупреждение. Удаление WorkSpace — это необратимое действие. Данные пользователя WorkSpace не сохраняются и уничтожаются.

  1. Выполняйте резервное копирование файлов с пользовательского тома во внешнее хранилище, например Amazon WorkDocs или Amazon FSx. из вашего аккаунта AWS.
  2. Переименуйте атрибут имени пользователя в вашем домене, используя допустимые символы. Используйте инструмент «Пользователи и компьютеры Active Directory», чтобы найти пользователя. Откройте контекстное меню (щелкните правой кнопкой мыши) для пользователя и выберите «Свойства». На вкладке «Учетная запись» обязательно переименуйте как имя для входа пользователя, так и имя для входа пользователя (до Windows 2000). с новым атрибутом имени пользователя.

Если вы используете многофакторную аутентификацию (MFA), проверьте журналы на своих серверах RADIUS, чтобы убедиться, что трафик аутентификации получен и утвержден

  • Эта ошибка может возникнуть, если изменения сети препятствуют обмену данными решения RADIUS с контроллерами домена Amazon WorkSpaces.
  • Если вы используете коннектор AD, конечные точки коннектора должны иметь исходящий доступ к вашим контроллерам домена и серверам RADIUS. Вы можете использовать журналы потоков VPC, чтобы убедиться, что весь необходимый трафик отправлен по назначению.

Убедитесь, что разница во времени между вовлеченными сторонами не превышает 5 минут

Аутентификация очень чувствительна к разнице во времени между всеми вовлеченными сторонами. Все контроллеры домена в домене, серверы RADIUS (если они используются), экземпляр WorkSpace и сама служба должны быть синхронизированы друг с другом.

Я использую Asp.Net-Identity-2 и пытаюсь проверить код подтверждения электронной почты, используя метод, описанный ниже. Но я получаю сообщение об ошибке "Недопустимый токен".

Диспетчер пользователей моего приложения выглядит следующим образом:

Мое действие по созданию токена (и даже если я проверю токен здесь, я получу сообщение "Неверный токен"):

Мое действие по проверке токена (здесь я всегда получаю сообщение "Неверный токен" при проверке результата):

Я не знаю, что может отсутствовать или что не так.

23 ответа 23

Я столкнулся с этой проблемой и решил ее. Есть несколько возможных причин.

1.Проблемы с кодировкой URL (если проблема возникает "случайно")

Если это происходит случайным образом, возможно, у вас проблемы с кодировкой URL. По неизвестным причинам токен не предназначен для URL-безопасности, что означает, что он может содержать недопустимые символы при передаче по URL-адресу (например, при отправке по электронной почте).

Как сказал oão Pereira в своих комментариях, UrlDecode не требуется (или иногда не требуется?). Попробуйте оба, пожалуйста. Спасибо.

2. Несовпадающие методы (электронная почта и токены пароля)

Токен, созданный с помощью email-token-provide, не может быть подтвержден поставщиком токена сброса-пароля.

Но мы увидим первопричину того, почему это происходит.

3. Различные экземпляры поставщиков токенов

Даже если вы используете:

ошибка все еще может произойти.

Мой старый код показывает почему:

Обратите внимание, что в этом коде каждый раз, когда создается UserManager (или new -ed), также создается новый dataProtectionProvider. Итак, когда пользователь получает электронное письмо и нажимает на ссылку:

Контроллер учетных записей больше не является старым, равно как и _userManager и его поставщик токенов. Таким образом, новый поставщик токенов потерпит неудачу, потому что в его памяти нет этого токена.

Поэтому нам нужно использовать один экземпляр поставщика токенов. Вот мой новый код, и он отлично работает:

Это нельзя назвать элегантным решением, но оно попало в корень и решило мою проблему.

Только одно примечание к этому замечательному ответу! :) Токен ДОЛЖЕН быть UrlEncoded , но он не должен быть UrlDecoded , по крайней мере, в MVC при получении в качестве параметра метода, поскольку он автоматически декодируется. Если мы снова декодируем его, мы делаем токен недействительным, так как символ + заменяется пробелом.

Я исправил это снова. Проблема была вызвана отсутствием столбца SecurityStamp в таблице User. Я удалил его, но без этого столбца он не работает

Но на самом деле попытка проверить токен для электронной почты:

Это 2 разных токена.

В своем вопросе вы говорите, что пытаетесь подтвердить адрес электронной почты, но ваш код предназначен для сброса пароля. Какой из них вы делаете?

Если вам нужно подтверждение по электронной почте, сгенерируйте токен через

и подтвердите это через

Если вам нужно сбросить пароль, сгенерируйте токен следующим образом:

и подтвердите это следующим образом:

Как заставить ConfirmEmailAsync возвращать сбой вместо успеха, если этот токен уже используется один раз. Нравится, что пользователь пытается повторно перейти по ссылке со своего адреса электронной почты?

@user2904995, чтобы сделать токен недействительным, необходимо изменить поле SecurityStamp. Это приведет к аннулированию всех ранее действительных токенов, включая те, которые использовались в прошлом.

Я получал сообщение об ошибке "Неверный токен" даже с таким кодом:

В моем случае проблема заключалась в том, что я создавал пользователя вручную и добавлял его в базу данных без использования метода UserManager.Create(. ). Пользователь существовал в базе данных, но без отметки безопасности.

Интересно, что GenerateEmailConfirmationToken вернул токен, не жалуясь на отсутствие штампа безопасности, но этот токен никогда не мог быть проверен.

В моем случае пользователи были перенесены из старой базы данных, поэтому у них не было отметок безопасности. Чтобы это исправить, я выполнил это: UPDATE AspNetUsers SET SecurityStamp = NewID()

Я предлагаю использовать UPDATE AspNetUsers SET SecurityStamp = NewID() WHERE SecurityStamp is null . В моем случае SecurityStamp некоторых пользователей подходит, я предпочитаю не связываться с ними.

Одна вещь, которую следует иметь в виду, это то, что Identity, предоставленная самой себе, генерирует GUID в нижнем регистре, тогда как NewID() возвращает GUID в верхнем регистре (по крайней мере, в SSMS). Рассмотрите возможность использования LOWER(NewID())

Для меня это была проверка токена. Я вытащил пользователя своим репо вместо UserManager, поэтому с моим пользователем репо я назвал ResetPasswordAsync. В основном та же проблема

Кроме этого, я видел, что сам код дает сбой, если он не закодирован.

Недавно я начал кодировать свой код следующим образом:

И затем, когда я буду готов перечитать его:

Честно говоря, я удивлен, что он вообще не закодирован должным образом.

Его нужно кодировать только тогда, когда он используется в качестве значения строки запроса для ссылки сброса. Его можно использовать без кодирования, если вы предоставляете форму сброса пароля внутри приложения, где код передается как скрытое значение или что-то подобное.

В моем случае наше приложение AngularJS преобразовало все знаки плюса (+) в пустые места (" "), поэтому токен действительно был недействительным, когда он был передан обратно.

Чтобы решить эту проблему, в нашем методе ResetPassword в AccountController я просто добавил замену перед обновлением пароля:

Я надеюсь, что это поможет всем, кто работает с Identity в веб-API и AngularJS.

Токен по умолчанию имеет кодировку base64, что небезопасно для URL и требует кодирования URL.Вы можете переопределить или обернуть поставщика токенов и вместо этого вернуть токены в кодировке base64url, избегая специальных символов, как вы уже делали.

Я столкнулся с той же проблемой с ядром aspnet 2.2, поскольку cheny указал, что экземпляры поставщика токенов должны быть одинаковыми. это не работает для меня, потому что

Ключи безопасности можно использовать с двухэтапной аутентификацией, чтобы защитить ваш аккаунт Google от хакеров.

Важно! Если вы журналист, активист или кто-то другой, подвергающийся риску целенаправленных интернет-атак, узнайте о программе Дополнительной защиты.

Шаг 1. Получите ключи

Шаг 2. Добавьте ключ в свой аккаунт

  1. Откройте совместимый браузер, например Chrome, FireFox или Safari (13.0.4 или более поздней версии). . Возможно, вам потребуется войти в систему.

Шаг 3. Войдите с помощью своего ключа

Защитные ключи — это более безопасный второй шаг. Если у вас настроены другие дополнительные шаги, используйте ключ безопасности для входа, когда это возможно. Если ключ безопасности не работает на вашем устройстве или в браузере, вместо этого вы можете увидеть вариант входа с помощью кода или подсказки.

Совет. Каждый раз, когда вы входите в систему с нового компьютера или устройства, вас попросят ввести электронный ключ или другой второй шаг.

С помощью встроенного электронного ключа вашего телефона

Если вы еще этого не сделали, сначала добавьте встроенный электронный ключ совместимого телефона в свой аккаунт Google.

Войдите с помощью встроенного ключа телефона Android

  1. Убедитесь, что Bluetooth включен на обоих устройствах.
  2. Войти на новом устройстве:
    • На компьютере или Chromebook войдите в свой аккаунт Google с помощью поддерживаемого браузера, например Chrome.
    • На iPhone или iPad войдите в свой аккаунт Google с помощью приложения Smart Lock.
  3. Проверьте свой телефон Android на наличие уведомлений.
  4. Дважды коснитесь "Вы пытаетесь войти?" уведомление.
  5. Следуйте инструкциям, чтобы подтвердить вход в систему.

Войти с помощью встроенного ключа iPhone

  1. Убедитесь, что Bluetooth включен на обоих устройствах.
  2. Войдите в свой аккаунт Google на устройстве Chrome OS (версия 79 и выше), iOS, macOS или Windows 10.
  3. Проверьте свой iPhone на наличие уведомлений Smart Lock. Коснитесь уведомления.
  4. Чтобы подтвердить вход, нажмите "Да".

С купленным вами электронным ключом

  1. На компьютере откройте совместимый браузер, например Chrome, Firefox, Edge или Opera. . Ваше устройство обнаружит, что в вашем аккаунте есть электронный ключ.
  2. Подключите ключ к USB-порту компьютера.
  3. Если вы видите сообщение от "Сервисы Google Play", выберите "ОК". Если нет, перейдите к шагу 5.
  4. Активируйте свой ключ:
    • Если у вашего ключа есть золотой диск, коснитесь его.
    • Если у вашего ключа золотой наконечник, коснитесь его, а затем нажмите.
    • Если на вашем ключе есть кнопка, нажмите ее.
    • Если у вашего ключа нет ни одной из этих функций, возможно, вам придется удалить его и снова вставить. Этот тип ключа отключается после каждого использования.

Совет. Вы можете использовать свой ключ каждый раз при входе в систему или не использовать его на устройствах, которым вы доверяете.

Невозможно использовать электронный ключ

Если вы не можете использовать свой электронный ключ, вы можете сгенерировать защитный код для использования двухэтапной аутентификации:

  1. На другом устройстве, на котором выполнен вход в ваш аккаунт, перейдите на страницу g.co/sc.
  2. Чтобы получить защитный код, следуйте инструкциям на экране.

Утерян электронный ключ

Если электронный ключ утерян, вы можете выполнить следующие действия, чтобы вернуться в свой аккаунт и защитить его. Выберите подходящие шаги в зависимости от того, настроили ли вы еще один второй шаг, например:

  • Коды подтверждения
  • Подсказки Google
  • Резервные коды
  • Другой электронный ключ, который вы добавили в свой аккаунт.
  • Зарегистрированный компьютер, на котором вы ранее решили не запрашивать код подтверждения
  1. Войдите в свою учетную запись Google, указав свой пароль и второй шаг.
  2. Следуйте инструкциям по удалению утерянного ключа из вашей учетной записи. . Вы можете получить дополнительный ключ, который вы можете хранить в надежном месте. .

Примечание. Двухэтапная аутентификация требует дополнительного шага, чтобы подтвердить, что вы являетесь владельцем аккаунта. Из-за этой дополнительной безопасности Google может потребоваться до 3–5 рабочих дней, чтобы убедиться, что вы пытаетесь войти в систему.

При использовании службы переноса данных вы можете столкнуться со следующими кодами ошибок.

Информацию о сообщениях об ошибках, которые могут появиться при использовании службы переноса данных, см. в разделе Сообщения об ошибках службы переноса данных.

Чтобы решить эту проблему, обратитесь к документации по Exchange, чтобы исправить поврежденную папку. Затем проверьте действия, описанные в разделе Миграция из среды EWS.

Чтобы решить эту проблему, обратитесь к документации по Exchange, чтобы исправить поврежденные данные. Затем проверьте действия, описанные в разделе Миграция из среды EWS.

  • Учетная запись службы, в которой запущен пул приложений веб-служб Exchange (EWS), настроена неправильно.
  • EWS не может связаться с каталогом.
  • Доверительные отношения между лесами настроены неправильно.

Если проблема не устранена, возможно, служба переноса данных работает со скоростью, превышающей ограничения исходной системы. Чтобы решить эту проблему, отрегулируйте скорость миграции. Убедитесь, что исходный сервер может обрабатывать выбранное вами количество подключений.

Вы могли столкнуться с этой ошибкой из-за технической проблемы с миграцией данных для Exchange Online (Microsoft 365). Попробуйте выйти и перезапустить миграцию.

Выйти и перезапустить миграцию.

Не удалось открыть папку IMAP. Проверьте диапазоны IP-адресов Google для серверов исходящей почты и убедитесь, что сервер IMAP может принимать от них соединения. При необходимости см. дополнительные шаги по настройке для миграции из HCL Domino или Gmail. Затем убедитесь, что ко всем папкам в почтовом ящике затронутого исходного пользователя можно получить доступ с помощью IMAP. Чтобы убедиться в этом, используйте почтовый клиент IMAP, например Mozilla Thunderbird или Apple Mail.

Может возникнуть при переносе из Gmail или Google Workspace, когда ярлык Gmail в исходном аккаунте содержит неподдерживаемые символы Юникода, в том числе идеографические и неразрывные пробелы.

Перед переносом переименуйте все затронутые ярлыки в исходном аккаунте. После миграции вернитесь к исходному имени как в исходном, так и в целевом почтовых ящиках.

Личное пространство имен пользователя по умолчанию задано неправильно.

Чтобы проверить личное пространство имен:

  1. Войдите на свой сервер IMAP, используя набор инструментов протокола SSL, например OpenSSL.
  2. Войдите в исходный аккаунт пользователя.
  3. Введите команду пространства имен, чтобы проверить конфигурацию пространства имен.

Пример: A001 ПРОСТРАНСТВО ИМЕН

Для получения дополнительной информации см. документацию рабочей группы Internet Engineering Task Force по пространству имен IMAP4 и документацию по вашему серверу IMAP.

Эта ошибка может появиться, если:

  • Ваши учетные данные IMAP недействительны. Проверьте имя пользователя и пароль и повторите попытку.
  • Учетная запись пользователя в исходном домене заблокирована. Восстановите учетную запись пользователя и повторите попытку. Подробнее см. в разделе Восстановление заблокированного пользователя.

Если проблема не устранена, выберите вариант в зависимости от того, откуда вы выполняете миграцию:

  • Я переношу существующий аккаунт Google Workspace:
  • Убедитесь, что вы выполнили шаги по настройке существующих аккаунтов Google Workspace.
  • Если проблема не устранена или вы используете двухэтапную аутентификацию, вы можете перенести данные, как если бы вы переносили данные из Gmail.

Подробнее см. в разделе Настройка и переход с Gmail (и, при необходимости, попробуйте устранить неполадки, описанные ниже для Gmail).

  1. Убедитесь, что вы выполнили подготовительные шаги для Gmail.
  2. Если проблема не устранена, выполните действия для кода ошибки 18020.

Не удалось подключиться к Gmail по протоколу IMAP.

Для исходного аккаунта требуется более безопасная форма аутентификации, так как для него включена двухэтапная аутентификация. Чтобы выполнить миграцию с использованием более безопасной аутентификации:

    Завершите перенос.

Если вы не можете выполнить описанные выше действия, создайте пароль приложения в исходной учетной записи. Используйте его вместо обычного пароля при добавлении исходной учетной записи в службу переноса данных. См. раздел Вход с использованием паролей приложений.

Примечание. Служба переноса данных не требует отключения двухэтапной аутентификации или предоставления доступа к менее безопасным приложениям.

Мероприятия не были перенесены, поскольку участник не является посетителем или организатором мероприятия. Чтобы устранить эту проблему:

  • Проверьте файл ICS из исходного аккаунта и убедитесь, что перенесенный пользователь является участником мероприятия.
  • Проверьте, есть ли у пользователя псевдонимы на исходном сервере, которых нет в Google Workspace. Если псевдонимы отсутствуют, добавьте их в Google Workspace.

Похожие темы


Google, Google Workspace и связанные с ними знаки и логотипы являются товарными знаками Google LLC. Все остальные названия компаний и продуктов являются товарными знаками компаний, с которыми они связаны.

Читайте также: