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

前
 
次
 

4 OAAMとJavaアプリケーションとのネイティブ統合

Oracle Adaptive Access Manager Server Java APIを使用して、JavaアプリケーションをOracle Adaptive Access Manager Serverに統合できます。この統合は、Java 1.4またはそれ以降で作成されたアプリケーションでサポートされています。

この章では、次の内容を説明します。

Java API統合の例を示す最新OAAMサンプル・アプリケーションは、Oracle Technology Networkからダウンロードできます。

4.1 Oracle Adaptive Access Managerの共有ライブラリについて

Oracle Adaptive Access Managerの共有ライブラリは、Oracle Adaptive Access Managerとの統合に対応するJava SDKです。これは、統合されたアプリケーションがデプロイされるOracle WebLogic Serverインスタンスにデプロイし、ターゲットとする必要があります。Oracle WebLogic Serverインスタンスが、OAAMがデプロイされているのと同じWebLogic Serverドメインの一部であることを確認してください。

4.1.1 統合プロセスの概要

統合プロセスの高レベルの手順は次のとおりです。

  1. Weblogic Webアプリケーション(WAR)またはエンタープライズ・アプリケーション(ear)を作成します。

  2. OAAM SDK共有ライブラリ(oracle.oaam.libs)への参照をWebLogicデプロイメント記述子に追加します。

  3. OAAM APIをコールするアプリケーションを実装します。

  4. アプリケーションのJARファイルとその他のファイルを追加します。

  5. アプリケーションをパッケージ化し、デプロイしてテストします。

4.1.2 WebアプリケーションでのOracle Adaptive Access Managerの共有ライブラリの使用

OAAM Webアプリケーションの共有ライブラリIAM_HOME/oaam/oaam_libs/war/oaam_native_lib.warをライブラリとしてデプロイします。

Oracle Adaptive Access Managerの共有ライブラリをWebアプリケーションで使用するには、WebLogicデプロイメント記述子ファイルweblogic.xmlに次のエントリを追加して、その共有ライブラリを参照する必要があります。

<library-ref>
       <library-name>oracle.oaam.libs</library-name>
</library-ref>

4.1.3 エンタープライズ・アプリケーションでのOracle Adaptive Access Managerの共有ライブラリの使用

OAAMエンタープライズ・アプリケーションの共有ライブラリ IAM_HOME/oaam/oaam_libs/ear/oaam_native_lib.earをライブラリとしてデプロイします。

Oracle Adaptive Access Managerの共有ライブラリをエンタープライズ・アプリケーションで使用するには、WebLogicデプロイメント記述子ファイルweblogic-application.xmlに次のエントリを追加して、その共有ライブラリを参照する必要があります。

<library-ref>
       <library-name>oracle.oaam.libs</library-name>
</library-ref>

4.1.4 Oracle Adaptive Access Managerのプロパティのカスタマイズ/拡張/オーバーライド

Oracle Adaptive Access Managerのプロパティをオーバーライドしたり、Oracle Adaptive Access Managerの列挙を拡張するには、これらのプロパティと列挙をoaam_custom.propertiesに追加して、そのファイルをネイティブWebアプリケーションのWEB-INF\classesディレクトリに配置します。

Oracle Adaptive Access Managerのプロパティのカスタマイズ、拡張またはオーバーライドの手順については、第7章「OAAM拡張共有ライブラリの使用によるOAAMのカスタマイズ」を参照してください。

4.2 OAAM Java In-Proc統合

この項では、In-Procメソッドを使用してOAAMを統合する方法について説明します。

  1. OAAM共有ライブラリoracle.oaam.libsへの参照が設定済であることを確認してください。

    Oracle Adaptive Access Managerの共有ライブラリをWebアプリケーションで使用するには、WebLogicデプロイメント記述子ファイルweblogic.xmlに次のエントリを追加して、その共有ライブラリを参照する必要があります。

    <library-ref>
           <library-name>oracle.oaam.libs</library-name>
    </library-ref>
    

    Oracle Adaptive Access Managerの共有ライブラリをエンタープライズ・アプリケーションで使用するには、WebLogicデプロイメント記述子ファイルweblogic-application.xmlに次のエントリを追加して、その共有ライブラリを参照する必要があります。

    <library-ref>
           <library-name>oracle.oaam.libs</library-name>
    </library-ref>
    
  2. Oracle Adaptive Access Managerのプロパティをオーバーライドしたり、Oracle Adaptive Access Managerの列挙を拡張するには、これらのプロパティと列挙をoaam_custom.propertiesに追加して、そのファイルをネイティブWebアプリケーションのWEB-INF\classesディレクトリに配置します。

  3. jdbc/OAAM_SERVER_DB_DSというJNDI名のOAAMデータソースを設定して、それをOAAMデータベースにポイントします。

4.3 OAAM SOAP統合

この項では、SOAPメソッドを使用してOAAMを統合する方法について説明します。SOAPサービス・ラッパーAPIの統合では、アプリケーションはWebサービスを使用してOracle Adaptive Access Managerと通信します。

初期設定の状態のOAAMでは、WebサービスがURL/oaam_server/servicesに公開されています。OAAM 11g Release 2 (11.1.2.0.0)以降、OAAM Webサービスを保護するためのデフォルトのメカニズムでは、Oracle Web Services Manager (OWSM)ポリシーを使用します。この項では、認証(ユーザー名とパスワード・リクエストを使用するHTTP Basic認証)および認可(構成済のユーザー・グループにおけるユーザーのメンバーシップ)のOWSMポリシーの構成について説明します。認証では、渡されたユーザー資格証明が正しいかどうかがチェックされ、認可では、グループにおけるユーザーのメンバーシップ(WebLogic組込みユーザー・ストア内のユーザー/グループなど)に基づいて、リクエストされたリソースに対してユーザーがアクセスを許可されているかどうかがチェックされます。Oracle Web Services Manager (OWSM)ポリシーはOracle Enterprise Manager Fusion Middleware Controlを使用して、SOAP認証と認可を管理します。

OAAM Webサービスを保護するために実行する必要があるタスクの概要を次に示します。

表4-1 OAAM Webアクセスの保護

番号 タスク 情報

1

Webサービスの認証を有効にします。

HTTP Basic認証を/oaam_server/servicesに設定するためにOracle Web Services Manager (OWSM)のポリシーをセットアップします。

OAAM Webサービスは、Oracle Web Services Manager (OWSM)でポリシーoracle/wss_http_token_service_policyを使用することによって保護できます。wss_http_token_service_policyポリシーは認証を強制し、HTTPヘッダーの資格証明を使用してユーザーを認証します。SOAPリクエストは、構成済レルム(WebLogic組込みユーザー・ストアのユーザー)に対して認証(HTTP Basic認証)されます。

詳細は、第4.3.1項「Webサービスの認証」を参照してください。

2

有効なユーザー名とパスワードでユーザーを作成して、OAAM Webサービスにアクセスできるように構成するグループに割り当てます。

ユーザー名とパスワードを使用して、SOAP認証が実装されます。Webサービス/SOAPクライアントは、OAAM Webサービスとの正常な通信のために、ユーザー名とパスワードを送信する必要があります。

このユーザー名とパスワードは、アプリケーション・サーバーにアクセスできるユーザーに関連付けられている必要があります。そのユーザーがWebサービス上で操作を実行する権限を持つようにするには、そのユーザーを、認可ポリシーに関連付けられたグループに含める必要があります。

詳細は、第4.3.2項「ユーザーとグループの作成」を参照してください。

3

Webサービス認可を構成します。

Oracle Web Services Manager (OWSM)ポリシーoracle/binding_authorization_permitall_policyを使用すると、OAAM Webサービスの認可を構成できます。binding_authorization_permitall_policyポリシーでは、SOAPバインド・レベルで認証されたユーザーに基づいて、リクエストに対して簡単な権限ベースの認可が実行されます。このポリシーにより、ユーザーが操作の実行権限を確実に持つようになります。このポリシーは、ユーザーが作成されている認証ポリシーの後に続ける必要があり、Webサービス・エンドポイントに添付できます。

詳細は、第4.3.3項「Webサービス認可の構成」を参照してください。

4

Webサービスにセキュリティを設定します。

