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


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

Контексты безопасности позволяют создать контекст безопасности сообщений в соответствии с 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, могут получать сообщения с любым из контекстов безопасности, установленных на каналах этого прослушивателя.

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

Метаданные

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

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

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

 

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

 

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

 

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