投稿日
モバイルアプリケーションのリファレンス
もくじ
はじめに
このリファレンンスは、これまでWebアプリケーションを開発していたエンジニアが、Android/iOSのモバイルアプリケーション開発を始めるために必要な基本知識をまとめたものです。そのため、Webとは考え方やアーキテクチャが異なるポイントを重視した内容となっています。
セキュリティ
Webアプリケーション開発の経験者がモバイルアプリケーション開発を始める上で参考になる、セキュリティ関連のガイドや記事を紹介します。セキュアプログラミングだけでなく、セキュリティ要件定義にも役立つガイドラインが提示されているので、それらを紹介しています。
認証
認証とは、何らかの手段によって対象の真正性を確認する行為です。 ここでの認証対象は人間であり、本人認証を指します。 認証方式は、システム構成の変化やセキュリティ意識の向上と共に変化してきました。 本ガイドでは、モバイルアプリケーションにおける認証技術やアーキテクチャについて解説します。
認証アーキテクチャ
モバイルアプリケーションでも、バックエンドのAPIサーバなどと連携してサービスを提供することが一般的です。モバイルアプリケーションの利用ユーザをバックエンドのAPIサーバに対して認証する方式には大きく分けてステートフルとステートレスという選択肢がありますが、それぞれのメリット・デメリットをまとめています。
また、ステートレスな認証方式として一般的なOpenID Connectについて、モバイルアプリケーションで利用する際の概要についてもまとめています。
Webアプリケーションとの認証情報の連携
Webアプリケーションを公開した後に、モバイルアプリケーションも公開したいというのは、よくある要望です。 このような場合、モバイルアプリの中でWebアプリを表示すれば、モバイルアプリ側で全ての機能を一から作らずにすむので、重要な機能の開発に注力できます。
モバイルアプリの中で単純にWebアプリを表示するだけであれば、WebViewを使って比較的簡単に実現できますが、認証が必要な画面についてはそれほど簡単ではありません。 例えばモバイルアプリでログイン後、Webアプリを開いたときにもログインが必要になってしまっては、アプリ内に表示している意味が薄くなってしまいます。
そのようなことにならないように、モバイルアプリとWebアプリでどのように認証状態を同期できるか、以下のページで紹介しています。
モバイルアプリケーション開発ガイド – Webアプリとの認証情報の連携
OpenID Connectと端末認証を用いたモバイルアプリケーションとバックエンドサービスの認証方式
認証サービスを利用したシステム構成に関する不明点や課題に対し、1つの解決手法として次の特徴を持った認証方式を紹介します。
- RFC 8252に従ったOpenID Connect認証
- IDトークンによるバックエンドサービスとのセッション確立
- トークン保管による認証の継続と端末認証(パスコードの入力や指紋認証、Face IDなど端末機能を用いた本人認証)による保護
上記内容について、システム構成図やシーケンス図、フローチャートと共に、以下のページで紹介しています。
モバイルアプリケーション開発ガイド – OpenID Connectと端末認証を用いたモバイルアプリケーションとバックエンドサービスの認証方式
本認証方式を用いることで、次の効果が期待できます。
- RFC 8252を実装したSDK(AppAuth)を用いることで品質と生産性が向上
- 少ないコストで既存システムの認証方式を改修でき、ソフトウェア資産の流用が可能
- 端末認証と組合わせることで、リスクに対処しながら利便性が向上
Push通知のガイドと実装例
モバイルアプリケーションの代表的な要求の1つであるPush通知について、プロジェクトで参考にできるPush通知のガイドと実装例を用意しています。
ガイドでは、実装する上で理解しておくべき点の多いリモート通知について、Firebase Cloud Messagingを用いてAndroid、iOS双方に送信する場合の構成と実装例にて解説しています。 リモート通知を配信するサービスの設定やモバイルアプリケーションで利用するライブラリの設定も記載していますのでご覧ください。
※ 本コンテンツに含まれるドキュメントはクリエイティブコモンズ(Creative Commons) 4.0 の「表示—継承」に準拠しており、コード例はApache License 2.0に準拠しています。
※ 本コンテンツ内に記載されている会社名、製品名は、各社の登録商標または商標です。