Webサービス/SOAPクライアントは、OAAM Webサービスとの正常な通信のために、ユーザー名とパスワードを送信する必要があります。

セキュリティのために、パスワードはキーストアに格納される必要があります。

注意: この手順は、OAAMサーバーでSOAP認証が無効の場合は不要です。

詳細は、第4.3.4項「SOAPユーザー・パスワードを保護するクライアント側のキーストアの設定」を参照してください。

5

他のSOAPプロパティを構成します。

詳細は、第4.3.5項「SOAP関連プロパティのoaam_custom.propertiesへの設定」を参照してください。


4.3.1 Webサービスの認証

OAAM Webサービスは、Oracle Web Services Manager (OWSM)でポリシーoracle/wss_http_token_service_policyを使用することによって保護できます。wss_http_token_service_policyポリシーは認証を強制し、HTTPヘッダーの資格証明を使用してユーザーを認証します。SOAPリクエストは、構成済レルム(WebLogic組込みユーザー・ストアのユーザー)に対して認証(HTTP Basic認証)されます。

HTTP Basic認証を/oaam_server/servicesに設定するためにOracle Web Services Manager (OWSM)のポリシーをセットアップするには、次の手順を実行します。

  1. URLhttp://weblogic-admin-hostname:port/emを使用して、Oracle Enterprise Manager Fusion Middleware Controlにログインします。

  2. weblogic_domainでドメインを選択し、oaam_server_server1を選択して右クリックしてから「Webサービス」オプションを選択します。

  3. 「ポリシーのアタッチ」をクリックします。

  4. OAAM Webサービスに対応するすべての行を選択して、「次へ」ボタンをクリックします。

  5. SOAP認証を有効にするには、次の手順を実行します。

    1. oracle/wss_http_token_service_policyを選択します。

  6. SOAP認証を無効にするには、次の手順を実行します。

    1. oracle/no_authentication_service_policyおよびoracle/no_authorization_service_policyを選択します。

    2. 「Next」ボタンをクリックします。

      サーバーでSOAP Webサービス認証を無効にすると(デフォルトでは有効になっている)、クライアントでは、認証されていなくてもWebサービスを使用できます。

  7. 次のページで「アタッチ」ボタンをクリックします。

  8. 必要に応じてOAAMサーバーを再起動します。

4.3.2 ユーザーとグループの作成

この項で認証構成を実行すると、OAAM Webサービスは構成済レルムにあるすべての有効なユーザー名/パスワードからアクセスできるようになります。たとえば、認証に合格できるすべてのユーザー資格証明がOAAM Webサービスにアクセスできます。

ユーザー名とパスワードを使用して、SOAP認証が実装されます。このユーザー名とパスワードは、アプリケーション・サーバーにアクセスできるユーザーに関連付けられている必要があります。そのユーザーがWebサービス上で操作を実行する権限を持つようにするには、そのユーザーをOAAM Webサービスにアクセスできるグループに追加する必要があります。

この項では、次の手順について説明します。

  • グループを作成します。グループは、後で認可ポリシーに関連付けます。このドキュメントでは、URL /oaam_server/servicesにアクセスできるグループの例として、OAAM_WebServices_Groupを使用します。

  • OAAM_WebServices_Groupに追加するユーザーを作成します。

WebLogicデプロイメントでは、このSOAPユーザーをWebLogicセキュリティ・レルム内で格納して管理できます。

OAAMクライアントは、次のoaam_custom.propertiesプロパティを使用してWebサービスを起動するときに、このユーザー名とパスワードを使用するように構成されています。

vcrypt.soap.auth.keystorePassword - Base64 encoded Password used to open the
   system_soap.keystore
vcrypt.soap.auth.aliasPassword - Base64 encoded Password used to retrieve the key 
   stored in the keystore
vcrypt.soap.auth.username - Username of the SOAP user
vcrypt.soap.auth.keystoreFile - 
   Filename of the keystore (should be system_soap.keystore)

ユーザーとグループを作成するには、次の手順を実行します。

  1. WebLogicコンソールを使用して、構成済レルム内にグループを作成します。このグループには、グループに認可ポリシーを関連付けるとOAAM Webサービスにアクセスできるようになるユーザーが含まれます。この例では、OAAM_WebServices_Groupグループが作成されます。

    図4-1 ユーザー・グループの作成

    図4-1の説明が続きます
    「図4-1 ユーザー・グループの作成」の説明

  2. ユーザーを識別するための詳細およびユーザーのユーザー名とパスワードを指定してユーザーoaamsoap1を作成します。

    図4-2 ユーザーの作成およびユーザーとグループの関連付け

    図4-2の説明が続きます
    「図4-2 ユーザーの作成およびユーザーとグループの関連付け」の説明

  3. oaamsoap1のグループ・メンバーシップを構成し、ユーザーoaamsoap1をグループOAAM_WebServices_Groupと関連付けます。

    図4-3 ユーザーのグループ・メンバーシップの構成

    図4-3の説明が続きます
    「図4-3 ユーザーのグループ・メンバーシップの構成」の説明

4.3.3 Webサービス認可の構成

Oracle Web Services Manager (OWSM)ポリシーoracle/binding_authorization_permitall_policyを使用すると、OAAM Webサービスの認可を構成できます。binding_authorization_permitall_policyポリシーでは、SOAPバインド・レベルで認証されたユーザーに基づいて、リクエストに対して簡単な権限ベースの認可が実行されます。このポリシーにより、ユーザーが操作の実行権限を確実に持つようになります。このポリシーは、ユーザーが作成されている認証ポリシーの後に続ける必要があり、Webサービス・エンドポイントに添付できます。

  1. OAAM_WebServices_Groupグループを認可ポリシーと関連付けます。グループは第4.3.2項「ユーザーとグループの作成」で作成されています。

    1. URLを使用して、Oracle Enterprise Manager Fusion Middleware Controlにログインします。

      http://weblogic-admin-hostname:port/em
      
    2. WebLogicドメインを展開します。

    3. OAAMサーバー、Webサービス、およびポリシーをホストしているドメインを右クリックします。

    4. oracle/binding_authorization_permitall_policyを選択します。

    5. 「編集」をクリックして、「設定」タブをクリックします。

    6. 「認証設定」から「選択したロール」を選択します。

    7. 「追加」(プラス記号)をクリックして、OAAM_WebServices_Groupグループを「追加対象として選択したロール」リストに移動し、「OK」をクリックします。グループは第4.3.2項「ユーザーとグループの作成」で作成されています。

      図4-4 追加したユーザー・ロール

      図4-4の説明が続きます
      「図4-4 追加したユーザー・ロール」の説明

    8. 「保存」をクリックしてポリシーを保存します。

      図4-5 追加したロールと保存したポリシー

      図4-5の説明が続きます
      「図4-5 追加したロールと保存したポリシー」の説明

  2. 前述のポリシー構成が予想どおりに動作することを確認するには、プロパティactive.protocolremoteに設定します。OAAMサーバーをホストするドメインに移動して、「Webサービス」「プラットフォーム・ポリシー構成」、および「ポリシー・アクセッサ・プロパティ」を右クリックすると、プロパティのこの値をオンにできます。

  3. 認可ポリシーをWebサービス・エンドポイントに添付します。

    注意: OAAMサーバーによってEnterprise Manager上に公開されているWebサービス・エンドポイントのリストを取得するには、Fusion Middleware Controlの「Identity and Access」に移動します。OAAMを展開してから、oaam_serverを展開し、「Webサービス」を右クリックします。

    1. URLを使用して、Oracle Enterprise Manager Fusion Middleware Controlにログインします。

      http://weblogic-admin-hostname:port/em
      
    2. weblogic_domainでドメインを選択し、oaam_server_server1を選択して右クリックしてから「Webサービス」オプションを選択します。

    3. 「ポリシーのアタッチ」をクリックします。

    4. OAAM Webサービスに対応するすべての行を選択して、「次へ」ボタンをクリックします。

    5. oracle/binding_authorization_permitall_policyを選択します。

    6. 「Next」ボタンをクリックします。

    7. 次のページで「アタッチ」ボタンをクリックします。

    8. 必要に応じてOAAMサーバーを再起動します。

4.3.4 SOAPユーザー・パスワードを保護するクライアント側のキーストアの設定

