Como os aplicativos populares autenticam os pedidos de Usuários de seu aplicativo móvel para o seu servidor?

digamos que tenho uma aplicação Android que se liga a uma API.Net para receber/configurar dados. A confusão que eu tenho é a respeito de como inscrever-se/login O usuário pela primeira vez e autenticá-lo cada vez que eles fazem um pedido para a API.

  • Se eu usar apenas o nome de utilizador/Senha de autenticação eles não serão seguros chega?
  • E não consigo guardar o nome de utilizador/Senha no dispositivo. por razões de segurança?
  • devo emitir um guia para cada utilizador na inscrever-se, guardá-lo no dispositivo deles e recuperar todas as vezes durante um pedido de API?
Que outros padrões estão disponíveis e que são mais eficientes e seguros, só preciso de um fluxo de processo para isso. Alguém pode me dizer qual o método famoso android aplicações como Facebook, FourSquare, ou Twitter usar para autenticar cada pedido vindo de sua aplicação móvel para o seu servidor?

Desculpa antecipadamente se isso não é informação pública.

Author: Kobi, 2013-11-06

6 answers

Imagino que usem um sistema de segurança baseado em "token", por isso a senha nunca é armazenada em lado nenhum, apenas usada da primeira vez para autenticar. Assim, o aplicativo inicialmente posta o nome de usuário/Senha (sobre ssl) e o servidor retorna um token que o aplicativo armazena. Para tentativas de sincronização subseqüentes o token é enviado primeiro, o servidor verifica que ele é válido, e então permite que outros dados sejam postados.

O token deve ter uma expiração para que o servidor possa re-requisitar uma autenticação tentar.

Se se ligar ao adaptador de sincronização dentro da estrutura Android, isso dar-lhe-á a capacidade de sincronizar e autenticar tudo sob o capô.

Http://developer.android.com/training/sync-adapters/creating-sync-adapter.html

Se verificares as contas na configuração do teu dispositivo, verás o que quero dizer.

 41
Author: simon, 2013-11-05 21:44:34

Basicamente estes famosos usam o protocolo de OAuth (1) / framework (2). Embora tenha que ser um padrão, cada um deles teve diferentes implementações deste protocolo/framework. Por isso, temos de ter muito cuidado quando se trata de integração.

Exemplo: O Dropbox ainda usa o OAuth 1 e surgiu recentemente com o suporte do OAuth 2.

De volta para responder, como, disse peterpan, é uma forma de autenticação baseada em token é uma coisa de tempo e fora da equação.Estes tokens estão expirados ou esse poder é dado ao desenvolvedor em alguns casos.

O interessante por trás disto é que, o escopo de acesso de recursos pode ser definido em vez de permitir que a aplicação cliente mantenha os nomes de usuário, senhas que são perigosas.

Esta é a ilustração básica de como isto funciona.

enter image description here

Actualizarei a resposta depois de obter mais detalhes sobre isto, uma vez que estou a trabalhar nesta área nestes dias:)

 17
Author: Diyoda_, 2014-12-23 20:14:33

Eu sou novato, mas vou tentar dar uma solução lógica para a pergunta dada.

Haverá duas opções., [1] para cada URI, autenticação http será realizada onde as credenciais do Usuário introduzidas serão verificadas e o Usuário deve acessar os recursos.

[2] outra abordagem poderia ser, um utilizador deve autenticar-se e em cada autenticação será gerado um símbolo único. Utilizando o token gerado, o Usuário deve acessar os recursos.

Apesar de não ter a certeza que abordagem poderia ser mais adequado para a aplicação móvel.
 4
Author: imbond, 2015-07-31 13:03:13
Eu estava procurando exatamente a mesma coisa e encontrei o google way, algo como peterpan disse, mas através do Google APIs. Experimente este link e Google seu caminho através dele, eu estou começando também! Já agora, vou publicar novas informações!

Http://developer.android.com/google/auth/http-auth.html

 3
Author: Vitor Mendes, 2015-01-15 12:40:20

O Exemplo de autenticação é um bom lugar para começar. O Android armazena credenciais no Gerente da Conta, você pode ver contas nas configurações do Android. Isto irá armazenar automaticamente os tokens, pedir credenciais ao utilizador se expirarem ou faltarem, actualizar os tokens, etc. Eu acho a parte http deste exemplo carente ou velho. Extending Android's AccountAuthenticatorActivity is a great helper to parse serialized data to the layout and back to the internet.

 3
Author: Pomagranite, 2016-02-17 02:23:05

O nome de Utilizador e as senhas podem ser seguros quando colocados em pré-referências de acções. Usar https em conexão com um servidor também deve ser bom o suficiente.

 -5
Author: Martin, 2013-11-05 21:43:21