Wenn Sie darauf angewiesen sind, Ihren Kunden Autorisierungstoken zum Einfügen ihrer Apps zu erteilen, kann theoretisch immer jemand die App zurückentwickeln und extrahieren. Um dies zu verhindern, benötigen Sie einen Mechanismus, der kein Geheimnis in der Client-App erfordert. Das ist knifflig. Ich kann Ihnen jedoch einige Optionen vorschlagen, über die Sie nachdenken sollten.
Sie haben ein Problem, nachdem Sie die Anmeldeinformationen ausgegeben haben. Sie haben keine Kontrolle darüber, wie sicher sie gespeichert werden. Wenn der Benutzer die Anmeldeinformationen an Sie senden muss, kann jemand Ihre Verbindung MITMEN und die Token direkt stehlen, ohne sich um das Reverse Engineering der App kümmern zu müssen.
Eine Möglichkeit, das Extrahieren Ihres Autorisierungstokens zu erschweren, besteht darin, es zu verschleiern. Dies legt die Messlatte nur höher, macht es aber nicht unmöglich, und um dies zu tun, müsste man die Kontrolle über das Geheimnis behalten. Sie können eine Bibliothek implementieren, die die geheimen Informationen enthält und für jeden Kunden spezifisch ist. Sie können die Bibliothek verwenden, um mit Ihren Servern zu kommunizieren, und müssen Ihrem Benutzer möglicherweise nicht einmal die geheimen Informationen mitteilen, sondern können sie einfach in die Bibliothek einbetten. Dies löst nicht das Problem, dass jemand Ihre Bibliothek zurückentwickelt, sondern gibt Ihnen die Kontrolle über den Grad der Verschleierung. Ein Nachteil ist, dass eine Person, sobald sie die Verschleierung in der Bibliothek aufgebrochen hat, jede Ihrer Bibliotheken angreifen kann, es sei denn, Sie schreiben Code, der jede Bibliothek deutlich anders macht. Das bringt seine eigenen Probleme mit sich.
Dies kann leicht vom Umfang Ihrer Frage abweichen, aber es hängt mit der Sicherheit Ihres Tokens zusammen, also werde ich es erwähnen. Um einen unbedeutenden Diebstahl des Tokens über die Leitung zu verhindern, möchten Sie den Token wahrscheinlich nicht direkt senden, sondern können den Datenverkehr mit einer HMAC-Funktion signieren. Sie können die Gültigkeit der Nachricht überprüfen, indem Sie die HMAC der Nachricht auf dem Server berechnen und mit der vom Client gesendeten HMAC vergleichen. Sie würden das Token als Schlüssel für die HMAC-Funktion verwenden, damit nur jemand, der das Token kennt, Datenverkehr signieren kann. Dies ist besser für die Sicherheit Ihres Tokens, da Sie es niemals direkt an den Server senden, sodass es nicht direkt abgefangen und gestohlen werden kann. Weitere Informationen zu HMACS finden Sie in dieser Frage: /security/20129/how-and-when-do-i-use-hmac/20301
Keine Sicherheitslösung ist uneinnehmbar. Sie müssen entscheiden, wie viel die Implementierung kosten wird, im Vergleich zu der Wahrscheinlichkeit und den Kosten einer Gefährdung.