Webサービス/SOAPクライアントは、OAAM Webサービスとの正常な通信のために、ユーザー名とパスワードを送信する必要があります。

セキュリティのために、パスワードはキーストアに格納される必要があります。

ネイティブ・クライアントWebサービスのセキュリティを設定するには:

  1. $ORACLE_HOME/oaam/cliディレクトリで、ファイル(soap_key.fileなど)を作成し、それにHTTP認証ユーザー・パスワードを入力します。パスワードは、OAAM Webサービス・グループのロール/グループに追加されたユーザーのパスワードです。第4.3.2項「ユーザーとグループの作成」を参照してください。

  2. sample.config_3des_input.propertiessoap_3des_input.propertiesにコピーします。

    cp sample.config_3des_input.properties soap_3des_input.properties
    
  3. soap_3des_input.propertiesをキーストア・パスワード、別名パスワードおよびパスワード・ファイルで更新します。

    #This is the password for opening the keystore. 
    keystorepasswd= 
     
    #This is the password reading alias (key) in the keystore. For example, #Welcome1
    keystorealiaspasswd= 
     
    #File containing from key. Please note, keys in AES could be binary.
    #Also note algorithms like 3DES require minimum 24 characters in the key 
    #keyFile=soap_key.file 
    keyFile=
    
    keystorefilename=system_soap.keystore
    keystorealias=vcrypt.soap.call.passwd
    
  4. ORACLE_MW_HOMEおよびJAVA_HOMEとソースsetCliEnv.shを設定します。

  5. キーストアを生成します。

    • Unix/Linuxの場合は、次を実行します。

      $JAVA_EXE -Djava.security.policy=conf/jmx.policy -classpath 
      $CLSPTH com.bharosa.vcrypt.common.util.KeyStoreUtil
      updateOrCreateKeyStore readFromFile=soap_3des_input.properties
      
    • Windowsの場合は、次を実行します。

      genkeystore.cmd soap_3des_input.properties
      

    KeyStoreコマンドが成功した場合は、次のような出力が表示されます。

    updateOrCreateKeyStore done!
    Keystore file:system_soap.keystore,algorithm=DESede
    KeyStore Password=ZG92ZTEyMzQ=
    Alias Password=ZG92ZTEyMw==
    
  6. キーストア・パスワードと画面に出力された別名パスワードを書き留めます。これらをoaam_custom.propertiesに追加する必要があります。

  7. 次のプロパティをエンコードされたパスワード(手順5)および認証ユーザー名とともにoaam_custom.propertiesに追加します。

    OAAMクライアントは、次のoaam_custom.propertiesプロパティを使用してWebサービスを起動するときに、このユーザー名とパスワードを使用するように構成されています。

    vcrypt.soap.auth.keystorePassword - Base64 encoded keystore password used to open the system_soap.keystore
    vcrypt.soap.auth.aliasPassword - Base64 encoded password to the alias used to retrieve the key stored in the keystore
    vcrypt.soap.auth.username - Username of the SOAP user configured for accessing the SOAP services
    vcrypt.soap.auth.keystoreFile - Filename of the keystore (should be system_soap.keystore)
    
  8. system_soap.keystoreファイルをソース・コード管理システムに保存します。このファイルを処理する際には、十分なセキュリティ対策を施してください。ファイルには重要なパスワード情報が含まれています。権限のある人員のみにこのファイルへの読取りアクセスが与えられていることを確認してください。このファイルを失うと、Oracle Adaptive Access Managerは暗号化されたデータのリカバリができなくなります。

  9. system_soap.keystoreapplication/WEB-INF/classes(ネイティブ・クライアント・デプロイメントのクラスパス)にコピーします。

  10. soap_key.fileファイルとsoap_3des_input.propertiesファイルを両方とも削除します。

4.3.5 SOAP関連プロパティのoaam_custom.propertiesへの設定

次のプロパティを、ネイティブ・アプリケーションのoaam_custom.propertiesに設定します。

SOAPクラスの指定

vcrypt.common.util.vcryptsoap.impl.classnameプロパティを設定します。

この設定によって、OAAMサービスと交換するSOAPメッセージを作成するときにアプリケーションがどのライブラリを使用するかが指定されます。

使用可能なオプションは、次のとおりです。

com.bharosa.vcrypt.common.impl.VCryptSOAPGenericImpl

SOAPサーバー側URLの指定

vcrypt.tracker.soap.urlプロパティを設定します。

vcrypt.tracker.soap.url=http://host-name:port/oaam_server/services

この設定は、アプリケーションが通信するWebサービスのロケーションです。

次に例を示します。

vcrypt.tracker.soap.url=http://localhost:14300/oaam_server/services/

SOAPコール・タイムアウトの指定

vcrypt.soap.call.timeoutプロパティをミリ秒単位で設定します。

次に例を示します。

vcrypt.soap.call.timeout=10000

その他のプロパティ

vcrypt.tracker.impl.classname=
com.bharosa.vcrypt.tracker.impl.VCryptTrackerSOAPImpl
vcrypt.user.image.dirlist.property.name=bharosa.image.dirlist
bharosa.config.impl.classname=com.bharosa.common.util.BharosaConfigPropsImpl
bharosa.config.load.impl.classname=
com.bharosa.common.util.BharosaConfigLoadPropsImpl
vcrypt.tracker.soap.useSOAPServer=true
vcrypt.soap.disable=false
vcrypt.soap.auth.keystoreFile=system_soap.keystore
 
 
# Environment specific values need to be replaced below this line
bharosa.image.dirlist=absolute_folder_path_where_oaam_images_are_available
 
# If SOAP Authentication is enabled, then the following have to be set
# otherwise just set the property vcrypt.soap.auth=false 
vcrypt.soap.auth=true 
vcrypt.soap.auth.keystorePassword=Java_keystore_password
vcrypt.soap.auth.aliasPassword=Keystore_alias_password
vcrypt.soap.auth.username=SOAP_User_name

4.3.6 サーバーでのSOAPサービス認証の無効化

Oracle Enterprise Manager Fusion Middleware ControlからOracle Web Services Manager (OWSM)ポリシーを使用して、認証を有効化または無効化できます。

サーバーでSOAP Webサービス認証を無効化すると(デフォルトでは有効)、クライアントは認証されなくてもWebサービスを使用できます。

  1. URL http://<host-name>:7001/emとWebLogic管理ユーザー名およびパスワードを使用して、アイデンティティ管理ドメインのOracle Enterprise Manager Fusion Middleware Controlにログインします。

  2. 左側のメニューで「WebLogicドメイン」およびその下にあるOAAMドメインを展開して、oaam_server_server1を見つけます。

  3. oaam_server_server1を右クリックして、「Webサービス」メニュー・オプションを選択します。

  4. 「Oracle Infrastructure Web Services」タブをクリックします。

  5. ページの右上にある「ポリシーのアタッチ」リンクをクリックします。

  6. 次のページでOAAM Webサービスに関連する行をすべて選択し、「次」ボタンをクリックします。

  7. oracle/no_authentication_service_policyおよびoracle/no_authorization_service_policyを選択し、「次」ボタンをクリックします。

  8. 次のページで「アタッチ」ボタンをクリックします。

  9. 必要に応じてOAAMサーバーを再起動します。

4.3.7 OAAMネイティブSOAP統合内のベース環境の設定

この項では、OAAMネイティブSOAP統合内のベース環境の設定に必要なJARファイルを示します。JAVAクラスパスには、次のJARファイルが設定されている必要があります。

  • jps-api.jar

  • jps-common.jar

  • jps-internal.jar

4.4 VCryptResponseについて

VCryptResponseには、処理のステータスに関する情報が含まれています。処理のステータスが成功(isSuccess)であった場合に役立つ情報が含まれています。エラーが発生した場合は、エラー・コードも含まれます。また、その他のペイロード情報が拡張データ・マップの形式で含まれていることもあります。統合の要件に応じて、VCryptResponseのこれらの機能が使用できます。

4.5 Oracle Adaptive Access Manager API

Oracle Adaptive Access Managerには、次の処理を行うAPIが用意されています。

  • クライアント・アプリケーションからの情報を収集および追跡する。

  • デバイスおよび場所情報を判別するために、ユーザー・ログイン情報、ユーザー・ログイン・ステータス、およびユーザー・セッションの各種属性を取得する。

  • トランザクション詳細を収集する。

