質問: ### 前提・実現したいこと androidでチャットアプリを実装しています。 ログイン認証について質問させてください。 現在、以下のようなフローです ■初回アプリ立ち上げ アプリのログイン画面 ↓ 外部のログインAPIにメールアドレスとパスワードをPOST ↓ ログインが成功したらユーザー情報が返却されるので、 Apllicationクラスを継承したModelクラスにユーザー情報を格納して認証完了 そこで初回以降のアプリ立ち上げ時にLINEやSlackのように自動でログインさせたいと考えております。 短絡的にローカルストレージにログイン情報やユーザー情報を書き込めば動きはすると思いますが、 セキュリティ的によろしくないと考えております。 どのように実現するのが一般的なのでしょうか? ### 環境 Windows10 Android9.0 Android Java 有識者の方、お力添えいただけますと幸いです。 ### 認証サーバについて 外部のログインAPIにメールアドレスとパスワードをPOST と書かせていただきましたが、 認証サーバを立てている、というより 外部で既に運用中のWebサービスに組み込まれているログイン機能を利用している形になっています。
回答: 一般的なログイン認証については、 google oauth / SAML を使用するのが一般的とasahinaさんにご回答いただきましたが、 私の場合ですと組み合わせるのが難しかったため以下の記事を参考にローカルに暗号化してログイン情報を保存する方法を取ることとしました。 https://qiita.com/f_nishio/items/485490dea126dbbb5001 これで静的な解析では破れないようになりますが、課金情報が含まれたりしてもっと強固に保護する場合は、暗号・複合のキーをサーバから取得するなどもうひと工夫する必要があるようです。 ログイン認証機能自体は既に既存のWebサービスで行っており、その認証情報は深くWebサービスに紐づいているのでgoogle oauthを連携するのは難しそうと判断しました。 大変説明不足でした、失礼しました