| Предыдущий | Следующий |
| NTE_USER_CANCELLED | NTE_NOT_ACTIVE_CONSOLE |
NTE_PASSWORD_CHANGE_REQUIRED
Этот HRESULT указывает на сбой на этапе просроченных учётных данных поставщика. Предоставленные учётные данные ключа или токена распознаны, но их состояние требует замены до продолжения защищённых операций. Диагностируйте это в первом компоненте, вернувшем значение, а не в последнем слое интерфейса: последующая очистка и резервные попытки могут породить другие вторичные ошибки.
Читайте результат на правильном уровне
При этом результате защищённый поставщик может различать неправильный секрет, просроченный секрет, который необходимо сменить, и защитное состояние, где новые попытки игнорируются. Сохраняйте время попыток и состояние поставщика, иначе приложение может свести все случаи к общей ошибке PIN или пароля.
Сформируйте запись инцидента
- Идентификаторы поставщика и устройства, тип учётных данных, число попыток, состояние блокировки или ограничения частоты и временные отметки
Используйте процедуру управления поставщиком или токеном для смены учётных данных в соответствии с его политикой.
Для этого результата это позволяет отличить отклонение, истечение срока и игнорирование попыток. - Был ли секрет отклонён, принят, но просрочен, или вообще не проверялся
Определите, к чему относится состояние: PIN смарт-карты, вход HSM, пароль ключа или другие учётные данные поставщика.
Это не позволяет автоматическим повторам усугубить блокировку или ограничение частоты при этом результате. - Поддерживаемая процедура смены пароля или разблокировки для конкретного поставщика
После смены аннулируйте кэшированные учётные данные и один раз повторите операцию.
При этом результате это связывает восстановление с поддерживаемой поставщиком процедурой работы с учётными данными.
Что включать в пакет для эскалации
Сопоставьте последнюю успешную операцию с установкой или обновлением поставщика, созданием или обновлением ключа, изменениями профиля или сеанса, подключением и отключением устройства, обновлением политик и первым неудачным вызовом. Порядок важен: ошибка сразу после миграции ключа указывает на другую границу, чем сбой после смены учётной записи службы.
- Для этого результата подготовьте минимальный пример с именем API, поставщика, ключа или контейнера, флагами и размерами нечувствительных входных данных.
- Для этого пути сохраните события поставщика, устройства, профиля и ОС за период от последнего успеха до первого сбоя.
- Для этого пути сохраните заведомо исправный контрольный результат с той же идентичностью, архитектурой и выбором поставщика.
Используйте две оси сравнения
При этом результате остановите автоматические повторы. После периода ожидания или административного восстановления, определённого поставщиком, выполните одну помеченную попытку с заведомо действительными тестовыми учётными данными на непроизводственном объекте. Для истёкшего секрета используйте поддерживаемую процедуру смены, а не повторяйте старое значение.
- Сохраните исходный ввод, идентичность, выбор поставщика или протокола и первое возвращённое значение для этого результата.
- Используйте один заведомо исправный контроль, меняющий только подозреваемую часть пути просроченных учётных данных.
- Где это безопасно, выполните обратное сравнение с заведомо исправным вводом на том же сбойном слое.
- Фиксируйте место первого расхождения в пути просроченных учётных данных, а не оценивайте только итоговое сообщение приложения.
Не смешивайте с соседним кодом
NTE_INCORRECT_PASSWORD означает, что текущее значение неверно; этот код — что жизненный цикл учётных данных требует обновления. Не делайте вывод о неверности секрета, если поставщик сообщил, что попытка была проигнорирована, и не сбрасывайте токен до фиксации данных о блокировке.
Для просроченных учётных данных поставщика также сохраняйте исходное числовое значение: соседние константы могут требовать существенно разного восстановления, даже если приложение показывает их все как ошибку аутентификации, сертификата или безопасности.
Проверка после изменения
Для этого результата поставщик должен снова нормально проверять учётные данные, применять свою политику повторов и выполнять защищённую операцию после необходимой смены или процедуры восстановления. Сохраните регрессионный тест с нечувствительными идентификаторами и ожидаемыми результатами, включая один отрицательный контроль, который должен по-прежнему завершаться ошибкой.
Технические ссылки
Эти источники определяют HRESULT и соответствующий интерфейс, протокол или формат данных просроченных учётных данных поставщика.
- Открытые спецификации Microsoft: значения HRESULT.
- Microsoft: CNG Key Storage Providers.
- Microsoft: функции хранилища ключей CNG.
Нужно найти другой код? Найти другой код состояния или ошибки.
