ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Adaptive Access Manager開発者ガイド
11gリリース2(11.1.2)
B71697-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

17 モバイル・アプリケーションとOAAMとの統合

この章では、ネイティブ・モバイル・アプリケーションとOAAMとの統合について説明します。ブラウザに基づくモバイルWebアプリケーションや、Webビューを使用するモバイルWebアプリケーションは対象ではありません。

この章は、次の項で構成されています。

17.1 モバイル・アプリケーションとOAAMとの統合の概要

モバイル・アプリケーションのOAAMとの統合は、主にサーバー・サイドの統合に限定されています。統合開発者は、ネイティブ・モバイル・アプリケーションとビジネス・アプリケーション間でのデータのやりとりを担当します。

OAAMには現在、モバイル・アプリケーションに固有のソフトウェア開発キット(SDK)は用意されていません。


注意:

Oracle Access Management Mobile and Social(Mobile and Social)を使用した場合は、ネイティブ・モバイル・アプリケーションとOAAMを別途統合する必要はありません。Mobile and Socialは、すでにOAAMと統合されています。詳細は、『Oracle Fusion Middleware Oracle Access Management管理者ガイド』を参照してください。


表17-1に、ネイティブ・モバイル・アプリケーションとOAAMとの統合に必要な高度な手順をリストします。

表17-1 モバイル・アプリケーション統合の概要

番号 手順

1

モバイルの識別方法を決定します。デバイスを一意に識別できるデバイス固有の属性のリストを作成します。この章では、この情報をモバイル・デバイスのフィンガープリントと呼ぶことにします。

2

ビジネス・アプリケーション・データだけでなく、OAAM固有のデータを送受信できるクライアント・サーバー・インタフェースを設計および開発します。代表的なOAAM固有のデータとして、デバイス識別関連情報と、ユーザー・セッションの範囲におけるセッション/リクエストIDがあります。トランザクションを使用している場合は、トランザクション固有のデータも適宜渡す必要があります。

3

モバイル・デバイスからのデータの受信、OAAM APIからモバイル・デバイスへの必要なデータの送信を行うために、OAAM APIをコールするコードをビジネス・アプリケーションに作成します。

4

統合をテストして、エンドツーエンドで機能することを確認します。


以降の各項で、統合タスクについて詳しく説明します。

17.2 モバイル・デバイス・フィンガープリントの決定

即時利用可能なOAAMには、次の属性で構成されるデフォルトのモバイル・デバイス・フィンガープリントが用意されています。

これらの属性は、vcrypt.fingerprint.type.enum.native_mobileという列挙要素を介して指定されます。OAAM管理コンソールの「プロパティ」エディタ・オプションを使用して、この列挙要素の属性を表示できます。

モバイル・フィンガープリントを変更するには、次の手順を実行します。

  1. OAAM管理コンソールにログインします。

  2. ナビゲーション・ペインで、「環境」ノードの下の「プロパティ」をダブルクリックします。プロパティ検索ページが表示されます。

  3. 「名前」フィールドに「vcrypt.fingerprint.type.enum.native_mobile」と入力して、「検索」をクリックします。

    「検索結果」セクションに、プロパティの属性が表示されます。

  4. モバイル・デバイスを識別する属性がさらに必要な場合は、「名前」フィールドに「vcrypt.fingerprint.type.enum.native_mobile.header_list」と入力して、「検索」をクリックします。

  5. 「検索結果」セクションでクリックしてプロパティを選択し、属性のリストを追加して「保存」をクリックします。

  6. 属性とその値のマッピングを指定するには、「名前」フィールドに「vcrypt.fingerprint.type.enum.native_mobile.header_name_nv」と入力して、「検索」をクリックします。

  7. 「検索結果」セクションでクリックしてプロパティを選択し、マッピング属性を追加して「保存」をクリックします。

  8. 実際値と表示値のマッピングを指定するには、「名前」フィールドに「vcrypt.fingerprint.type.enum.native_mobile.header_value_nv」と入力して、「検索」をクリックします。

  9. 「検索結果」セクションでクリックしてプロパティを選択し、表示する実際値を追加して「保存」をクリックします。

注意: 非常に動的な属性(IPアドレスなど)を、モバイル・デバイス・フィンガープリントの属性として追加しないでください。デバイスを一意に識別できる属性のみを追加してください。

次の例は、モバイル・フィンガープリント列挙を示しています。

vcrypt.fingerprint.type.enum.native_mobile=900
vcrypt.fingerprint.type.enum.native_mobile.name=Native Mobile
vcrypt.fingerprint.type.enum.native_mobile.description=Native Mobile implementation using Mobile and Social
vcrypt.fingerprint.type.enum.native_mobile.processor=com.bharosa.uio.processor.device.NativeMobileDeviceIdentificationProcessor
vcrypt.fingerprint.type.enum.native_mobile.header_list=os.type,os.version,hw.imei,hw.mac_addr
vcrypt.fingerprint.type.enum.native_mobile.header_name_nv=os.type,Operating System Type,os.version,Operating System Version,hw.imei,Hardware IMEI Number,hw.mac_addr,Hardware Mac Address
vcrypt.fingerprint.type.enum.native_mobile.header_value_nv=t,true,f,false

