Android分析サービスを設計しようとしています。このサービスに登録するすべてのユーザーのアプリケーションがSDKをダウンロードする必要があります。SDK自体がAPIサーバーと通信する必要があります。実行したポイント問題には、APIサーバーと通信できるように、各アプリケーションに適切な認証方法を実装する方法がわからないということです。
ユーザーのアプリケーションごとに一意のAPIキーを既に生成していますが、認証プロセスを処理する方法がわかりません。APIキーを認証の唯一の要素とすると、ハッカーによって簡単に盗まれる可能性があるためです。
一方、JWT
が最良のケースであると読みましたが、API-Keyを送信してAccess-Tokenを取得すると、どちらも簡単に盗まれる可能性があります。今私はOAuth 2.0
または、他の何か?
どんなアイデアでもいただければ幸いです...
JWTは期限切れになる可能性があります。 (それらは定期的に、または特定のユーザーアクションに基づいている必要があります)。その後、新しいJWTを発行できます。しかし、結局のところ、JWTが盗まれ、まだ期限が切れていない場合は、危険にさらされています。結局のところ、状態を維持するつもりなら、クライアントは何か、セッションCookie、jwtなどを保持する必要があります...
APIキーを期限切れにして再管理する方法を実装することをお勧めします。ベストプラクティスの優れた要約を含む回答を次に示します。 API-Key-Mechanismの実装方法
私の同僚の1人が [〜#〜] apiman [〜#〜] (RedHatから)と今日私に言及しました。これはあなたが必要としているもののようです。それは他の有用な機能の中で認証層を持っています。