Partilhar via


Contexto de segurança

Os contextos de segurança permitem o estabelecimento de um contexto de segurança de mensagens de acordo com o WS-SecureConversation. Esse contexto pode então ser usado para proteger mensagens como uma alternativa à segurança one-shot, onde as credenciais são transmitidas para cada solicitação. O contexto de segurança estabelecido é um método mais eficiente de proteger 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 que são usadas para proteger as mensagens enviadas no contexto. As estruturas WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING, WS_XML_TOKEN_MESSAGE_SECURITY_BINDINGe WS_USERNAME_MESSAGE_SECURITY_BINDING podem ser utilizadas para este fim.

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

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 a vida útil 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 é cancelado por uma mensagem de cancelamento quando o canal é fechado.

Servidor

No servidor, um contexto de segurança é configurado da mesma forma que no cliente. No entanto, não está ligado a nenhum canal em particular. Em vez disso, todos os canais criados para o ouvinte que tem o WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING definido são capazes de receber mensagens com qualquer um dos contextos de segurança que foram estabelecidos nos canais desse ouvinte.

Quando uma mensagem chega a um canal que suporta 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 diretiva de contexto de segurança dos metadados. Para obter mais informações, consulte Importação de metadados.

Os seguintes elementos de API 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.

 

Pega 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.