すべての認証シナリオと標準フローの詳細は、第2章「Oracle Adaptive Access Managerのネイティブ統合」を参照してください。


注意:

isElementInList()、getListElements()、およびupdateList()の各APIは、「アラート・グループ」リストの更新/アクションをサポートしていません。

4.5.1 addQuestion

addQuestionは、指定されたユーザーの新規の質問を追加します。

public boolean addQuestion(java.lang.String loginId, java.lang.String 
questionText, java.lang.String answerText)

表4-2 addQuestion

パラメータ 説明

loginId

ユーザーがログインするために使用するID。

questionText

新規に追加される質問。このユーザーに同じ質問がすでに設定されている場合は、オーバーライドします。操作が成功したか、または失敗したかを返します。

answerText

質問に対する回答。


4.5.2 authenticatePassword

authenticatePasswordは、パスワードを認証します。

public VCryptAuthResult authenticatePassword(java.lang.String loginId, 
java.lang.String password, int authSessionType, int clientType, java.lang.String 
clientVersion, java.lang.String ipAddress, int fingerPrintType, java.lang.String 
fingerPrint)

VCryptAuthResultオブジェクトを返します。

表4-3 authenticatePassword

パラメータ 説明

loginId

ユーザーがログインするために使用するID。

password

新規に設定するパスワード。

clientType

認証に使用されたクライアント・タイプを示す列挙値。

clientVersion

クライアントのバージョン(オプション)。

authSessionType

認証の理由。

ipAddress

ユーザー・デバイスのIPアドレス。

fingerPrintType

フィンガープリント処理のタイプ。

fingerPrint

指紋


4.5.3 authenticateQuestion

authenticateQuestionは、質問または回答を認証します。

public VCryptAuthResult authenticateQuestion(java.lang.String loginId, 
java.lang.Long authSessionId, java.lang.String answer, java.lang.String ipAddress,
int fingerPrintType, java.lang.String fingerPrint)

認証試行の結果を記述したVCryptAuthResultを返します。

表4-4 authenticateQuestion

パラメータ 説明

loginId

回答を認証するためにユーザーが使用するID。

authSessionId

認証セッションのID。

answer

ユーザーにより指定された回答。

ipAddress

ユーザー・デバイスのIPアドレス。

fingerPrintType

フィンガープリント処理のタイプ。

fingerPrint

指紋


4.5.4 cancelAllTemporaryAllows

cancelAllTemporaryAllowsは、カスタマIDに設定されている一時許可をすべて取り消します。

public VCryptResponse cancelAllTemporatyAllows(String customerId);

表4-5 cancelAllTemporaryAllowsのパラメータ

パラメータ 説明

customerId

カスタマID。


4.5.5 clearSafeDeviceList

clearSafeDeviceListは、リクエストに関連付けられているユーザーのユーザー安全デバイス・リストを消去します。

public VCryptBooleanResponse clearSafeDeviceList(String requestId);

表4-6 clearSafeDeviceListのパラメータ

パラメータ 説明

requestId

ログイン・セッションのID。ログイン・セッションに関して、Bharosa APIのすべてのコールに同じIDを割り当てる必要があります。requestIdが指定されない場合、OAAMサーバーで作成されます。ただし、requestIdが指定されてからOAAMサーバーでそれが見つからない場合は、エラーが返されます。


4.5.6 createOAAMSession

セッションIDはトランザクションの作成および更新に必要とされます。セッションIDを使用できない場合、createOAAMSession APIをコールしてOAAMセッションを作成する必要があります。セッションIDをセッションから取得した後、CreateTransaction APIをコールしてトランザクションを作成できます。

セッションを作成する場合は、createOAAMSessionリクエストで値を指定し、その後でAPIをコールします。

createOAAMSession(String requestId,
                  Date requestTime, 
                  OAAMUserData user,
                  OAAMIPData ip, 
                  List<OAAMDeviceFingerprintData> fingerprintDataList,
                  OAAMSessionData sessionData)

表4-7 createOAAMSessionのパラメータ

パラメータ 説明

requestId

requestIdはユーザー・セッションを識別します。requestIdが指定されない場合、OAAMサーバーで作成されます。ただし、requestIdが指定されてからOAAMサーバーでそれが見つからない場合は、エラーが返されます。

requestTime

リクエスト上の日付-時間スタンプ。移入されない場合はサーバーで生成されます。

user

このセッションに関連付けられているユーザー・データ。

ip

このセッションに関連付けられているIPアドレス・データ。

fingerprintDataList

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

sessionData

このセッションに関連付けられているセッション・データ。


CookieSetが含まれるVCryptObjectResponseが返されます。

4.5.7 createOrUpdateEntities

createOrUpdateEntities APIを使用すると、次のタスクを実行できます。

  • エンティティを作成および更新する。

  • エンティティ更新時に属性値を置換およびマージする。

public VCryptObjectResponse<VCryptObjectResponse<EntityHeader>[]>
createOrUpdateEntities(EntityData[] entityRequestData,boolean isReplaceEntity, int
commitBatchSize, String requestId);

表4-8 エンティティの作成または更新API

パラメータ 説明

entityRequestData

EntityDataオブジェクトの配列です。EntityDataオブジェクトには、1つのエンティティの作成に必要な情報が含まれています。EntityData.javaの詳細は、『Oracle Fusion Middleware Oracle Adaptive Access Manager Java APIリファレンス』を参照してください。

isReplaceEntity

エンティティの更新時に属性の置換またはマージを判別するためのフラグ。デフォルト値: FALSE(マージを指定)。

commitBatchSize

同時にコミットする必要のあるエンティティの数を判別します。デフォルトおよび最小値は1です。

requestId

セッションを識別する値。この値はクライアントによって送信されます。クライアントがこの値を設定しない場合はOAAMで生成されます。ただし、requestIdが指定されてからOAAMサーバーでそれが見つからない場合は、エラーが返されます。

VCryptObjectResponse:

SUCCESS: APIの実行に成功し(データベース・エラーまたは接続エラーがない)、少なくとも1つのエンティティが作成されます。

response.getObject()は、個別エンティティのVCryptObjectResponseが含まれている配列オブジェクトを返します。各レスポンス・オブジェクトには、SUCCESS時のEntityHeaderオブジェクトが含まれています。response.isSuccess()に対する問合せ。(SUCCESSの場合はtrueERRORの場合はfalse)。

エンティティが作成されなかった場合は、ERRORになります。

response.getObject()は、VCryptObjectResponseが含まれているオブジェクトを返します。各レスポンス・オブジェクトには、ERROR時のエラー・メッセージが含まれています。


4.5.8 createTransaction

セッションIDはトランザクションの作成に必要とされます。セッションIDを使用できない場合、createOAAMSession APIをコールしてOAAMセッションを作成する必要があります。セッションIDをセッションから取得した後、createTransaction APIをコールしてトランザクションを作成できます。

createTransactionは、トランザクションを新規に作成します。

