新しい IBM Developer JP サイトへようこそ!サイトのデザインが一新され、旧 developerWorks のコンテンツも統合されました。 詳細はこちら

モバイル・ユーザー認証を実装する

注: このパターンは複合パターンの一部となっています。 これらのコード・パターンは、それぞれを独立した 1 つのアプリケーションとすることも、他のパターンと合わせて 1 つのコード・パターンとすることもできます。この複合パターンは以下のコード・パターンで構成されています。

概要

このコード・パターンでは、IBM Mobile Foundation サービスを利用して、ソーシャル・ログインと LDAP サーバーを使ったエンタープライズ・ログインの両方に対応するユーザー認証メカニズムを実装する方法を説明します。

説明

ほぼすべてのエンタープライズ・モバイル・アプリでは、ユーザー認証が基本的要件となります。給与計算や出張の予約に関連するアプリなど、社内モバイル・アプリについては、組織はシングル・サインオンを利用するためにオンプレミスの LDAP サーバーに対してユーザーを認証したいと考えるものです。一方、製品のユーザーがサービスを要求するために使用するアプリなど、エンド・ユーザーを対象とした、エンタープライズ・データが公開されないアプリについては、ユーザーが Facebook ログインや Google ログインなどの自分のソーシャル・ログインを使用して認証できるようにしたいと考えます。この開発者コード・パターンでは、ソーシャル・ログインとエンタープライズ・ログインの両方のメカニズムを使用してユーザーを認証する方法を説明します。

このコード・パターンを完了すると、以下の方法がわかるようになります。

  • ユーザー・リポジトリーがエンタープライズ LDAP サーバーとなっているモバイル・アプリ内でユーザー認証を行えるようにする
  • モバイル・アプリ内で Google や Facebook などのソーシャル・ログイン・メカニズムを使用してユーザー認証を行えるようにする
  • Cloud Object Storage サービスと Cloudant サービスからデータをフェッチする Mobile Foundation アダプターを作成する
  • ユーザーの地理位置情報 & カメラからの画像をキャプチャーして Google マップに表示する

フロー

ソーシャル・ログイン

以下のアーキテクチャー図は、ソーシャル・ログインのフローを示しています (ここでの説明では Google を例に用いていますが、Facebook や他のソーシャル・プロバイダーにも関連するフローです)。図に示されているように、ソーシャル・プロバイダーの呼び出しはクライアントによって開始されます。

ソーシャル認証を示すアーキテクチャー図

  1. ユーザーがモバイル・アプリを起動し、Google を使用してログインすることを選択します。
  2. Google Android SDK が Google ログイン REST サービスを呼び出します。
  3. REST サービスからアクセス・トークンが返されます。モバイル・アプリがスコープをソーシャル・ログインに設定してログイン API を呼び出し、資格情報 (ベンダー + トークン) を渡します。
  4. Mobile Foundation SDK が資格情報とスコープを Mobile Foundation Authorization Server API に送信します。Authorization API はマッピング先のセキュリティー・チェック・ソーシャル・ログインを呼び出して、資格情報を検証します。
  5. ソーシャル・ログイン・セキュリティー・チェックで、セキュリティー・チェック構成に含まれる Web クライアント ID を使用してトークンが検証されます。ソーシャル・ログインが認証済みユーザー・データを Authorization Server API に返します。
  6. Authorization Server API が認証済みユーザー・データを Mobile Foundation SDK に返します。Mobile Foundation SDK がその認証済みユーザー・データをアプリに渡します。
  7. ユーザー認証が成功すると、モバイル・アプリにホーム・ページが表示されます。モバイル・アプリは、Cloudant データベースからデータをフェッチしてそのデータをモバイル・アプリに返す Mobile Foundation アダプターを呼び出します。
  8. Cloudant からフェッチされたデータには、Cloud Object Storage 内に保管されている画像への参照が含まれています。モバイル・アプリは Mobile Foundation アダプターを呼び出し、Cloud Object Storage サービスとやり取りするための承認トークンを取得します。Mobile Foundation アダプターが Cloud Object Storage サービスのトークン・マネージャー・エンドポイントを呼び出して承認トークンを取得し、それをモバイル・アプリに渡します。
  9. モバイル・アプリが画像キャッシング・プラグインを初期化し、Object Storage から画像をフェッチします。
  10. モバイル・アプリに、Mobile Foundation アダプターから取得されたデータがアイテムのリストとして表示されます。
  11. ユーザーがリスト内のいずれかのアイテムをクリックすると、詳細が表示されます。詳細ページには、画像と、Google マップ内にマークされた地理位置情報が示されます。

LDAP ログイン

LDAP 認証を示すアーキテクチャー図

  1. ユーザーがモバイル・アプリを起動し、ログイン・ボタンをクリックします。
  2. モバイル・アプリが Mobile Foundation セキュリティー・チェック・アダプターを呼び出してユーザー資格情報を検証します。
  3. ユーザー資格情報を検証するために、セキュリティー・チェック・アダプターがセキュア・ゲートウェイを介してオンプレミスのエンタープライズ LDAP サーバーに接続します。
  4. エンタープライズ LDAP サーバーが資格情報を検証し、セキュア・ゲートウェイを介して Mobile Foundation サーバーにレスポンスを送信します。
  5. Mobile Foundation サーバーが認証済みユーザー・データを Mobile Foundation SDK に返します。Mobile Foundation SDK がその認証済みユーザー・データをアプリに渡します。
  6. ユーザー認証が成功すると、モバイル・アプリにホーム・ページが表示されます。モバイル・アプリは、Cloudant データベースからデータをフェッチしてそのデータをモバイル・アプリに返す Mobile Foundation アダプターを呼び出します。
  7. Cloudant からフェッチされたデータには、Cloud Object Storage 内に保管されている画像への参照が含まれています。モバイル・アプリは Mobile Foundation アダプターを呼び出し、Cloud Object Storage サービスとやり取りするための承認トークンを取得します。Mobile Foundation アダプターが Cloud Object Storage サービスのトークン・マネージャー・エンドポイントを呼び出して承認トークンを取得し、それをモバイル・アプリに渡します。
  8. モバイル・アプリが画像キャッシング・プラグインを初期化し、Object Storage から画像をフェッチします。
  9. モバイル・アプリに、Mobile Foundation アダプターから取得されたデータがアイテムのリストとして表示されます。
  10. ユーザーがリスト内のいずれかのアイテムをクリックすると、詳細が表示されます。詳細ページには、画像と、Google マップ内にマークされた地理位置情報が示されます。

手順

詳細な手順については、README ファイルを参照してください。