Создание ответа на вызов дайджеста
После получения запроса с сервера клиент создает ответ на запрос дайджеста, вызвав функцию InitializeSecurityContext (Digest). Эта функция создает хэш-отпечаток MD5 с помощью сведений о запрошенном ресурсе и данных из задачи и выводит маркер безопасности, представляющий частичный контекст безопасности. Чтобы завершить проверку подлинности, клиент должен вернуть маркер серверу, который выдал вызов.
В следующей таблице описываются параметры функции InitializeSecurityContext (Digest) и значения, которые необходимо указать при создании ответа на вызов digest.
Параметр | Описание |
---|---|
fContextReq |
Атрибуты контекста безопасности, запрашиваемые клиентом. Дополнительные сведения см. в разделе "Требования к контексту ответа на вызовы дайджеста". |
pszTargetName |
HTTP: строка, завершающаяся значением NULL, указывающая целевой URL-адрес. SASL: строка, завершающаяся значением NULL, указывающая целевой объект DNS/SPN. |
pInput |
Буферы, содержащие сведения, необходимые поставщику служб дайджеста. Дополнительные сведения см. в разделе "Входные буферы" для ответа на вызов дайджеста. |
pfContextAttr |
Получает атрибуты, поддерживаемые возвращаемым контекстом безопасности. Дополнительные сведения см. в разделе "Требования к контексту ответа на вызовы дайджеста". |
pOutput |
Адрес буфера типа SECBUFFER_TOKEN, который получает маркер безопасности для отправки обратно на сервер. |
Требования к контексту ответа на запросы дайджеста
Требования к контексту — это флаги, которые определяют:
- Независимо от того, работает ли Microsoft Digest в качестве механизма SASL или протокола проверки подлинности HTTP.
- Качество защиты, поддерживаемого контекстом безопасности, общим клиентом и сервером.
По умолчанию Microsoft Digest работает в качестве механизма SASL.
Требования к контексту указываются как флаги, передаваемые параметру fContextReq функции InitializeSecurityContext. Флаги влияют на качество защиты контекста безопасности путем управления директивой qop в ответе на вызов.
По умолчанию директива qop имеет значение auth. Чтобы создать ответ на вызов, который задает qop для auth-int, необходимо выполнить следующее:
Вызов Digest должен иметь директиву 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.
Проверка качества защиты
Клиент должен проверить флаги атрибутов контекста безопасности, возвращаемые в параметре pfContext Функции pfContextAttr функции InitializeSecurityContextAttr. Клиент должен отправить ответ на запрос на сервер только в том случае, если качество защиты, указанное флагами, достаточно для его целей. Соответствующие флаги могут быть любым сочетанием следующих значений:
- ISC_RET_INTEGRITY
- ISC_RET_REPLAY_DETECT
- ISC_RET_SEQUENCE_DETECT
- ISC_RET_CONFIDENTIALITY (только контексты SASL)
Дополнительные сведения о директиве qop см. в разделе "Качество защиты и шифры".
Дополнительные сведения о директивах ответа на вызовы см. в разделе "Содержимое ответа на вызов дайджеста".