Поделиться через


Контекст безопасности

Контексты безопасности позволяют создавать контекст безопасности сообщений в соответствии с WS-SecureConversation. Затем этот контекст можно использовать для защиты сообщений в качестве альтернативы единовременной безопасности, когда учетные данные передаются для каждого запроса. Установленный контекст безопасности является более эффективным методом защиты сообщений при обмене несколькими сообщениями.

Контексты безопасности требуют наличия учетных данных безопасности начальной загрузки, которые используются для защиты сообщений, отправляемых в контексте. Для этой цели можно использовать структуры WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING, WS_XML_TOKEN_MESSAGE_SECURITY_BINDING и WS_USERNAME_MESSAGE_SECURITY_BINDING .

Контексты безопасности — это функция безопасности сообщений, которая настраивается с помощью привязок безопасности сообщений.

клиент

На стороне клиента контекст безопасности привязан к определенному каналу. Он настраивается с помощью WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING. Поведение и время существования контекста определяются каналом. При отправке первого сообщения на канал устанавливается контекст безопасности. После этого контекст заранее обновляется с настраиваемым интервалом. Если сервер возвращает ошибку, указывающую, что контекст требует обновления, контекст обновляется при отправке следующего сообщения. Если канал находится в открытом состоянии, контекст отменяется сообщением об отмене при закрытии канала.

Сервер

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

Когда сообщение поступает в канал, поддерживающий контексты безопасности, контекст, используемый этим сообщением, можно получить, вызвав функцию WsGetMessageProperty с WS_MESSAGE_PROPERTY_SECURITY_CONTEXT. Полученное значение можно использовать с WsRevokeSecurityContext и WsGetSecurityContextProperty.

Метаданные

Структура WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT используется для извлечения политики контекста безопасности из метаданных. Дополнительные сведения см. в разделе Импорт метаданных.

Следующие элементы API используются с контекстами безопасности.

Перечисление Описание
WS_SECURITY_CONTEXT_PROPERTY_ID Определяет свойство объекта контекста безопасности.

 

Функция Описание
WsGetSecurityContextProperty Возвращает свойство указанного контекста безопасности.
WsRevokeSecurityContext Отменяет контекст безопасности.

 

Handle Описание
WS_SECURITY_CONTEXT Непрозрачный тип, используемый для ссылки на объект контекста безопасности.

 

Структура Описание
WS_SECURITY_CONTEXT_PROPERTY Определяет свойство WS_SECURITY_CONTEXT.