Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Você deve considerar os seguintes itens que afetam a segurança ao implementar sessões seguras. Para obter mais informações sobre considerações de segurança, consulte Considerações de segurança e práticas recomendadas de segurança.
Sessões e metadados seguros
Quando uma sessão segura é estabelecida e a propriedade RequireCancellation é definida como false, o Windows Communication Foundation (WCF) envia uma declaração mssp:MustNotSendCancel como parte dos metadados no documento WSDL (Linguagem de Descrição de Serviços Web) para o ponto de extremidade do serviço. A mssp:MustNotSendCancel asserção informa aos clientes que o serviço não responde a solicitações para cancelar a sessão segura. Quando a RequireCancellation propriedade é definida como true, o WCF não emite uma mssp:MustNotSendCancel asserção no documento WSDL. Espera-se que os clientes enviem uma solicitação de cancelamento para o serviço quando não precisarem mais da sessão segura. Quando um cliente é gerado usando a ServiceModel Metadata Utility Tool (Svcutil.exe), o código do cliente reage adequadamente à presença ou ausência da mssp:MustNotSendCancel asserção.
Conversas seguras e tokens personalizados
Existem alguns problemas com a mistura de tokens personalizados e chaves derivadas devido à forma como é definido na especificação WS-SecureConversation. A especificação diz que wsse:SecurityTokenReference é um elemento opcional que faz referência ao token derivado: "/wsc:DerivedKeyToken/wsse:SecurityTokenReference Este elemento opcional é usado para especificar token de contexto de segurança, token de segurança ou chave/segredo compartilhado usado para a derivação. Se não for especificado, presume-se que o destinatário pode determinar a chave compartilhada a partir do contexto da mensagem. Se o contexto não puder ser determinado, então deve ser levantada uma falha, tal como wsc:UnknownDerivationSource.
Isso significa que, se quiseres derivar um token personalizado, deverás envolver o tipo de cláusula num elemento SecurityTokenReference. Há uma opção para desativar a derivação, mas o padrão é derivar chaves. Se você não conseguir encapsular a chave, a serialização do token de chave derivada será bem-sucedida, mas a tentativa de desserializá-lo lançará uma exceção.