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