2016-05-01 4 views
1

Ich habe meinen eigenen Authentifizierungsserver mit eid2 (ohne Facebook oder Google) und frage mich, wo ich zuerst das geheime Handy auf dem Handy speichern soll. Da die geteilten Einstellungen Hack-on-Root-Telefon sein können und die Zugriffstokenanforderung die Client-ID benötigt, stehe ich vor einem Problem.oauth2 wo Client Geheimnis auf Android-Handy zu speichern, um Zugriffstoken anfordern?

(Bitte diese Frage nicht markieren als dupliziert, da ich nicht die Antwort auf eine ähnliche Position gefunden haben)

+0

Was genau ist das Problem, vor dem Sie stehen? Was die gemeinsamen Einstellungen betrifft, muss das Android-Gerät nicht root sein. (http://developer.android.com/reference/android/content/SharedPreferences.html) – Naman

+0

Hallo, ich sage nicht, dass das Gerät verwurzelt sein muss! Ich sage sayint, dass eine Person, die ein gerootetes Telefon hat, Zugang zum shared pref und dann acees zum Klientengeheimnis hat. Es ist keine Frage über geteiltem pref aber ein "wie man" in oauth2 mecanism. Das auth2-Protokoll benötigt die Client-ID, um ein Zugangstoken mit dem Gewährungskennwort abzurufen. Und das Speichern der Client-ID auf dem Telefon scheint schlecht zu sein. So, wie man ein Zugangs-Token abruft, wenn der Benutzer sein Passwort einstellt und sich anmeldet. Und muss ich dann das Token für den Zugang in den gemeinsamen Einstellungen speichern? Danke für die Hilfe ! – Johnduff

Antwort

3

Sie müssen die Client-ID und Geheimnis, wenn Sie den Autorisierungscode Fluss verwenden. Dieser Ablauf wird normalerweise in Situationen verwendet, in denen der Client sehr vertrauenswürdig ist, z. B. wenn eine API vom Server ausgeführt wird. Impliziter Fluss ist die bessere Option in Fällen, in denen Sie das Clientgeheimnis nicht speichern möchten.

Der implizite Datenfluss unterscheidet sich vom Autorisierungscodefluss mit der vom Autorisierungsserver zurückgegebenen Antwort. Der implizite Fluss gibt das access_token direkt zurück. Um eine gültige Sitzung für längere Zeiträume zu haben, können Sie ein Aktualisierungstoken zusammen mit Zugriffstoken anfordern. Und Aktualisierungstoken können verwendet werden, um ein neues Zugriffstoken zu erhalten, wenn das aktuelle Zugriffstoken ungültig wird oder abläuft.

Bitte lassen Sie mich wissen, wenn Sie weitere Fragen haben.

Vielen Dank, Soma.

+0

Oh Mann, wirklich vielen Dank für Ihre Antwort und Entschuldigung für mein Englisch ... Es ist mir, Ihnen zu danken :)! Lassen Sie mich zuerst die Situation erklären. Es ist ein grundlegender Anwendungsfall. Ich habe einen OAUTH2-Server für meine App auf dem mobilen Gerät (Android und iOS) ohne Website. Es ist NICHT geplant, für andere Anwendungen verwendet zu werden (zumindest für den Moment ...). Wie ich verstanden habe, ist es das Ziel des Autorisierungsflusses mit dieser Weiterleitung, den Sie beim Erstellen eines neuen Clients durchlaufen müssen. Können Sie mir bitte den Prozess Schritt für Schritt erklären? – Johnduff

+0

Was repräsentiert einen Kunden? In meinem Fall habe ich nur einen Client für alle meine Benutzer, da ich der einzige «Darsteller» meines Eidesters bin? In diesem Fall verstehe ich, wie man implizit vorgeht, indem man die Client-ID bei der Anmeldung des Benutzers übergibt. Aber ich verstehe immer noch nicht, was der Zweck der Umleitungs-URL ist, wenn ein Zugriffstoken im impliziten Fluss angefordert wird und wie damit umgegangen wird auf Handy ... Wirklich danke für Hilfe. Ich denke, diese Noob-Frage kann anderen Menschen helfen. – Johnduff

+0

Hallo, der Benutzer wird zur Anmeldeseite umgeleitet, wenn Authentifizierung benötigt wird. Das Umleitungs-URI teilt dem Authentifizierungsserver mit, wo der Benutzer einmal authentifiziert gesendet werden soll. IOS App könnte ein Client sein und Android könnte ein anderer sein. Clients sind auf dem Authentifizierungsserver vorregistriert. Hoffe das hilft. Vielen Dank. –