最近のアクセス:
安全なネイティブ モバイル アプリケーションのアーキテクチャ

基本的に、ネイティブ モバイル アプリケーションのアーキテクチャは、デバイスにインストールされるクライアントアプリケーション (デバイスに応じて、APK、IPA、または JAD) と、サーバーアプリケーション (アプリケーションのビジネスロジックを解決する REST Web サービス) で構成されます。
クライアントアプリケーション (APK、IPA、JAD) は、(プラットフォームに応じて) 任意のアプリケーション マーケット プレイスから入手できます。
サーバーアプリケーションは任意のホストサーバーにインストールできます。
アプリケーションの特性に応じて、多くの場合、サーバーアプリケーションにアクセスできるのは承認されたユーザーのみです。また、REST Web サービスには、そのデバイスからのみアクセスできる (ほかのデバイスからは不可) という前提条件もあります。ほかのクライアントからアクセスできる場合も、承認されたクライアントのみであることが必要です。
これは、GeneXus ネイティブ モバイル アプリケーションで GAM を使用することで実現できます。この場合、セキュリティメカニズムは OAuth に基づいています。
これらのアプリケーションのアーキテクチャの基本構造と、それらのデプロイに推奨される方法を次に示します。
イメージ:50941.jpg
(1) クライアント ID 情報
ユーザーがネイティブ モバイル アプリケーションをインストールすると、対応する APK、IPA、JAD がデバイスにダウンロードされます。
このパッケージ (APK、IPA、JAD) には、クライアントアプリケーション自体に加えて、サーバーアプリケーションに接続するためのクライアント ID が含まれています。
ユーザーがアプリケーションに接続するためには、承認されたユーザー名/パスワードも必要です。
REST Web サービスで構成される安全なアプリケーションに接続するためには、承認されたユーザー名/パスワードをエンドユーザーが知る必要があります。これらの資格情報は、アプリケーションのインストール時にデバイスにダウンロードされたクライアント ID と一緒に、サーバーアプリケーションとの最初の接続を確立するために使用されます。

(2) access_token 情報
ユーザーがアプリケーションに接続しようとすると、ログインがユーザーに表示されます。最初に接続しようとしたときに、ユーザー名、パスワード、クライアント ID を使用してサーバーへの POST が実行され、HTTP 応答が、以降の接続で使用される access_token を返します。
この access_token は、 [ OAuth token expire (minutes) ] プロパティの値に応じて、ユーザーが接続している間は保持されるか、定期的にリセットされるかします。
access_token はデバイスのキャッシュに格納され、それが有効な (ユーザーがログアウトしていない) 間は、再びログイン画面が表示されることはありません。
そのため、ユーザーの承認後、REST Web サービスが要求されるたびに、access_token が OAuth サーバーと GAM に対して検証され、望ましくないエントリーを回避します。

本番環境でのアプリケーションデプロイメントに関する推奨事項

高度なセキュリティが必要とされるアプリケーションの場合は、HTTPS の使用を強く推奨します。
この問題に関する次のドキュメントを参照してください: 本番運用の準備: GAM を使用したアプリケーションのチェックリスト

参考情報

GeneXus で安全な REST Web サービスを開発する方法




サブページ
Created: 20/01/08 17:59 by Admin Last update: 23/05/08 21:25 by Admin
カテゴリ
Powered by GXwiki 3.0