2017-11-30 2 views
1

Wir möchten eine native mobile App mit OAuth2 erstellen. Wie vor Client-ID zu schützen (diese Informationen können von jedem erhalten werden)? Jemand kann seine eigene App erstellen und als unsere App fungieren, indem er unsere clientID verwendet?Native App OAuth2-Autorisierung

Antwort

1

Ja, wenn jemand Ihre clientId/clientSecret abruft, kann er als Ihre App fungieren, und leider gibt es keine Möglichkeit, Anmeldeinformationen vollständig aus Ihrer Anwendung zu entfernen.

Auf einer höheren Ebene benötigt Ihre App einen Bezeichner und ein Geheimnis, um sich bei Ihrem Dienst zu authentifizieren. Wenn Sie das Geheimnis aus Ihrer App entfernen, müssen Sie es von woanders abrufen (es könnte Ihr Benutzer sein, der es tippt, dies wäre dasselbe wie eine Berechtigung für den Benutzer zu haben und ihm ein Token für weitere API-Aufrufe zu geben).

Sie können es jedoch für Reverser schwieriger machen, die Anmeldeinformationen zu erhalten, wie in this article erläutert. Um es noch schwieriger zu machen, können Sie alle Ihre API-Aufrufe in HTTPS erzwingen und SSL-Zertifikat-Pinning aktivieren, so dass Proxy-Debugging/Man In The Middle schwierig durchzuführen ist.

Am Ende sollten Sie eindeutig angeben, welche API-Aufrufe öffentlich sein sollen (nur mit dem OAuth-Token für den Zugriff auf diese Ressourcen) und welche eine Benutzerauthentifizierung erfordern sollten.

PS: Googles (Best Practices für Android-Sicherheit) [https://developer.android.com/training/best-security.html] könnte ein guter Start sein!

+0

Vielen Dank für Ihre Antwort :) –