Oracle® Fusion MiddlewareOracle Adaptive Access Manager開発者ガイド 11gリリース2 (11.1.2.3.0) E67356-01 |
|
前 |
次 |
この章では、ネイティブ・モバイル・アプリケーションとOAAMとの統合について説明します。ブラウザに基づくモバイルWebアプリケーションや、Webビューを使用するモバイルWebアプリケーションは対象ではありません。
この章は、次の項で構成されています。
モバイル・アプリケーションのOAAMとの統合は、主にサーバー・サイドの統合に限定されています。統合開発者は、ネイティブ・モバイル・アプリケーションとビジネス・アプリケーション間でのデータのやりとりを担当します。
OAAMには現在、モバイル・アプリケーションに固有のソフトウェア開発キット(SDK)は用意されていません。
注意: Oracle Access Management Mobile and Social (Mobile and Social)を使用した場合は、ネイティブ・モバイル・アプリケーションとOAAMを別途統合する必要はありません。Mobile and Socialは、すでにOAAMと統合されています。詳細は、『Oracle Access Management管理者ガイド』を参照してください。 |
表17-1に、ネイティブ・モバイル・アプリケーションとOAAMとの統合に必要な高度な手順をリストします。
表17-1 モバイル・アプリケーション統合の概要
番号 | 手順 |
---|---|
1 |
モバイルの識別方法を決定します。デバイスを一意に識別できるデバイス固有の属性のリストを作成します。この章では、この情報をモバイル・デバイスのフィンガープリントと呼ぶことにします。 |
2 |
ビジネス・アプリケーション・データだけでなく、OAAM固有のデータを送受信できるクライアント・サーバー・インタフェースを設計および開発します。代表的なOAAM固有のデータとして、デバイス識別関連情報と、ユーザー・セッションの範囲におけるセッション/リクエストIDがあります。トランザクションを使用している場合は、トランザクション固有のデータも適宜渡す必要があります。 |
3 |
モバイル・デバイスからのデータの受信、OAAM APIからモバイル・デバイスへの必要なデータの送信を行うために、OAAM APIをコールするコードをビジネス・アプリケーションに作成します。 |
4 |
統合をテストして、エンドツーエンドで機能することを確認します。 |
以降の各項で、統合タスクについて詳しく説明します。
即時利用可能なOAAMには、次の属性で構成されるデフォルトのモバイル・デバイス・フィンガープリントが用意されています。
オペレーティング・システムのタイプ
ハードウェアIMEI番号
ハードウェアMACアドレス
これらの属性は、vcrypt.fingerprint.type.enum.native_mobile
という列挙要素を介して指定されます。OAAM管理コンソールの「プロパティ」エディタ・オプションを使用して、この列挙要素の属性を表示できます。
モバイル・フィンガープリントを変更するには、次の手順を実行します。
OAAM管理コンソールにログインします。
ナビゲーション・ペインで、「環境」ノードの下の「プロパティ」をダブルクリックします。プロパティ検索ページが表示されます。
「名前」
フィールドに「vcrypt.fingerprint.type.enum.native_mobile」と入力して、「検索」をクリックします。
「検索結果」セクションに、プロパティの属性が表示されます。
モバイル・デバイスを識別する属性がさらに必要な場合は、「名前」
フィールドに「vcrypt.fingerprint.type.enum.native_mobile.header_list」と入力して、「検索」をクリックします。
「検索結果」セクションでクリックしてプロパティを選択し、属性のリストを追加して「保存」をクリックします。
属性とその値のマッピングを指定するには、「名前」
フィールドに「vcrypt.fingerprint.type.enum.native_mobile.header_name_nv」と入力して、「検索」をクリックします。
「検索結果」セクションでクリックしてプロパティを選択し、マッピング属性を追加して「保存」をクリックします。
実際値と表示値のマッピングを指定するには、「名前」
フィールドに「vcrypt.fingerprint.type.enum.native_mobile.header_value_nv」と入力して、「検索」をクリックします。
「検索結果」セクションでクリックしてプロパティを選択し、表示する実際値を追加して「保存」をクリックします。
注意: 非常に動的な属性(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
特定のOAAM固有のデータをネイティブ・モバイル・アプリケーション(クライアント)とOAAM間で受け渡す必要があります。これを実現するには、クライアント・サーバー・インタフェースを設計、開発および拡張して、OAAM固有のデータを処理できるようにする必要があります。
次に、処理する必要のある代表的なOAAMデータを示します。
OAAMデバイス・フィンガープリント・データ
クライアント(ネイティブ・モバイル・アプリケーション)
すべてのデバイス識別関連データをサーバーに送信します。
サーバー
デバイス識別関連データを解析し、デバイス・フィンガープリントをフォーマット化します。
OAAMセッション作成APIコールの実行中に、デバイス・フィンガープリント・データを使用します。
OAAMデバイスCookie
クライアント(ネイティブ・モバイル・アプリケーション)
既存のOAAM Cookieをサーバーに渡します。
サーバーから返された新規のOAAM Cookieを永続化します。
Cookieを格納して、セキュアになるようにします。(盗難されることはありません)
サーバー
ネイティブ・モバイル・アプリケーション(クライアント)から既存のCookieを取得し、それをOAAMセッション作成APIで使用します。
新規のデバイスCookieをクライアントに渡します。
クライアント・アプリケーションのID/名前を渡します。
クライアントからモバイル・アプリケーション名を送信します。
サーバーは、OAAMセッション作成APIをコールするときに、Client Application
としてモバイル・アプリケーションを使用する必要があります。
OAAMセッション/リクエストID
クライアント(ネイティブ・モバイル・アプリケーション)
セッションが新規または既存のいずれであるかに基づいて、OAAMセッション/リクエストIDを新規に生成するか、既存のものを使用します。セッションの終了/期限切れになり次第、OAAMセッションIDを破棄するように注意する必要があります。
サーバー
OAAM APIをコールする際に、クライアントからのセッション/リクエストIDを適切に使用してください。
トランザクション・データの処理
クライアント(ネイティブ・モバイル・アプリケーション)
トランザクションと関連データのタイプの識別に必要なデータを送信します。
サーバー
クライアントからのデータに基づいて、トランザクション定義キーとトランザクション・コンテキスト・データを決定します。
トランザクション定義キーとトランザクション・コンテキスト・データを使用して、OAAMトランザクションAPIをコールします。
トランザクション関連チェックポイント/ルールをコールして、結果をクライアントに送信します。
この項では、即時利用可能なモバイル・デバイスの識別ポリシーの動作方法について説明します。
この項の「OAAM Mobile and Social統合ポスト - 認証セキュリティ」ポリシーで、次のルールをレビューします。
ブラック・リストに記載されたモバイル・デバイス
現在のログインがブラック・リスト・デバイスからのものかどうかを検出します。
ルール | ルールの条件およびパラメータの値 | 結果 |
---|---|---|
ブラック・リストに記載されたモバイル・デバイス | グループ内デバイス
グループ内 = TRUE デバイス・グループ = ブラック・リストに記載されたモバイル・デバイス |
アクション = OAAMブラック・リストに記載されたモバイル・デバイス
アラート = OAAMブラック・リストに記載されたモバイル・デバイスの使用 スコア = 1000 |
紛失または盗難デバイス
現在のデバイスが紛失または盗難とレポートされているかどうかを検出します。
ルール | ルールの条件およびパラメータの値 | 結果 |
---|---|---|
紛失または盗難デバイス | デバイス: グループ内デバイス
グループ内 = True グループ内デバイス = OAAM紛失または盗難デバイス |
アクション = OAAM紛失デバイス
アラート = OAAM紛失または盗難デバイス スコア = 1000 |
ジェイルブレークされたモバイル・デバイス
モバイル・デバイスからのコンテキスト・データに基づいて、現在のデバイスがジェイルブレークされたものかどうかを検出します。
ルール | ルールの条件およびパラメータの値 | 結果 |
---|---|---|
ジェイルブレークされたモバイル・デバイス | セッション: 文字列パラメータ値の確認
パラメータ・キー = isJailBroken 値 = true |
アクション = OAAMチャレンジ
アラート = OAAMジェイルブレークされたデバイス スコア = 500 |
多すぎるモバイル・デバイス
ユーザーのログイン元の未登録モバイル・デバイスが多すぎないかどうかを検出します。
ルール | ルールの条件およびパラメータの値 | 結果 |
---|---|---|
多すぎるモバイル・デバイス | デバイス: 登録済
登録済の場合の戻り値 = False ユーザー: 特定のタイプの登録済デバイス数の確認 デバイス数 = 次より大きい 比較するデバイス数 = 4 デバイス・タイプ = モバイル・デバイス |
アクション = OAAM多すぎるモバイル・デバイス
アラート = OAAM許可されている数を超えて使用されているモバイル・デバイス スコア = 1000 |
ハードウェア識別子は同一だがオペレーティング・システムは不一致
HW識別子が前に識別されたデバイスのハードウェア識別子と同じであっても、オペレーティング・システムが一致していないかどうかを検出します。
ルール | ルールの条件およびパラメータの値 | 結果 |
---|---|---|
ハードウェア識別子は同一だがオペレーティング・システムは不一致 | 事前条件: デバイス・リスク・スコアが599から601の間
デバイス: ブラウザ・ヘッダー・サブストリング サブストリング = "OIC" |
アクション = OAAMモバイル・デバイスOSの不一致
アラート = OAAM異なるOSのモバイル・デバイス スコア = 1000 |
モバイル・デバイスが登録されていません
デバイスが登録されているかどうかを検出します。
ルール | ルールの条件およびパラメータの値 | 結果 |
---|---|---|
モバイル・デバイスが登録されていません | デバイス: 登録済
登録済の場合の戻り値 = False |
アクション = OAAMチャレンジ
アラート = なし スコア = 300 |
追加/カスタム要件に関しては、別のポリシーを作成し、そのポリシーに必須ルールを追加することをお薦めします。
紛失または盗難デバイスを検出するには、紛失または盗難としてレポートされたデバイスIDを関連リストに移入する必要があります。
次のアプローチをお薦めします。
OAAM管理コンソールにログインします。
紛失または盗難としてレポートされたデバイスのデバイスIDを識別します。
これを行うには、ユーザー・セッションを検索し、デバイスの使用場所を確認できるセッションに絞り込みます。
関連デバイスのデバイスIDを書き留めます。
タイプDevices
のグループを検索します。
「OAAM紛失または盗難デバイス」グループを選択します。
このグループにデバイスIDを追加します。
このプロセスは、紛失/盗難デバイスの管理プロセスとほとんど同じです。デバイスIDが「OAAMブラック・リストに記載されたモバイル・デバイス」グループに追加される点が異なります。
即時利用可能な「OAAM Mobile and Social統合ポスト - 認証セキュリティ」ポリシーは、モバイル・デバイス固有の次の結果を返す場合があります。統合コードに関してこの結果を適切に処理し、ビジネス固有のアクションを実行する必要があります。
OAAMブラック・リストに記載されたモバイル・デバイス
OAAM紛失デバイス
OAAM多すぎるモバイル・デバイス
OAAMモバイル・デバイスのOS不一致
OAAMサーバーは、モバイル・フレンドリーにカスタマイズできます。ユーザーがモバイル・デバイスでWebページを表示できるように、ベース・モバイルCSS(外部スタイルシート)ファイルが用意されています。OAAMでサポートされるデバイスで検索されたブラウザと、各デバイスのネイティブのルック・アンド・フィールが大きく異なるため、OAAMサーバーではモバイルCSSに対するカスタム・オーバーライドをサポートしています。汎用のモバイルCSSに加えて、デバイス固有のCSSを定義できるため、よりきめの細かいカスタマイズが可能です。モバイル・デバイスには、iPhone、iPad、Android、Windows Phone、およびBlackberryがあります。
デバイス固有のCSSファイルを実装するには、次の手順を実行します。
外部CSSファイルを作成します。
たとえば、customAndroid.css
、customIPhone.css
、customBlackBerry.css
、customWindows7phone.css
などです。
このCSSテキスト・ファイル内に、すべてのスタイル・ルールを定義します。たとえば、すべての本体テキストをイタリックにするスタイルを追加します。
body{ font-style:italic }
次の参照を、oaam_custom.properties
にあるカスタム・ファイルに追加します。
bharosa.uio.default.custom.mobile.css=/css/customMobile.css
デバイス名をプロパティに含めることによってモバイル・デバイスごとにカスタム・モバイルCSSを追加して、次の処理ができるようにします。
bharosa.uio.default.custom.mobile.device.css=/css/customdevice.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
OAAM拡張ライブラリにCSSファイルを追加します。
カスタム・モバイルCSSファイルの包含は、プロパティの定義と、CSSファイルがOAAM拡張ライブラリに含まれているかどうかに依存します。
デフォルトの包含順序は次のとおりです。
製品CSS
カスタムCSS(定義されている場合)
製品の右から左のCSS(右から左のロケールの場合)
カスタムの右から左のCSS(右から左のロケールであり、このファイルが定義されている場合)
製品モバイルCSS(モバイル・デバイスの場合)
カスタム・モバイルCSS(モバイル・デバイスであり、このファイルが定義されている場合)
製品のモバイル・デバイス固有のCSS(デバイス用に定義されている場合)
カスタムのモバイル・デバイス固有のCSS(デバイス用に定義されている場合)
ファイルで同じ属性が定義されている場合、前のファイルは後続のファイルによってオーバーライドされます。
カスタムCSSファイルに加えて、OAAMの即時利用可能なポリシーでは、モバイル・デバイスのユーザー向けに質問登録ページのHTMLバージョンが用意されています。
ユーザーが新規のセキュリティ質問を登録するよう要求され、ユーザーがモバイル・デバイスのWebブラウザからアプリケーションにアクセスしようとしているときに、認証パッド・ポリシーによってHTML
アクションが返されます。
ユーザーが新規のセキュリティ質問を登録するよう要求され、ユーザーがモバイル・デバイス以外のWebブラウザからアプリケーションにアクセスしようとしているときに、認証パッド・ポリシーによってQuestion Pad
アクションが返されます。