17.3 OAAM固有のデータを処理するためのクライアント・サーバー・インタフェースの開発/拡張

特定のOAAM固有のデータをネイティブ・モバイル・アプリケーション(クライアント)とOAAM間で受け渡す必要があります。これを実現するには、クライアント・サーバー・インタフェースを設計、開発および拡張して、OAAM固有のデータを処理できるようにする必要があります。

次に、処理する必要のある代表的なOAAMデータを示します。

OAAMデバイス・フィンガープリント・データ

OAAMデバイスCookie

クライアント・アプリケーションのID/名前を渡します。

OAAMセッション/リクエストID

トランザクション・データの処理

17.4 即時利用可能なモバイル・デバイスの識別ポリシー

この項では、即時利用可能なモバイル・デバイスの識別ポリシーの動作方法について説明します。

17.4.1 モバイルCookieによるデバイスの識別

次の条件が満たされる場合、モバイルCookieはデバイスを識別します。

  • モバイルCookieが有効である

  • 既知のヘッダーとの不一致がない

その場合、スコアはゼロ(0)になります。

17.4.2 新規デバイス

次のいずれかの条件が満たされる場合、デバイスは新規デバイスとして扱われます。

  • モバイルCookieは有効だが、既知のヘッダーが一致しない

  • モバイルCookieが無効である(または失効している)

  • 最初の2つが両方ともtrueの場合は、モバイル・デバイス・フィンガープリントを使用してデバイスを識別できるかどうか確認するため、バックグラウンド・チェックが実行されます。

17.5 即時利用可能なセキュリティ・ポリシーのレビューと必要に応じたカスタム・ポリシーの開発

モバイル・デバイスに特化したOAAM認証後セキュリティ・ポリシーで、次のルールをレビューします。

紛失または盗難デバイス

現在のデバイスが紛失または盗難とレポートされているかどうかを検出します。

ルール ルールの条件およびパラメータの値 結果

紛失または盗難デバイス

デバイス: デバイスが特定のタイプであるかどうかの確認

デバイス・タイプ = モバイル・デバイス

戻り値 = True

デバイス: グループ内デバイス

グループ内 = True

グループ内デバイス = OAAM紛失または盗難デバイス

アクション = OAAM紛失デバイス

アラート = OAAM紛失または盗難デバイス

スコア = 1000


ジェイルブレークされたモバイル・デバイス

モバイル・デバイスからのコンテキスト・データに基づいて、現在のデバイスがジェイルブレークされたものかどうかを検出します。

ルール ルールの条件およびパラメータの値 結果

ジェイルブレークされたモバイル・デバイス

デバイス: デバイスが特定のタイプであるかどうかの確認

デバイス・タイプ = モバイル・デバイス

戻り値 = True

セッション: 文字列パラメータ値の確認

パラメータ・キー = isJailBroken

値 = true

アクション = OAAMチャレンジ

アラート = OAAMジェイルブレークされたデバイス

スコア = 500


多すぎるモバイル・デバイス

ユーザーのログイン元の未登録モバイル・デバイスが多すぎないかどうかを検出します。

ルール ルールの条件およびパラメータの値 結果

多すぎるモバイル・デバイス

デバイス: デバイスが特定のタイプであるかどうかの確認

デバイス・タイプ = モバイル・デバイス

戻り値 = True

デバイス: 登録済

登録済の場合の戻り値 = False

ユーザー: 特定のタイプの登録済デバイス数の確認

デバイス数 = 次より大きい

比較するデバイス数 = 4

デバイス・タイプ = モバイル・デバイス

アクション = OAAM多すぎるモバイル・デバイス

アラート = OAAM許可されている数を超えて使用されているモバイル・デバイス

スコア = 1000


ブラック・リストに記載されたモバイル・デバイス

現在のログインがブラック・リスト・デバイスからのものかどうかを検出します。

ハードウェア識別子は同一だがオペレーティング・システムは不一致

HW識別子が前に識別されたデバイスのハードウェア識別子と同じであっても、オペレーティング・システムが一致していないかどうかを検出します。

ルール ルールの条件およびパラメータの値 結果

ハードウェア識別子は同一だがオペレーティング・システムは不一致

事前条件: デバイス・リスク・スコアが599から601の間

デバイス: デバイスが特定のタイプであるかどうかの確認

デバイス・タイプ = モバイル・デバイス

戻り値 = True

デバイス: ブラウザ・ヘッダー・サブストリング

サブストリング = "OIC"