public VCryptResponse createTransaction(
TransactionCreateRequestData trxUpdData =
                new TransactionCreateRequestData(sessionId,
                                                 requestTime,
                                                 transactionDefKey,
                                                 externalTransactionId,
                                                 trxStatus, trxDataMap, 
                                                 analyzePatterns);
                response =
                    VCryptTrackerUtil.getVCryptTrackerInstance().createTransaction(trxUpdData);
 
 
        
            TransactionResponse transResponse = response.getTransactionResponse();
                Long transId = null;
                if (transResponse != null){
                    transId = transResponse.getTransactionId();
                }

表4-9 createTransactionのパラメータと戻り値

パラメータ 説明

TransactionCreateRequestData

トランザクションを作成するオブジェクト。検証に失敗した場合、例外BharosaExceptionをスローします。

このオブジェクトの構造は次のとおりです。

  • sessionIDはユーザー・セッションを識別します(必須)。セッションIDはトランザクションの作成に必要とされます。セッションIDを使用できない場合、createOAAMSession APIをコールしてOAAMセッションを作成する必要があります。

  • requestTimeはリクエストの時間です。NULLにできます。NULLにした場合、サーバーでは現在時間が使用されます。

  • transactionDefKeyはトランザクション定義のキーです。トランザクション定義の作成に使用します(必須)。

  • externalTransactionIdは、アプリケーション・トランザクションを対応するOAAMトランザクションに関連付けるために使用します。トランザクションの更新にも使用できます。

  • trxStatusはトランザクション・ステータスで、NULLにできます。対応する列挙名はtracker.transaction.status.enumです。

  • trxDataMapは、キーと値のペアのマップです。このマップのキーは、トランザクション定義の関連ソース・データの内部IDと完全に一致する必要があります。値は、常にjavaのString値になります。値がDate値の場合は、書式yyyy-MM-dd'T'HH:mm:ss.SSSzで表示する必要があります。

  • analyzePatterns: パターン処理を実行するかどうかを示すブール値です。値がtrueとして渡された場合、resultStatusの値がsuccessであれば、トランザクションに対してパターン処理が実行されます。

VCryptResponse

レスポンス・オブジェクト。isSuccess()を確認した後で、メソッドgetTransactionResponse()を使用してトランザクションIDを取得してください。


4.5.9 createUser

createUserは、認証データベースにユーザーを作成します。

public VCryptAuthUser createUser (VCryptAuthUser user) 

表4-10 createUser

パラメータ 説明

user

認証済ユーザー。新規に作成された認証済ユーザーを返します。


4.5.10 deleteQuestion

deleteQuestionは、指定されたユーザーの質問を削除します。

public boolean deleteQuestion(java.lang.String loginId, java.lang.String question)  

表4-11 deleteQuestion

パラメータ 説明

loginId

ユーザー・ログインID。

question

削除対象の質問。操作が成功したか、または失敗したかを返します。


4.5.11 getActionCount

getActionCountは、指定されたactionEnumIdのアクション数を構成済のアクション列挙から取得します。

public VCryptIntResponse getActionCount(String requestId, Sting customerId,
Integer actionEnumId);

表4-12 getActionCountのパラメータ

パラメータ 説明

requestId

リクエストID(エラーが発生したときにクライアントのリクエストをロギングおよびトレースするために使用)。requestIdが指定されない場合、OAAMサーバーで作成されます。ただし、requestIdが指定されてからOAAMサーバーでそれが見つからない場合は、エラーが返されます。

customerId

カスタマID。

actionEnumId

actionEnumを識別する整数(必須)。対応する列挙名はrule.action.enumです。



注意:

このAPIを使用するには、対応するアクションincrementCacheCounterプロパティをtrueに設定する必要があります。

4.5.12 getCaption

getCaptionは、ユーザーのキャプションを取得します。

public java.lang.String getCaption(java.lang.String loginId)

表4-13 getCaption

パラメータ 説明

loginId

ユーザーのログインID。キャプション文字列を返します。


4.5.13 getUserDevices

getUserDevicesはユーザーに関連付けられているデバイスを取得します。リクエストがNULLまたはrequest.userIdがNULLの場合、INVALID_DATAのエラー・コードが返されます。request.status、request.fromIndexまたはrequest.toIndexが欠落または無効である場合、SECURE0および50がそれぞれのデフォルトになります。request.userIdが有効なVTUserレコードにマップしない場合、INVALID_DATAのエラー・コードが返されます。その他のエラーについては、UNEXPECTED_ERRORのエラー・コードが返されます。

getUserDevices(GetUserDevicesRequestData request)

SUCCESSではUserDeviceのリスト、ERRORではエラー・メッセージとともにGetUserDevicesResultDataが含まれるVCryptObjectResponseを返します。

表4-14 getUserDevices

パラメータ 説明

request

userId、デバイスの保護/非保護を制限するかどうか、およびページング・パラメータが含まれる検索のフィルタ基準。


getUserDevicesの詳細は、『Oracle Fusion Middleware Oracle Adaptive Access Manager Java APIリファレンス』を参照してください。

4.5.14 getFinalAuthStatus

getFinalAuthStatusは、ユーザーの最終認証ステータスを返します。30日より古いステータスは使用できません。

public VCryptIntResponse getFinalAuthStatus(String requestId, String userId);

表4-15 getFinalAuthStatusのパラメータ

パラメータ 説明

requestId

リクエストID(エラーが発生したときにクライアントのリクエストをロギングおよびトレースするために使用)。requestIdが指定されない場合、OAAMサーバーで作成されます。ただし、requestIdが指定されてからOAAMサーバーでそれが見つからない場合は、エラーが返されます。

userId

ユーザーを一意に識別するID。NULLにできません。


4.5.15 getImage

getImageは、ユーザーのimagePathを取得します。

public java.lang.String getImage(java.lang.String loginId)

表4-16 getImage

パラメータ 説明

loginId

ユーザーのログインID。イメージへのパスを返します。


4.5.16 getRulesData

getRulesDataは、指定されたセッションIDに対して実行されたすべてのルールを返し、トリガーされたルールに関する情報を提供します。

public VCryptSessionRuleData getRulesData(String requestId);

表4-17 getRulesDataのパラメータ

パラメータ 説明

requestId

リクエストID(エラーが発生したときにクライアントのリクエストをロギングおよびトレースするために使用)。requestIdが指定されない場合、OAAMサーバーで作成されます。ただし、requestIdが指定されてからOAAMサーバーでそれが見つからない場合は、エラーが返されます。


4.5.17 getSecretQuestion

getSecretQuestionは、ユーザーの機密質問を取得します。

public VCryptQuestion getSecretQuestion(java.lang.String loginId) 

表4-18 getSecretQuestion

パラメータ 説明

loginId

認証するユーザーのログインID。問い合せる質問が含まれているオブジェクトを返します。


4.5.18 getSignOnQuestions

getSignOnQuestionsは、ユーザーに使用可能なすべての機密質問を取得します。

public VCryptQuestion getSignOnQuestions(java.lang.String loginId)   

表4-19 getSignOnQuestions

パラメータ 説明

loginId

認証するユーザーのログインID。問い合せる質問が含まれている2次元配列オブジェクトを返します。1次元はユーザーに表示する(構成可能な)質問セットの数を表し、2次元は各質問セットの質問数を表します。


4.5.19 getUserByLoginId

getUserByLoginIdは、指定されたカスタマおよびグループに対して、パスワードおよびPINを含まないユーザー詳細を返します。

public VCryptAuthUser getUserByLoginId(String loginId, String groupName);

表4-20 getUserByLoginId

パラメータ 説明

loginId

ユーザーがログインするために使用するID。

groupName

グループ名。


4.5.20 handleTrackerRequest

handleTrackerRequestは、フィンガープリント詳細を取得してデバイスを識別します。指定されたリクエスト時間のフィンガープリント詳細を取得できる場合もあり、過去のリクエスト時間にも対応できます。

public CookieSet handleTrackerRequest(String requestId,
                                      String remoteIPAddr,
                                      String remoteHost,
                                      String secureCookie,
                                      int secureClientType,
                                      String secureClientVersion,
                                      String digitalCookie,
                                      int digitalClientType,
                                      String digitalClientVersion,
                                      int fingerPrintType,
                                      String fingerPrint,
                                      int fingerPrintType2,
                                      String fingerPrint2);

public CookieSet handleTrackerRequest(String requestId,
                                      Date requestTime,
                                      String remoteIPAddr,
                                      String remoteHost,
                                      String secureCookie,
                                      int secureClientType,
                                      String secureClientVersion,
                                      String digitalSigCookie,
                                      int digitalClientType,
                                      String digitalClientVersion,
                                      int fingerPrintType,
                                      String fingerPrint,
                                      int fingerPrintType2,
                                      String fingerPrint2);

返されたオブジェクトには、そのコンテンツにアクセスするファンクションがあります。これらを次に示します。

public String getFlashCookie()
public String getSecureCookie()
public String getRequestId()
public VCryptResponse getVCryptResponse()

表4-21 handleTrackerRequestのパラメータ

パラメータ 説明

requestId

ログイン・セッションID。これは、ログイン・セッションのすべてのAPIコールに必要なIDです。requestIdが指定されない場合、OAAMサーバーで作成されます。ただし、requestIdが指定されてからOAAMサーバーでそれが見つからない場合は、エラーが返されます。

remoteIPAddr

リクエスト発生元のIPで、HTTPリクエストから抽出されます。

remoteHost

リクエスト発生元のマシンのホスト名(オプション)。

secureCookie

セキュアなCookie。ブラウザから受信した場合のみ渡されます。

secureClientType

認証に使用されるクライアントのタイプを識別する列挙値。対応する列挙名はauth.client.type.enumです。

secureClientVersion

クライアントのバージョン(オプション)。

digitalCookie

デジタル署名Cookie。フラッシュCookieも使用できます。ブラウザにより送信された場合のみ渡されます。

digitalClientType

使用されたフラッシュ・クライアントのタイプを指定するデジタル・クライアントのタイプ。指定されていない場合は、値0を使用します。

digitalClientVersion

デジタル・クライアントのバージョン。フラッシュ・クライアントのバージョンも使用できます。

fingerPrintType

有効値のリストについては、OAAM列挙vcrypt.fingerprint.type.enumを参照してください。現在、列挙には次の値が設定されています。

  • browser=1

  • flash=2

fingerPrintTypeの値として1(ブラウザ用)を使用することをお薦めします。このパラメータは、ブラウザのフィンガープリント・タイプに対応しているためです。

fingerPrint

フィンガープリント。ブラウザの特性を記述している場合は、ヘッダーがこの文字列に解析されます。これはブラウザ・ヘッダー情報を表します。

fingerPrintType2

同じリクエストに複数のフィンガープリントがある場合に使用します。これはプロパティ・ファイルに定義されています(オプション)。

fingerPrint2

2番目のフィンガープリント値(オプション)。

requestTime

リクエストが行われた時間。


4.5.21 handleTransactionLog

handleTransactionLogは、トランザクション詳細を取得します。


注意:

10.1.4.5.1では非推奨。かわりに、メソッドcreateTransactionを使用してください。

public VCryptResponse handleTransactionLog(String requestId, Map[] contextMap);

public VCryptResponse handleTransactionLog(String requestId, Date requestTime,
Map[] contextMap);

public VCryptResponse handleTransactionLog(String requestId, Date 
requestTime,Integer status, Map[] contextMap);

表4-22 handleTransactionLogのパラメータ

パラメータ 説明

requestId

ログイン・セッションID。これは、ログイン・セッションのすべてのAPIコールに必要なIDです。requestIdが指定されない場合、OAAMサーバーで作成されます。ただし、requestIdが指定されてからOAAMサーバーでそれが見つからない場合は、エラーが返されます。

requestTime

リクエストが行われた時間。

contextMap

contextMapsの配列。1回のコールで複数のトランザクションを作成できます。配列のコンテキスト・マップごとにtransactionTypeキーがあると想定しています。

status

トランザクションのステータス。


4.5.22 IsDeviceMarkedSafe

IsDeviceMarkedSafeは、リクエストに関連付けられているユーザー・デバイスが安全かどうかを示す値を返します。

public VCryptBooleanResponse IsDeviceMarkedSafe(String requestId);

表4-23 IsDeviceMarkedSafeのパラメータ

パラメータ 説明

requestId

ログイン・セッションID。これは、ログイン・セッションのすべてのAPIコールに必要なIDです。requestIdが指定されない場合、OAAMサーバーで作成されます。ただし、requestIdが指定されてからOAAMサーバーでそれが見つからない場合は、エラーが返されます。


4.5.23 markDeviceSafe

markDeviceSafeは、ユーザー・デバイスが安全であるとマークします。

public boolean markDeviceSafe(String requestId, boolean isSafe);

表4-24 markDeviceSafeのパラメータ

パラメータ 説明

requestId

ログイン・セッションID。これは、ログイン・セッションのすべてのAPIコールに必要なIDです。requestIdが指定されない場合、OAAMサーバーで作成されます。ただし、requestIdが指定されてからOAAMサーバーでそれが見つからない場合は、エラーが返されます。

isSafe

このユーザー・デバイスが安全かどうかを示します。


4.5.24 processPatternAnalysis

processPatternAnalysis は、データ・パターン処理をトリガーします。

public VCryptResponse processPatternAnalysis(String requestId, 
                                             long transactionId, 
                                             int status,
                                             String transactionType);

表4-25 processPatternAnalysisのパラメータ

パラメータ 説明

requestId

ログイン・セッションID。これは、ログイン・セッションのすべてのAPIコールに必要なIDです。requestIdが指定されない場合、OAAMサーバーで作成されます。ただし、requestIdが指定されてからOAAMサーバーでそれが見つからない場合は、エラーが返されます。

transactionId

トランザクションの識別子。認証タイプのデータの場合、NULLを渡すことができます。トランザクション・データのパターン処理の場合、このパラメータは必須です。

status

ユーザー定義列挙auth.status.enumの値。ステータスの値が列挙のSuccess値に対応する値である場合は、パターン分析が実行されます。そうでない場合は、実行されません。

transactionType

トランザクションのタイプを示します。認証トランザクションの場合は、authである必要があります。その他のトランザクション・タイプの値(bill_paymentなど)はカスタマイズできます。


4.5.25 processRules

ルール・エンジンはOAAMの一部であり、チェックポイントでポリシーを実施します。OAAMには、コール側のコンテキストに応じて結果を返す、ポリシーを評価するAPIが組み込まれています。

セッションIDはトランザクションの作成に必要とされます。セッションIDを使用できない場合、createOAAMSession APIをコールしてOAAMセッションを作成する必要があります。セッションIDは、ログイン・セッションのすべてのAPIコールで必要です。

processRules は、渡されたチェックポイントのポリシー・セットを処理します。

VCryptRulesResult ruleResult =
     VCryptTrackerUtil.getVCryptRulesEngineInstance().processRules(
                                           sessionId,
                                           transId, 
                                           externalTransactionId, 
                                           requestTime,
                                           runtimeList,
                                           contextDataMap);

processRulesはルール・エンジンに関連するメソッドをコールし、メソッドVCryptTrackerUtil.getVCryptRulesEngineInstance()をコールすることによってルール・エンジンのインスタンスを取得します。

表4-26 processRulesのパラメータ

パラメータ 説明

sessionId

ログイン・セッションID。これは、ログイン・セッションのすべてのAPIコールに必要なIDです。

transId

トランザクション・セッションID。これは、トランザクション・セッションのすべてのAPIコールに必要なIDです。

externalTransactionId

externalTransactionIdは、アプリケーション・トランザクションを対応するOAAMトランザクションに関連付けるために使用します。トランザクションの更新にも使用できます。

requestTime

リクエストが行われた時間。

runtimeTypes

評価されるチェックポイントのリスト。このリストのチェックポイントが個別に評価されます。runtimeTypesは、Integer型のシングルトン・リストです。

たとえば、トランザクション前チェックポイントを実行するには、次のリストを作成します。

List PRE_TRANSACTION_RUNTIME_LIST = Collections.singletonList(new Integer(1));

contextDataMap

コンテキスト・データを識別するキーと値のペアのリスト。このAPIのcontextDataMapは、ルール処理に必要な追加パラメータをすべて提供します。たとえば、セッション中にIPが変更されたかどうかを検証するために、Process Rules APIのcontextDataMapにIPを指定すると、OAAMでは新規IPを、作成/更新トランザクション中に使用された元のIPと比較できます。


processRules()メソッドでの複数チェックポイントの実行に関する情報

  1. チェックポイント評価の順序は、リスト内の順序に基づいています。OAAMルール・エンジンはチェックポイント・リストを反復して、一度に1つずつチェックポイントを評価します。

  2. 各チェックポイントの評価結果は、キーとしてCheckPointId、値としてVCryptRulesResultとともに、ResultMapに格納されます。

  3. さらに、ResultMapVCryptRulesResultに設定されます。

  4. VCryptRulesResultが、processRules()メソッドの結果として返されます。

  5. チェックポイントの実行が失敗した場合、ResultMapの対応するVCryptRulesResultがその情報を取得しますが、他のチェックポイントの実行は影響を受けません。ただし、システム障害の場合は、processRules()自体の結果にエラーの詳細が表示されます。

コール元が各チェックポイントの実行結果をフェッチしようとする前に、processRules()メソッドの結果の成功ステータスをテストすることをお薦めします。

デバイスIDの取得

ルール・エンジンは、ルールの結果だけでなく、ユーザー・セッションと同等の内部識別子であるデバイスIDを返すことができます。

次のコード・サンプルで、デバイスIDの取得方法を説明します。

VCryptRulesResult rulesResult = new
VCryptRulesEngineImpl().processRules(<params..>);
 
If (!rulesResult.getVCryptResponse().isSuccess()) {
 
     Logger.error("Error running rules " + 
     rulesResult.getVCryptResponse().getErrorMessage());
 
}
 
Long deviceId = rulesResult.getDeviceId();
 

デバイスIDを取得する際に、次の点を確認してください。

  • Oracle Adaptive Access Managerのバージョンが10.1.4.5またはそれ以上である。

  • プロパティbharosa.tracker.send.devideIdがtrueに設定されていて、デバイスIDが取得可能である。

    bharosa.tracker.send.deviceId=true
    

有効なチェックポイント

有効なチェックポイントのリストは、OAAMの列挙profile.type.enumを参照してください。たとえば、profile.type.enum.preauth=1は、認証前チェックポイントが数値1によって指定されていることを示しています。

場所とデバイスのデータ

プロパティbharosa.tracker.sendLocationData=trueを設定した状態で、processRules APIをコールしたときに、場所(都市名、州名、国名)とデバイスのデータが返されます。

VCryptRulesResult rulesResult = processRules(/*params*/);
VCryptResponse response = rulesResult.getVCryptResponse();
If (response.isSuccess()) {
 
    String ipAddress = response.getExtendedMap
      (VCryptResponse.DATA_REMOTE_IP_ADDRESS) ;
    String deviceId= response.getExtendedMap(VCryptResponse.DATA_DEVICE_ID) ;
 
    // if interested in city, state, country
    String city = response.getExtendedMap(VCryptResponse.DATA_CITY_NAME) ;
    String state = response.getExtendedMap(VCryptResponse.DATA_STATE_NAME ;
    String country = response.getExtendedMap(VCryptResponse.DATA_COUNTRY_NAME) ;
}

4.5.26 resetUser

resetUserは、登録、質問、イメージ、フレーズを含め、カスタマに設定されたすべてのプロファイルをリセットします。

public VCryptResponse resetUser(String customerId);

表4-27 resetUserのパラメータ

パラメータ 説明

customerId

カスタマID。


4.5.27 searchEntityByKey

searchEntityByKey APIを使用すると、キー属性に基づいてエンティティを検索できます。

public VCryptObjectResponse<EntityHeader> 
   searchEntityByKey(EntityData entityData);

表4-28 searchEntityByKey

パラメータ 説明

entityData

IDスキームに基づいて検索されるエンティティの主キー属性のキーと値が含まれている、entityNameおよびentityDataMapを持つEntityDataオブジェクト。

VCryptObjectResponse

SUCCESS時のエンティティ・オブジェクトであるEntityHeaderオブジェクト、またはERROR時のerrorメッセージが含まれています。


4.5.28 setCaption

setCaptionは、指定されたユーザーのキャプションを新規に設定します。

public boolean setCaption(java.lang.String loginId, java.lang.String caption)

表4-29 setCaption

パラメータ 説明

loginId

ユーザーのログインID。

caption

新規に設定するキャプション。操作が成功したか、または失敗したかを返します。


4.5.29 setImage

setImageは、ユーザーのイメージを新規に設定します。

public boolean setImage(java.lang.String loginId, java.lang.String imagePath)

操作が成功したか、または失敗したかを返します。

表4-30 setImage

パラメータ 説明

loginId

ユーザーのログインID。

imagePath

イメージ・ファイルへのパス。


4.5.30 setPassword

setPasswordは、指定されたユーザーのパスワードを新規に設定します。

public boolean setPassword(java.lang.String loginId, java.lang.String password, 
int passwordStatus)

操作が成功したか、または失敗したかを返します。

表4-31 setPassword

パラメータ 説明

loginId

ユーザーのログインID。

password

新規に設定するパスワード。

passwordStatus

パスワードのステータス


4.5.31 setTemporaryAllow

setTemporaryAllowは、ユーザーに一時許可を設定します。一時許可によって、最終ルール・アクションをオーバーライドできます。

public VCryptResponse setTemporaryAllow(String customerId, int tempAllowType,
Date expirationDate);

表4-32 setTemporaryAllowのパラメータ

パラメータ 説明

customerId

カスタマID。

tempAllowType

一時許可のタイプ。このタイプのユーザー定義列挙はcustomercare.case.tempallow.level.enumです。

expirationDate

tempAllowTypeusersetの場合は有効期限。それ以外の場合はNULLまたは空。


4.5.32 setUserDevices

ユーザーに関連付けられているデバイスを変更します。このメソッドはisSecureフラグの切替えと、デバイスに対するわかりやすい名前の設定に使用できます。このメソッドは成功するか失敗するか、のいずれかです。いずれかのデバイスを更新できない場合、どのデバイスも更新されません。userIdnullである、または有効なVTUserレコードにマップしない場合、INVALID_DATAのエラー・コードが返されます。デバイスがnullまたはemptyの場合、INVALID_DATAのエラー・コードが返されます。有効なVTUserDeviceMapにマップしないvtUserMapIdがいずれかのデバイスにある場合、INVALID_DATAのエラー・コードが返され、変更は行われません。指定されたユーザー以外のユーザーにいずれかのデバイスが関連付けられている場合、INVALID_DATAのエラー・コードが返され、変更は行われません。デバイス配列のいずれかの要素がNULLの場合、これらは無視されてNULL以外の要素が更新されます。その他のエラーについては、UNEXPECTED_ERRORのエラー・コードが返されます。

VCryptResponse setUserDevices(String userId,
                              UserDevice[] devices)

SUCCESSまたはERRORを(ERRORの場合はエラー・メッセージとともに)示す、VCryptResponseを返します。

表4-33 setUserDevices

パラメータ 説明

userId

デバイスのユーザーID。

devices

更新されるデバイス。


setUserDevicesの詳細は、『Oracle Fusion Middleware Oracle Adaptive Access Manager Java APIリファレンス』を参照してください。

4.5.33 updateAuthStatus

updateAuthStatusはユーザー認証ステータスを更新し、必要に応じてパターン・データ処理をトリガーします。このメソッドは、ユーザー認証ステータスに変更が生じた場合にコールする必要があります。updateAuthStatusをコールする前に、アプリケーションで必ずupdateLogをコールしてください。

認証ステータス値のリストは、ユーザー定義列挙auth.status.enumで指定されます。アプリケーションでの必要に応じて、この列挙にアイテムを追加したり、この列挙からアイテムを削除したりできますが、この列挙の値のみを認証ステータスの識別に使用できます。

次のシナリオでは、ユーザー・ログイン(認証)ステータスの更新を処理する別の方法について説明します。

  • ログイン・ステータスをupdateLogコールに渡します。このシナリオでは、updateAuthStatusへのコールはまったく行われません。

  • ログイン・ステータスを設定する前にユーザーにログインを許可します。このシナリオでは、最初にupdateLogコールでステータスpendingを渡し、次にログイン・データを処理し、さらにupdateAuthStatusコールで適切なステータスを渡します。

  • アプリケーション・フローにユーザーへのチャレンジが含まれている場合は、まずステータスをpendingに設定し、その後で、回答に応じてステータスをsuccessまたはwrong_answerにリセットします。

  • 通常、ルール・エンジンの起動後にupdateAuthStatusをコールする必要はありません。これは、エンジンに、ルール実行の一環として認証ステータスの設定が含まれているためです。

public VCryptResponse updateAuthStatus(String requestID, 
                                       int resultStatus, 
                                       int clientType,
                                       String clientVersion);
public VCryptResponse updateAuthStatus(String requestID,
                                       Date requestTime, 
                                       int resultStatus, 
                                       int clientType,
                                       String clientVersion);
public VCryptResponse updateAuthStatus(String requestID, 
                                       int resultStatus, 
                                       int clientType,
                                       String clientVersion,
                                       boolean analyzePatterns);
public VCryptResponse updateAuthStatus(String requestID, 
                                       Date requestTime,
                                       int resultStatus, 
                                       int clientType,
                                       String clientVersion
                                       boolean analyzePatterns);

表4-34 updateAuthStatusのパラメータ

パラメータ 説明

requestId

ログイン・セッションID。これは、ログイン・セッションのすべてのAPIコールに必要なIDです。

requestTime

リクエストが行われた時間。

resultStatus

ユーザー定義列挙auth.status.enumの値。

clientType

認証に使用されたクライアント・タイプを示す列挙値。

clientVersion

クライアントのバージョン(オプション)。

analyzePatterns

パターン処理を実行するかどうかを示すブール値です。値がtrueとして渡されると、resultStatusの値がsuccessの場合に、トランザクションに対してパターン処理が実行されます。


4.5.34 updateLog

updateLogはユーザー・ログを更新し、必要に応じてCookieSetを作成します。

public CookieSet updateLog(String requestId,
                           String remoteIPAddr,
                           String remoteHost,
                           String secureCookie,
                           String digitalCookie,
                           String groupId,
                           String userId,
                           String loginId,
                           boolean isSecure,
                           int result,
                           int clientType,
                           String clientVersion,
                           int fingerPrintType,
                           String fingerPrint,
                           int digFingerPrintType,
                           String digFingerPrint);
public CookieSet updateLog(String requestId,
                           Date requestTime,
                           String remoteIPAddr,
                           String remoteHost,
                           String secureCookie,
                           String digitalCookie,
                           String groupId,
                           String userId,
                           String loginId,
                           boolean isSecure,
                           int result,
                           int clientType,
                           String clientVersion,
                           int fingerPrintType,
                           String fingerPrint,
                           int fingerPrintType2,
                           String fingerPrint2);

表4-35 updateLogのパラメータ

パラメータ 説明

requestId

ログイン・セッションID。これは、ログイン・セッションのすべてのAPIコールに必要なIDです。requestIdが指定されない場合、OAAMサーバーで作成されます。ただし、requestIdが指定されてからOAAMサーバーでそれが見つからない場合は、エラーが返されます。

remoteIPAddr

リクエスト発生元のIPで、HTTPリクエストから抽出されます。

remoteHost

リクエスト発生元のホスト名(オプション)。

secureCookie

セキュアなCookie。ブラウザから受信した場合のみ渡されます。

digitalCookie

デジタル署名Cookie。フラッシュCookieも使用できます。ブラウザにより送信された場合のみ渡されます。

groupId

このユーザーが属するグループのID。

userId

ユーザーID。これはユーザーの主IDキーです。無効なユーザーの場合はNULLになります。

loginId

ユーザーがログインのために使用するID(必須)。

isSecure

このノードがセキュアで登録可能であるかどうかを示すブール値。また、セキュアなデバイス(登録済デバイス)からログインが行われていることも示します。デバイスの概念がない場合は、falseに設定されます。

result

ユーザー定義列挙auth.status.enumの値。

clientType

認証に使用されたクライアント・タイプを示す列挙値。対応する列挙名はauth.client.type.enumです。

clientVersion

クライアントのバージョン(オプション)。

fingerPrintType

有効値のリストについては、OAAM列挙vcrypt.fingerprint.type.enumを参照してください。現在、列挙には次の値が設定されています。

  • browser=1

  • flash=2

fingerPrintTypeの値として1(ブラウザ用)を使用することをお薦めします。このパラメータは、ブラウザのフィンガープリント・タイプに対応しているためです。

fingerPrint

フィンガープリント。ブラウザの特性を記述している場合は、ヘッダーがこの文字列に解析されます。これはブラウザ・ヘッダー情報を表します。

digFingerPrintType

有効値のリストについては、OAAMの列挙vcrypt.fingerprint.type.enumを参照してください。現在、列挙には次の値が設定されています。

  • browser=1

  • flash=2

digFingerPrintTypeの値として2(フラッシュ用)を使用することをお薦めします。このパラメータはフラッシュのフィンガープリント・タイプに対応しているためです。

digFingerPrint

デジタル・フィンガープリント。

requestTime

リクエストが行われた時間。

fingerPrintType2

同じリクエストに複数のフィンガープリントがある場合に使用します。プロパティ・ファイルに定義されています(オプション)。

fingerPrint2

2番目のフィンガープリント値(オプション)。


4.5.35 updateTransaction

セッションIDとトランザクションIDの両方がトランザクションの更新に必要とされます。セッションIDを使用できない場合、createOAAMSession APIをコールしてOAAMセッションを作成する必要があります。セッションIDはcreateTransaction APIによって必要とされます。updateTransaction APIをコールしてトランザクションを更新するには、createTransaction APIをコールしてトランザクションIDを作成する必要があります。

updateTransactionは、以前に作成されたトランザクションを更新します。

      TransactionUpdateRequestData trxUpdData =
new TransactionUpdateRequestData(sessionId,
 requestTime,
 transactionId,
 new Integer(trxStatus),
 trxDataMap,
 Boolean.TRUE);
    response =
    VCryptTrackerUtil.getVCryptTrackerInstance().updateTransaction(trxUpdData);
    

表4-36 updateTransactionのパラメータと戻り値

パラメータ 説明

TransactionUpdateRequestData

トランザクションを更新するオブジェクト。更新されるトランザクションのハンドルは、createTransactionメソッドによって返されたトランザクションID、またはcreateTransactionメソッドに渡された外部トランザクションIDのいずれかです。検証に失敗した場合は、例外BharosaExceptionが発生します。

このオブジェクトの構造は次のとおりです。

  • sessionIdは、ユーザー・セッションを識別します(必須)。

  • requestTimeはリクエストの時間です。NULLにできます。NULLにした場合、サーバーでは現在時間が使用されます。

  • transactionIdは、createTransactionに対する以前のコールによって返されたIDです。

  • trxStatusは、トランザクションのステータスです。指定可能な値は次のとおりです。

    • success=1

    • block=2

    • reject=3

    • wrong_answer=4

    • pending=99

  • trxDataMapは、キーと値のペアのマップです。このマップのキーは、トランザクション定義の関連するソース・データの内部IDと完全に一致する必要があります。値は、常にJavaのString値になります。値がDate値の場合は、書式yyyy-MM-dd'T'HH:mm:ss.SSSzで表示する必要があります。

VCryptTrackerInstance

レスポンス・オブジェクト。メソッドgetVCryptTrackerInstance()でトランザクションIDを取得する前に、isSuccess()を必ず確認してください。


4.5.36 updateTransactionStatus

updateTransactionStatusはトランザクション・ステータスを更新し、必要に応じてデータ・パターン処理をトリガーします。


注意:

10.1.4.5.1では非推奨。かわりに、メソッドupdateTransactionを使用してください。

public VCryptResponse updateTransactionStatus(String requestId,
long transactionId, int status);

public VCryptResponse updateTransactionStatus(String requestId, Date requestTime,
long transactionId, int status);

public VCryptResponse updateTransactionStatus(String requestId, long 
transactionId, int status, Map[] contextMap);

public VCryptResponse updateTransactionStatus(String requestId, Date requestTime,
long transactionId, int status, Map[] contextMap);

public VCryptResponse updateTransactionStatus(String requestId, long 
transactionId, int status, boolean analyzePatterns);

public VCryptResponse updateTransactionStatus(String requestId, Date requestTime,
long transactionId, int status, Map[] contextMap, boolean analyzePatterns);

表4-37 updateTransactionStatusのパラメータ

パラメータ 説明

requestId

ログイン・セッションID。これは、ログイン・セッションのすべてのAPIコールに必要なIDです。requestIdが指定されない場合、OAAMサーバーで作成されます。ただし、requestIdが指定されてからOAAMサーバーでそれが見つからない場合は、エラーが返されます。

requestTime

リクエストが行われた時間。

contextMap

contextMapsの配列。1回のコールで複数のトランザクションを作成できます。配列のコンテキスト・マップごとにtransactionTypeキーがあると想定しています。

Status

トランザクションのステータス。

transactionId

更新するステータスを持つトランザクションのID。NULLの場合は、指定されたセッションで最後のトランザクションを使用します。

analyzePatterns

パターン処理を実行するかどうかを示すブール値です。値としてtrueを渡すと、resultStatus値がsuccessの場合に、トランザクションに対してパターン処理が実行されます。