Контекст безопасности
Контексты безопасности позволяют создавать контекст безопасности сообщений в соответствии с 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. |