アクション = OAAMモバイル・デバイスOSの不一致

アラート = OAAM異なるOSのモバイル・デバイス

スコア = 1000


追加/カスタム要件に関しては、別のポリシーを作成し、そのポリシーに必須ルールを追加することをお薦めします。

17.6 紛失/盗難デバイスの管理プロセス

紛失または盗難デバイスを検出するには、紛失または盗難としてレポートされたデバイスIDを関連リストに移入する必要があります。

次のアプローチをお薦めします。

  1. OAAM管理コンソールにログインします。

  2. 紛失または盗難としてレポートされたデバイスのデバイスIDを識別します。

    1. これを行うには、ユーザー・セッションを検索し、デバイスの使用場所を確認できるセッションに絞り込みます。

    2. 関連デバイスのデバイスIDを書き留めます。

  3. タイプDevicesのグループを検索します。

  4. 「OAAM紛失または盗難デバイス」グループを選択します。

  5. このグループにデバイスIDを追加します。

17.7 ブラック・リスト上のデバイスの管理プロセス

このプロセスは、紛失/盗難デバイスの管理プロセスとほとんど同じです。デバイスIDが「OAAMブラック・リストに記載されたモバイル・デバイス」グループに追加される点が異なります。

17.8 モバイル固有のルール結果の処理

即時利用可能なOAAM認証後ポリシーでは、モバイル・デバイス固有の次の結果が返されることもあります。統合コードに関してこの結果を適切に処理し、ビジネス固有のアクションを実行する必要があります。

17.9 モバイル・デバイスのユーザー・インタフェースのカスタマイズ

OAAMサーバーは、モバイル・フレンドリーにカスタマイズできます。ユーザーがモバイル・デバイスでWebページを表示できるように、ベース・モバイルCSS(外部スタイルシート)ファイルが用意されています。OAAMでサポートされるデバイスで検索されたブラウザと、各デバイスのネイティブのルック・アンド・フィールが大きく異なるため、OAAMサーバーではモバイルCSSに対するカスタム・オーバーライドをサポートしています。汎用のモバイルCSSに加えて、デバイス固有のCSSを定義できるため、よりきめの細かいカスタマイズが可能です。モバイル・デバイスには、iPhone、iPad、Android、Windows Phone、およびBlackberryがあります。

デバイス固有のCSSファイルを実装するには、次の手順を実行します。

  1. 外部CSSファイルを作成します。

    たとえば、customAndroid.csscustomIPhone.csscustomBlackBerry.csscustomWindows7phone.cssなどです。

  2. このCSSテキスト・ファイル内に、すべてのスタイル・ルールを定義します。たとえば、すべての本体テキストをイタリックにするスタイルを追加します。

    body{
    font-style:italic
    }
    
  3. 次の参照を、oaam_custom.propertiesにあるカスタム・ファイルに追加します。

    bharosa.uio.default.custom.mobile.css=/css/customMobile.css
    

    デバイス名をプロパティに含めることによってモバイル・デバイスごとにカスタム・モバイルCSSを追加して、次の処理ができるようにします。

    bharosa.uio.default.custom.mobile.<device>.css=/css/custom<device>.css
    

    <device>として、iPhone、Blackberry、Android、Windows Phoneなど、任意の定義済デバイスが指定できます。

    bharosa.uio.default.custom.mobile.android.css=/css/customAndroid.css
    bharosa.uio.default.custom.mobile.iphone.css=/css/customIPhone.css
    bharosa.uio.default.custom.mobile.blackberry.css=/css/customBlackBerry.css
    bharosa.uio.default.custom.mobile.windowsphone7.css=/css/customWindowsPhone7.css
    
  4. OAAM拡張ライブラリにCSSファイルを追加します。

17.10 カスタム・モバイルCSSファイルの包含

カスタム・モバイルCSSファイルの包含は、プロパティの定義と、CSSファイルがOAAM拡張ライブラリに含まれているかどうかに依存します。

デフォルトの包含順序は次のとおりです。

  1. 製品CSS

  2. カスタムCSS(定義されている場合)

  3. 製品の右から左のCSS(右から左のロケールの場合)

  4. カスタムの右から左のCSS(右から左のロケールであり、このファイルが定義されている場合)

  5. 製品モバイルCSS(モバイル・デバイスの場合)

  6. カスタム・モバイルCSS(モバイル・デバイスであり、このファイルが定義されている場合)

  7. 製品のモバイル・デバイス固有のCSS(デバイス用に定義されている場合)

  8. カスタムのモバイル・デバイス固有のCSS(デバイス用に定義されている場合)

ファイルで同じ属性が定義されている場合、前のファイルは後続のファイルによってオーバーライドされます。

カスタムCSSファイルに加えて、OAAMの即時利用可能なポリシーでは、モバイル・デバイスのユーザー向けに質問登録ページのHTMLバージョンが用意されています。