Pergunta

Eu gostaria de criar uma arquitetura de serviços web que pode ser chamado por várias plataformas, tais como dispositivos móveis, aplicações WinForms, iPhone, BlackBerry, o nome dele. Assim que ir com algo parecido com WCF e wsHttp ligação provavelmente mata isso e eu precisaria fazer o downgrade para uma basicHttp ligação para compatibilidade.

Com o que disse, eu preciso de um sistema para gerar um token de login inicial (autenticação) e, em seguida, usar esse token para todas as chamadas subsequentes, eu acho, para validar a autenticação e permitir que o método de execução.

Alguém tem dicas ou sugestões sobre como fazer isso? 1) Gerar um token e que está envolvido em um token seguro? 2) Quanto tempo é o bom sinal para, alguns usuários podem usar a sua aplicação por horas e possivelmente até mesmo "sleep" seu computador

Obrigado pelo conselho.

Foi útil?

Solução

Se você estiver usando apenas um sinal que é dado pelo servidor na autenticação inicial, ele pode ser usado para qualquer pedido se for interceptado. Sua única defesa é o tempo de expiração.

Além disso, depende de quais são suas opções de implementação são.

Um sistema mais seguro é adicionar um timestamp (e possivelmente um nonce) a cada solicitação, sinal de que, e incluem que a cada pedido. Ela exige que as alças cliente as credenciais de autenticação, sabe a implementação assinatura, e os sinais cada solicitação.

Você poderia alternadamente têm a autenticar servidor com cada solicitação (o que poderia ser feito com OpenID) ou a mão para fora um número de fichas e re-autenticar quando mais são necessários (o que poderia ser feito com OAuth). Se o cliente pode armazenar credenciais, estes podem ser invisíveis para o usuário. Estes são mais complexa, exigindo um transporte criptografado, como o SSL para algumas das interações, e um cliente que pode falar HTTP redirecionamentos e biscoitos punho ou outro estado armazenado. O cliente não tem que saber como se inscrever, mas se você pode fazer SSL, você provavelmente não precisa da complexidade em primeiro lugar.

Se você não precisa ser cliente-agnóstico, você provavelmente vai querer assinar pedidos.

Para assinar implementações, exemplos e bibliotecas, olhar no Amazon Web Services, OpenID ou OAuth.

Com relação ao tempo de expiração do token, que depende de suas necessidades. Uma vida símbolo mais aumenta os ataques janela replay. Um nonce faz um uso único token, mas requer mais estado no servidor.

Outras dicas

Você deve verificar se OAuth . É um padrão para autenticação de API, você pode, provavelmente, basta conectar uma implementação existente para o seu serviço.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top