[Android] Best practise(s) opslaan authenticatie

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • PieterAelse
  • Registratie: Februari 2007
  • Laatst online: 13-06 11:34
Momenteel werk ik, als student zijnde, met een aantal mensen aan een Android app die in samenwerking met een webservice data kan ophalen. De gebruiker kan deze data refreshen dus het contacteren van de webservice gebeurd meer dan 1x. Voor de (data die verkregen wordt uit de) webservice zijn een gebruikersnaam en wachtwoord nodig. Deze zijn bij de gebruikers al bekend aangezien ze ook voor andere diensten worden gebruikt. Hierdoor is de beveiliging van deze gegevens ook belangrijk, vooral het wachtwoord natuurlijk.

Het probleem waar we tegenaan lopen is dat er nog geen ervaring of kennis is over eigenlijk de best practise in Android om deze communicatie veilig te doen. Er zal namelijk iets op de telefoon opgeslagen moeten worden van naam/wachtwoord of een token o.i.d.

De simpelste methode, shared preferences, is geen optie aangezien een gebruiker met root toegang tot zijn toestel de data simpelweg kan ophalen. Andere mogelijke opties die we onder ogen hebben zijn: Encoding, oath en de Accountmanager van Android. De ogen zijn nu gericht op oauth, maar de webservice is nog niet zover.

Er is al rondgekeken naar de mogelijkheden en gezocht naar best practises, maar er kwam geen duidelijke oplossing naar voren. Daarom hoop ik hier goede ideeën op te doen voor het opslaan van credentials/tokens op een Android systeem (dat wellicht root toegang heeft).

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Wat is het probleem dat iemand z'n eigen token kan terughalen op een rooted toetstel, de token is immers toch voor de user zelf? Een OAuth2 server is vrij simpel om zelf te maken.

Acties:
  • 0 Henk 'm!

  • PieterAelse
  • Registratie: Februari 2007
  • Laatst online: 13-06 11:34
Het opzetten van oauth zal het probleem ook niet vormen. Echter wil ik tot een juiste keuze komen voordat we even oauth gaan proberen natuurlijk.

Nu heb ik geen oauth ervaring, wordt de authenticatie meestal binnen de app zelf gedaan of wordt de (standaard) browser gebruikt? Het laatste lijkt me namelijk iets minder gebruikersvriendelijk.

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Binnen de Oauth2-spec kun je ook met credentials een access token verkrijgen dus kun je het in-app houden. Facebook doet dit overigens ook in hun app.

Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 16-06 18:03
Ik heb er zelf nooit naar gekeken, maar misschien is de AccountManager wat je zoekt?

Acties:
  • 0 Henk 'm!

  • PieterAelse
  • Registratie: Februari 2007
  • Laatst online: 13-06 11:34
@Jegorex: Zoals ik in de TS vermeld is de AccountManager inderdaad een van de opties. Zelf ook nog niet diep genoeg naar gekeken om te weten of het dé oplossing is. Vandaar de quest naar de best practise:p
Pagina: 1