Создание ответа на дайджест-запрос
После получения запроса от сервера клиент создает ответ на запрос Digest, вызывая функцию InitializeSecurityContext (Digest). Эта функция создает хэш-отпечаток MD5, используя сведения о запрошенном ресурсе и данные из запроса, и выводит маркер безопасности, представляющий частичный контекст безопасности. Чтобы завершить проверку подлинности, клиент должен вернуть маркер серверу, который выдал запрос.
В следующей таблице описаны параметры функцииInitializeSecurityContext (Digest) и значения, которые необходимо задать при создании ответа на запрос Digest.
Параметр | Описание |
---|---|
fContextReq |
Атрибуты контекста безопасности, запрашиваемые клиентом. Дополнительные сведения см. в разделе Digest Challenge Response Context Requirements. |
pszTargetName |
HTTP: строка, заканчивающаяся null, которая указывает целевой URL-адрес. SASL: строка, заканчивающаяся значением NULL, указывающая целевой объект DNS/SPN. |
pInput |
Буферы, содержащие сведения, необходимые поставщику дайджест-служб. Дополнительные сведения см. в разделе Входные буферы для ответа на дайджест-вызов. |
pfContextAttr |
Получает атрибуты, поддерживаемые возвращенным контекстом безопасности. Дополнительные сведения см. в разделе Digest Challenge Response Context Requirements. |
pOutput |
Адрес буфера типа SECBUFFER_TOKEN, который получает маркер безопасности для отправки обратно на сервер. |
Требования к контексту ответа на запросы digest
Требования к контексту — это флаги, определяющие:
- Работает ли Microsoft Digest как механизм SASL или протокол проверки подлинности HTTP.
- Качество защиты, поддерживаемого контекстом безопасности , совместно используемым клиентом и сервером.
По умолчанию Microsoft Digest работает как механизм SASL.
Требования к контексту указываются как флаги, передаваемые параметру fContextReq функции InitializeSecurityContext . Флаги влияют на качество защиты контекста безопасности, контролируя директиву qop в ответе на запрос.
По умолчанию директива qop имеет значение "auth". Чтобы создать ответ на запрос, который задает для параметра qop значение "auth-int", необходимо выполнить следующее:
Для дайджест-запроса должна быть задана директива qop auth-int.
Клиент должен указать один или несколько следующих флагов:
- ISC_REQ_INTEGRITY
- ISC_REQ_REPLAY_DETECT
- ISC_REQ_SEQUENCE_DETECT
Только для SASL: создайте ответ на запрос с директивой qop auth-conf, указав флаг ISC_REQ_CONFIDENTIALITY. Так как этот флаг недопустим для проверки подлинности HTTP, его нельзя использовать с флагом ISC_REQ_HTTP.
Проверка качества защиты
Клиент должен проверить флаги атрибутов контекста безопасности, возвращаемые в параметре pfContextAttr функции InitializeSecurityContext. Клиент должен отправлять ответ на запрос на сервер только в том случае, если качество защиты, указанное флагами, достаточно для его целей. Соответствующие флаги могут быть любым сочетанием следующих:
- ISC_RET_INTEGRITY
- ISC_RET_REPLAY_DETECT
- ISC_RET_SEQUENCE_DETECT
- ISC_RET_CONFIDENTIALITY (только контексты SASL)
Дополнительные сведения о директиве qop см. в разделе Качество защиты и шифров.
Дополнительные сведения о директивах ответа на запрос см. в разделе Содержимое ответа на дайджест-вызов.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по