Contexto de segurança

Os contextos de segurança permitem o estabelecimento de um contexto de segurança de mensagem de acordo com o WS-SecureConversation. Esse contexto pode então ser usado para proteger mensagens como uma alternativa à segurança única em que as credenciais são transmitidas para cada solicitação. O contexto de segurança estabelecido é um método mais eficiente de proteção de mensagens quando várias mensagens são trocadas.

Os contextos de segurança exigem a presença de credenciais de segurança de inicialização usadas para proteger as mensagens enviadas no contexto. As estruturas WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING, WS_XML_TOKEN_MESSAGE_SECURITY_BINDING e WS_USERNAME_MESSAGE_SECURITY_BINDING podem ser usadas para essa finalidade.

Os contextos de segurança são um recurso de segurança de mensagem e são configurados por meio de associações de segurança de mensagem.

Cliente

No lado do cliente, o contexto de segurança está vinculado a um canal específico. Ele é configurado usando o WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING. O comportamento e o tempo de vida do contexto são determinados pelo canal. Quando a primeira mensagem é enviada no canal, o contexto de segurança é estabelecido. Depois disso, o contexto é renovado proativamente em um intervalo configurável. Se o servidor retornar uma falha indicando que o contexto requer renovação, o contexto será renovado quando a próxima mensagem for enviada. Se o canal estiver no estado aberto, o contexto será cancelado por uma mensagem de cancelamento quando o canal for fechado.

Servidor

No servidor, um contexto de segurança é configurado da mesma maneira que no cliente. No entanto, ele não está vinculado a nenhum canal específico. Em vez disso, todos os canais criados para o ouvinte que tem o conjunto de WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING são capazes de receber mensagens com qualquer um dos contextos de segurança estabelecidos nos canais desse ouvinte.

Quando uma mensagem chega em um canal que dá suporte a contextos de segurança, o contexto usado por essa mensagem pode ser obtido chamando a função WsGetMessageProperty com o WS_MESSAGE_PROPERTY_SECURITY_CONTEXT. O valor recuperado pode ser usado com WsRevokeSecurityContext e WsGetSecurityContextProperty.

Metadados

A estrutura WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT é usada para extrair a política de contexto de segurança dos metadados. Para obter mais informações, consulte Importação de metadados.

Os elementos de API a seguir são usados com contextos de segurança.

Enumeração Descrição
WS_SECURITY_CONTEXT_PROPERTY_ID Identifica uma propriedade de um objeto de contexto de segurança.

 

Função Descrição
WsGetSecurityContextProperty Obtém uma propriedade do contexto de segurança especificado.
WsRevokeSecurityContext Revoga um contexto de segurança.

 

Handle Descrição
WS_SECURITY_CONTEXT Um tipo opaco usado para fazer referência a um objeto de contexto de segurança.

 

Estrutura Descrição
WS_SECURITY_CONTEXT_PROPERTY Define uma propriedade de um WS_SECURITY_CONTEXT.