Fintan

モバイルアプリケーションのセキュリティと認証

CONTENTS

  • arrow_forwardモバイルアプリケーションのセキュリティと認証
     

    Android, iOS, React Native

はじめに

モバイルアプリケーションは多種多様ですが、多くのアプリケーションでセキュリティの担保とユーザ認証は必要になります。 それらについてプロジェクトでそのまま参考にできる、システムアーキテクチャの解説書と具体的な設計例を用意しています。

また、以下のガイドで示したアーキテクチャと設計を実際のソースコードに落としたサンプルアプリケーションもソースコードを公開しています。 ソースコードを参照して、開発者が実際の開発を進めやすいようにするのが目的です。ガイドと合わせてご覧ください。

サンプルアプリケーションではReact Nativeを使っています。そのためReact Nativeを使うプロジェクトで同じユースケースであればソースコードを流用可能です。

セキュリティ

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)を用いることで品質と生産性が向上
  • 少ないコストで既存システムの認証方式を改修でき、ソフトウェア資産の流用が可能
  • 端末認証と組合わせることで、リスクに対処しながら利便性が向上

※ 本コンテンツに含まれるドキュメントはクリエイティブコモンズ(Creative Commons) 4.0 の「表示—継承」に準拠しており、コード例はApache License 2.0に準拠しています。

※ 本コンテンツ内に記載されている会社名、製品名は、各社の登録商標または商標です。

このエントリーをはてなブックマークに追加


TIS株式会社
個人情報保護方針 個人情報の取り扱いについて 情報セキュリティ方針 当サイトのご利用にあたって

Copyright 2021 TIS Inc.keyboard_arrow_up