プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Mobile Security Suiteの管理
11gリリース2 (11.1.2.3) for All Platforms
E61946-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

12 モバイル・セキュリティ・マネージャと連携するための環境の構成

この章では、モバイル・セキュリティ・マネージャが環境内で動作できるように構成する手順について説明します。内容は次のとおりです。


注意:

Oracle Identity Manager Oracle Mobile Security SuiteをOracle Mobile Security Suiteと統合する方法は、『Oracle Fusion Middleware Oracle Identity Management Suite統合ガイド』を参照してください。

12.1 Oracle Mobile Security Suiteのチューニング

ヒープ・サイズのチューニング、データ・ソース接続プールの設定のチューニングおよびその他のチューニングに関する推奨事項は、『Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド』のOracle Mobile Security Suiteのチューニングに関する項を参照してください。

12.2 アイデンティティ・ストアの構成

アイデンティティ・ストア接続を構成するには、アイデンティティ・ディレクトリ・サービス・プロファイルをOracle Access Managementコンソールで作成します。その後、モバイル・セキュリティ・マネージャの「アイデンティティ・ストア設定」タブで、「IDSプロファイル名」を設定します。

  • アイデンティティ・ストア接続の構成方法は、『Oracle Fusion Middleware Oracle Access Management管理者ガイド』のユーザー・アイデンティティ・ストア登録の管理に関する項を参照してください。

  • 「アイデンティティ・ストア設定」タブで「IDSプロファイル名」を設定するには、第11.2.5項「アイデンティティ・ストア設定の構成」を参照してください。

12.3 NDESおよびActive Directory認証局の構成

この項では、Simple Certificate Enrollment Protocol (SCEP)がモバイル・セキュリティ・マネージャ・サーバーで動作するようにWindows Enterprise 2008 R2マシンを構成する方法について説明します。この構成は、セキュア・ワークスペースの登録に必要です。

開始する前に、Windows Enterprise 2012 R2またはWindows Enterprise 2008 R2マシンにネットワーク・デバイス登録サービス(NDES)をインストールしてください。


注意:

NDES構成に指定されているユーザー・アカウントのユーザー・パスワードが期限切れにならないようにしてください。

  1. 必要なホットフィックスを適用します。NDESを構成する前に、Windows 2008 R2マシンに次のホットフィックスを適用する必要があります。

  2. Microsoft TechNetの記事「Network Device Enrollment Service (NDES) in Active Directory Certificate Services (AD CS)」に記載されているセットアップ手順を実行し、Active Directoryサーバー上にネットワーク・デバイス登録サービス(NDES)を構成します。

    http://social.technet.microsoft.com/wiki/contents/articles/9063.network-device-enrollment-service-ndes-in-active-directory-certificate-services-ad-cs.aspx

  3. URLの最大長限度を増やします。SCEPリクエストではHTTP GETメソッドが使用されるため、リクエストURLに証明書署名リクエストが存在することによって、URLの長さが上限を超えることがあります。

    %windir%\system32\inetsrv\appcmd set config /section:requestfiltering /requestlimits.maxurl:4096
     
     %windir%\system32\inetsrv\appcmd set config /section:requestfiltering /requestlimits.maxquerystring:4096
    
  4. スマート・カード・ログオン証明書テンプレートを拡張し、証明書発行時に使用する新しいテンプレートを作成します。

    1. Server Managerを開いて「Smartcard Logon」テンプレートを右クリックします。

      「Duplicate Template」を選択します。

      「Duplicate Template」ダイアログが開きます。

      ndes-ca-config1.pngの説明が続きます
      ndes-ca-config1.pngの説明

    2. 「Windows Server 2003 Enterprise」を選択して「OK」をクリックします。

      「Properties of New Template」フォームが開きます

    3. 「Properties of New Template」フォームの「General」タブで、テンプレート名を入力します。この名前は、NDESを構成するときに使用します。

      ndes-ca-config3.pngの説明が続きます
      ndes-ca-config3.pngの説明

    4. 「Properties of New Template」フォームの「Request Handling」タブで、「Allow private key to be exported」を選択します。その他の値は変更しないでください。

      ndes-ca-config4.pngの説明が続きます
      ndes-ca-config4.pngの説明

    5. 「Properties of New Template」フォームの「Subject Name」タブで、「Supply in the request」を選択します。

      警告メッセージが開きます

      「OK」をクリックして警告を閉じてから、「Apply」をクリックし、「OK」をクリックしてテンプレート作成を完了します。

      ndes-ca-config5.pngの説明が続きます
      ndes-ca-config5.pngの説明

    6. 「Server Manager」ウィンドウで認証局のノードを展開し、その下の「Certificate Templates」エントリを選択します。

      最近作成された証明書を選択します。

    7. メニューから「Action」「New」「Certificate Template to Issue」を選択します。

      新規作成した証明書テンプレートを選択します。

  5. 「Read」「Write」「Enroll」および「Autoenroll」に対して「Allow」を選択し、証明書テンプレートに対する権限を設定します。

    ndes-ca-config6.pngの説明が続きます
    ndes-ca-config6.pngの説明

  6. 認証局の証明書にSANが含まれるようにするために、次に示す値を構成します

    certutil -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2
     
    net stop certsvc
    net start certsvc
    
  7. パスワード・ポリシーを無効化し、証明書発行に証明書テンプレートを使用するようにNDES構成を設定します。

    SCEPのレジストリ設定を次のとおりに更新します。

    1. 次のレジストリ・キーを開きます。

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MSCEP

    2. スクリーン・キャプチャに表示されているとおりに、新しいキーと値を追加します。

      ndes-ca-config7b.pngの説明が続きます
      ndes-ca-config7b.pngの説明''

  8. NDESに対するパスワード・ポリシーを無効化します。

    1. 次のレジストリ・キーを開きます。

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MSCEP\
      EnforcePassword

    2. EnforcePasswordの値を0x00000000に変更します。

      ndes-ca-config8.pngの説明が続きます
      ndes-ca-config8.pngの説明

  9. NDES SCEPサーバーまたはInternet Information Server (IIS)を再起動します。

12.4 Active Directory認証局での証明書自動失効の構成

Oracle Mobile Security Suiteのモバイル・セキュリティ・マネージャ・コンポーネントが、証明書をMicrosoftのCAからプロビジョニングするように構成されているときは、デフォルトではその証明書はモバイル・デバイスおよびワークスペース・アプリケーションがワイプまたは登録解除されたときでも自動的に失効することはありません。モバイル・セキュリティ・マネージャは、ネットワーク・デバイス登録サービス(NDES)を使用して証明書をプロビジョニングします。ただし、NDESには証明書失効のためのネットワーク・インタフェースはありません。

この項では、NDESサーバー上のInternet Information Server (IIS)で証明書失効アプリケーションを構成する方法を説明します。モバイル・セキュリティ・マネージャは、このアプリケーションを起動することによって、モバイル・デバイスおよびワークスペース・アプリケーションのライフサイクルの適切な時点で、モバイル・デバイスおよびユーザーの証明書が自動的に失効するようにします。

モバイル・セキュリティ・マネージャが証明書を失効させるために呼び出すURLは、モバイル・セキュリティ・マネージャの「CA設定」タブで指定されたNDES URLに基づいて計算されます。証明書失効のためのURLは、次のように構成されます。

http(s)://<ca_host>:<ca_port>/CertService/revoke.php

モバイル・セキュリティ・マネージャ・サーバーはPOSTリクエストを送信して証明書を失効させ、失効の理由として「Cease of Operation」を示します。

この項には次のトピックが含まれます:

12.4.1 証明書失効アプリケーションを構成する手順

開始する前に: 証明書失効アプリケーションは、PHPのアプリケーションです。NDESサーバー上のInternet Information Server (IIS)がPHPアプリケーションをサポートしている必要があります。該当しない場合は、第12.4.5項「PHPアプリケーションを実行するためのIISの構成」の手順に従います。

証明書失効アプリケーションを構成するための手順には次が含まれます。

  1. IISでの証明書失効アプリケーションのデプロイ - この手順では、IISでPHPアプリケーションを作成して構成します。

  2. 証明書失効のためのPHPスクリプトのデプロイ - この手順では、オラクル社が提供するPHPスクリプトを証明書失効アプリケーションの物理パスにデプロイします。

  3. モバイル・セキュリティ・マネージャ証明書のインポート - この手順では、証明書失効リクエストをモバイル・セキュリティ・マネージャからのものとして認証できるように、モバイル・セキュリティ・マネージャ証明書を証明書失効アプリケーションの物理パスにインポートします。

12.4.2 IISでの証明書失効アプリケーションのデプロイ

この項では、IISに証明書をデプロイする方法について説明します。

  1. アプリケーション・プールを追加します

    1. NDES IISインスタンスのIIS Managerアプリケーションを開きます。「Application Pools」を選択し、「Actions」ペインで「Add Application Pool」を選択します。

      「Add Application Pool」ダイアログが開きます。

    2. 次のとおりにフォームに入力して「OK」をクリックします。

      Name - 「CertService」と入力します。

      .NET Framework version - デフォルト値を使用します。

      Managed pipeline mode - 「Integrated」を選択します。

      Start application pool immediately - このオプションを選択します。

      図12-1 「Add Application Pool」フォームへの入力

      図12-1の説明が続きます
      「図12-1 「Add Application Pool」フォームへの入力」の説明

    3. 新規作成した「CertService」アプリケーション・プールを編集します。

      「Actions」ペインで、「Advanced」を選択して「ApplicationPoolIdentity」をクリックし、アイデンティティを特権サービス・アカウントとして設定します。

      「Application Pool Identity」ダイアログが開きます。

      図12-2 「Application Pool Identity」ダイアログ

      図12-2の説明が続きます
      「図12-2 「Application Pool Identity」ダイアログ」の説明

    4. 「Custom account」を選択して「Set」をクリックします。

      「Set Credentials」ダイアログが開きます

    5. 「User name」フィールドに、認証局レベルで証明書を管理する権限(CAのセキュリティ・プロパティで割り当てられます)を持つWindowsアカウントのユーザー名を入力します。

      パスワードを「Password」フィールドと「Confirm password」フィールドに入力して「OK」をクリックします。

      「OK」をクリックして開いている他のダイアログを閉じます。

      図12-3 「Set Credentials」ダイアログへのCA管理者の資格証明の入力

      図12-3の説明が続きます
      「図12-3 「Set Credentials」ダイアログへのCA管理者の資格証明の入力」の説明

      サービス・アカウントがアプリケーション・プールのアイデンティティとして表示されます。

  2. IIS NDESインスタンス内の「Default Web Site」を右クリックして「Add New Application」を選択します。

    「Add Application」ダイアログが開きます。

    「Alias」フィールドに「CertService」と入力してから「Select」をクリックし、使用するアプリケーション・プールとして「CertService」を選択します。

    「Physical path」で、「...」ボタンをクリックし、アプリケーションの物理パスを選択します。

    「OK」をクリックして新しい証明書失効アプリケーションの作成を完了します。

  3. php.iniファイルを更新します。

    次の行を<PHP_INSTALLATION_HOME>/php.iniファイルに追加し、PHPに対してOpenSSL拡張機能を有効にします。

    extension=php_openssl.dll
    

12.4.3 証明書失効のためのPHPスクリプトのデプロイ

この項では、証明書失効のための2つのPHPスクリプトを証明書失効アプリケーションの物理パスにデプロイする方法について説明します。

  1. revoke.phpという名前のテキスト・ファイルを作成し、次に示すコードを追加します。

    このファイルを、第12.4.2項「IISでの証明書失効アプリケーションのデプロイ」の手順2で選択した証明書失効アプリケーションの物理パスのルートに保存します。

    revoke.phpファイルの内容

    <?php
    function checkNull($var){
        return (!isset($var) || is_null($var));
    }
    function checkNullOrEmpty($var){
        return (!isset($var) || trim($var)==='');
    }
     
    include_once "JWT.php";
    $postdata = file_get_contents("php://input");
    $result = 1;
    $reasonCode ="";
    try{
                            $ar = json_decode($postdata);
                if( ! checkNull($ar) ){
                            if(!(checkNullOrEmpty($ar->serialnumber)
                                    || checkNullOrEmpty($ar->authtoken)
                                    || checkNullOrEmpty($ar->caauthority)
                                                            || checkNullOrEmpty($ar->reason))) {
                            
                                                            $check = $ar->caauthority . ":" . $ar->serialnumber;
                  $res_pubkey = openssl_pkey_get_public(file_get_contents("certs/SignerCertificate.pem"));
                                    $payload = JWT::decode($ar->authtoken, $res_pubkey, true);
                                    if(strcmp($check, $payload->sub) == 0){
                                                    $cmd="certutil -config \"$ar->caauthority\"  -revoke $ar->serialnumber $ar->reason" ;
                                                    exec($cmd);
                                                    $status = "0";
                                                    $message="Certificate Revoked Successfully" ;
                                                    $result = 0;              
                                    } else {
                                                                    $status = "337";
                                                                    $message = "Revoke request does not match with Authentication subject";
                                                                    $result = 4;              
                                                            }
                                            } else {
                                                            $result = 2;
                                                            $message = "Missing request parameters";
                            }
                    } else {
                                        $result = 3;
                $status = "335";
                                $message = "Http Get is not supported";
                    }
    } catch (Exception $ex){
       $result = 1;
       $reasonCode = "Authentication Token verification failed";
    }
    if($result == 1){
        $status = "333" ;
                $message = "Certificate revoke failed.  Reason $reasonCode";
    } else if($result == 2){
            $status = "333";
    }
    $data="{ \"message\": \"$message\", \"code\": \"$status\"}";
    header("Content-Type: application/json");
    print ($data);
    ?>
    
  2. JWT.phpという名前のテキスト・ファイルを作成し、次に示すコードを追加します。

    このファイルを、第12.4.2項「IISでの証明書失効アプリケーションのデプロイ」の手順2で選択した証明書失効アプリケーションの物理パスのルートに保存します。

    JWT.phpファイルの内容

    <?php
    class JWT
    {
        public static function encode($payload, $key, $algo = 'HS256')
        {
           $header = array('typ' => 'JWT', 'alg' => $algo);
           $segments = array(
               JWT::urlsafeB64Encode(json_encode($header)),
               JWT::urlsafeB64Encode(json_encode($payload))
           );
           $signing_input = implode('.', $segments);
           $signature = JWT::sign($signing_input, $key, $algo);
           $segments[] = JWT::urlsafeB64Encode($signature);
           return implode('.', $segments);
        }
     
        public static function decode($jwt, $key = null, $verify = true)
        {
           $tks = explode('.', $jwt);
           if (count($tks) != 3) {
               throw new Exception('Wrong number of segments');
           }
           list($headb64, $payloadb64, $cryptob64) = $tks;
           if (null === ($header = json_decode(JWT::urlsafeB64Decode($headb64))))
           {
               throw new Exception('Invalid segment encoding');
           }
           if (null === $payload = json_decode(JWT::urlsafeB64Decode($payloadb64))) 
          {
               throw new Exception('Invalid segment encoding');
           }
           $sig = JWT::urlsafeB64Decode($cryptob64);
           if ($verify) {
               if (empty($header->alg)) {
                   throw new DomainException('Empty algorithm');
               }
               if (!JWT::verifySignature($sig, "$headb64.$payloadb64", $key, $header->alg)) {
                   throw new UnexpectedValueException('Signature verification failed');
               }
          }
          return $payload;
       }
            
        public static function getSignature($jwt, $key = null, $verify = true)
        {
           $tks = explode('.', $jwt);
           if (count($tks) != 3) {
               throw new Exception('Wrong number of segments');
           }
           list($headb64, $payloadb64, $cryptob64) = $tks;
           if (null === ($header = json_decode(JWT::urlsafeB64Decode($headb64)))) {
               throw new Exception('Invalid segment encoding');
           }
           if (null === $payload = json_decode(JWT::urlsafeB64Decode($payloadb64))) 
          {
               throw new Exception('Invalid segment encoding');
           }
           $sig = JWT::urlsafeB64Decode($cryptob64);        
           return $sig;
        }
            
        private static function verifySignature($signature, $input, $key, $algo = 'HS256')
        {
           switch ($algo) {
               case'HS256':
               case'HS384':
               case'HS512':
                   return JWT::sign($input, $key, $algo) === $signature;
               case 'RS256':
                   return (boolean) openssl_verify($input, $signature, $key, OPENSSL_ALGO_SHA256);
               case 'RS384':
                   return (boolean) openssl_verify($input, $signature, $key, OPENSSL_ALGO_SHA384);
               case 'RS512':
                   return (boolean) openssl_verify($input, $signature, $key, OPENSSL_ALGO_SHA512);
               default:
                   throw new Exception("Unsupported or invalid signing algorithm.");
           }
        }
        private static function sign($input, $key, $algo = 'HS256')
        {
           switch ($algo) {
               case 'HS256':
                   return hash_hmac('sha256', $input, $key, true);
               case 'HS384':
                   return hash_hmac('sha384', $input, $key, true);
               case 'HS512':
                   return hash_hmac('sha512', $input, $key, true);
               case 'RS256':
                   return JWT::generateRSASignature($input, $key, OPENSSL_ALGO_SHA256);
               case 'RS384':
                   return JWT::generateRSASignature($input, $key, OPENSSL_ALGO_SHA384);
               case 'RS512':
                   return JWT::generateRSASignature($input, $key, OPENSSL_ALGO_SHA512);
               default:
                   throw new Exception("Unsupported or invalid signing algorithm.");
           }
        }
        private static function generateRSASignature($input, $key, $algo)
        {
           if (!openssl_sign($input, $signature, $key, $algo)) {
               throw new Exception("Unable to sign data.");
           }
           return $signature;
        }
        private static function urlSafeB64Encode($data)
        {
           $b64 = base64_encode($data);
           $b64 = str_replace(array('+', '/', '\r', '\n', '='),
                   array('-', '_'),
                   $b64);
           return $b64;
        }
        private static function urlSafeB64Decode($b64)
        {
           $b64 = str_replace(array('-', '_'),
                   array('+', '/'),
                   $b64);
           return base64_decode($b64);
        }
    }
    ?>
    

12.4.4 IISでのモバイル・セキュリティ・マネージャ証明書のインポート

この項では、モバイル・セキュリティ・マネージャ証明書を証明書失効アプリケーションの物理パスにインポートする方法について説明します。この手順は、証明書失効アプリケーションが証明書失効リクエストをモバイル・セキュリティ・マネージャからのものとして認証できるようにするために必要です。

  1. モバイル・セキュリティ・マネージャ証明書をモバイル・セキュリティ・マネージャ・サーバーからエクスポートします。

    1. モバイル・セキュリティ・マネージャのインストール・ディレクトリに移動します。

      <DOMAIN_HOME>/config/fmwconfig

    2. 次のコマンドを使用して証明書をエクスポートします。

      keytool -alias oraclemsm -exportcert -file oraclemsm.crt -keystore OracleMSMCertificates.p12 -storepass <KeyStorePassword> -storetype pkcs12


      ヒント:

      キーストアのパスワードは、CSFからマップ名msmおよびキーserverKeystoreKeyを使用して取得できます。

  2. NDESサーバー上で次のコマンドを使用し、生成されたDERエンコード済の証明書をPEM形式に変換します。

    openssl x509 -inform der -in oraclemsm.crt -out SignerCertificate.pem

  3. SignerCertificate.pemファイルを、証明書失効アプリケーションの物理パスの下にある/certsディレクトリにコピーします。

    <PHYSICAL_PATH>/certs/SignerCertificate.pem

12.4.5 PHPアプリケーションを実行するためのIISの構成

この項では、PHPアプリケーションをサポートするようにNDESサーバー上のIISを構成する方法について説明します。


注意:

IISインスタンスがすでにPHPアプリケーションを実行するように構成されている場合は、この項の手順を省略してください。CGI役割サービスが構成されているがPHPが有効化されていない場合は、手順1を省略してください。

  1. CGI役割サービスをIISに追加します。

    1. Server Managerアプリケーションを開きます。

      左側のペインで、「Roles」を展開し、「Web Server (IIS)」を右クリックして「Add Role Services」を選択します。

      「Add Role Services」ダイアログが開きます。

      図12-4 Server Managerアプリケーション

      図12-4の説明が続きます
      「図12-4 Server Managerアプリケーション」の説明

    2. 「Web Server (Installed)」「Application Development (Installed)」を展開し、「CGI」チェック・ボックスを選択します。

      図12-5 「Add Role Services」ダイアログ

      図12-5の説明が続きます
      「図12-5 「Add Role Services」ダイアログ」の説明

    3. 「Security」を展開し、「Windows Authentication」チェック・ボックスを選択します。

    4. 「Management Tools」を展開し、「IIS 6 Management Compatibility」チェック・ボックスを選択すると、「IIS 6 Management Compatibility」の下位項目がすべて選択されます。

    5. 「Next」を選択します。

    6. 「Install」を選択します。

  2. PHPリクエストを処理するようにIISを構成します。

    1. NDES IISインスタンスのInternet Information Services (IIS) Managerアプリケーションを開きます。

      サーバーを選択し、「Handler Mappings」をダブルクリックします。

    2. 右側の「Actions」ペインの「Add Module Mapping」をクリックします。

    3. 「Request path」に対して「*php」と入力します。

    4. 「Module」に対して「FastCGIModule」を選択します。

    5. 「Executable」には<PHP_INSTALLATION_HOME>/php-cgi.exe」と入力します。参照画面から選択する場合は、ファイルの種類がデフォルトでは「(*.dll)」となるため、必ず「(*.exe)」を選択してください。

    6. 「Name」「PHP using FASTCGI」と入力します。

    7. 「OK」ボタンをクリックします。

      「Add Module Mapping」確認ダイアログが開きます。

      図12-6 「Add Module Mapping」確認ダイアログ

      図12-6の説明が続きます
      「図12-6 「Add Module Mapping」確認ダイアログ」の説明

    8. 「Yes」をクリックしてFastCGIアプリケーションをPHP用に追加します。

    9. 「Actions」ペインの「Edit Feature Permissions....」をクリックします。

      「Edit Feature Permissions」ダイアログが開きます。

      「Script」の下の「Execute」を選択して「OK」をクリックします。

    10. 「Actions」ペインの「Edit...」をクリックします。

      「Request Restrictions」をクリックし、「Access」タブを選択し、「Execute」が選択されていることを確認します。「OK」をクリックして「Edit Module Mapping」ダイアログを閉じます。

  3. PHP MIMEタイプを追加します。

    1. IIS ManagerアプリケーションでNDESサーバー・インスタンスを選択し、「MIME Types」をダブルクリックします。

    2. 「Actions」ペインの「Add」を選択します。

      「Add MIME Type」ダイアログが開きます

      図12-7 「Add MIME Type」ダイアログ

      図12-7の説明が続きます
      「図12-7 「Add MIME Type」ダイアログ」の説明

    3. 次のとおりにフォームに入力して「OK」をクリックします。

      File name extension -「.php」と入力します

      MIME type - 「application/x-httpd-php」と入力します

12.5 モバイル・セキュリティ・マネージャと連携するためのMicrosoft Exchange (Secure Mail)の構成

この手順を使用して、モバイル・セキュリティ・マネージャとMicrosoft Exchangeが連携するように構成します。

  1. モバイル・セキュリティ・マネージャに対して、Exchangeサーバーに関する情報を指定します。

    1. 「モバイル・セキュリティ設定」ページを開きます。詳細は、第11.2.2項「「モバイル・セキュリティ設定」ページを開く方法」を参照してください。

    2. メニュー・バーの「Exchange Server設定」をクリックします。(「Exchange Server設定」が表示されていない場合は、矢印ボタンを使用してメニュー・バーを右にスクロールしてください。または、下矢印をクリックして、その他のメニュー項目を表示します。)

      「Exchange Server設定」ページが開きます。

    3. 「Exchange Server設定」フォームを構成します。オンライン・ヘルプに記載されているフィールドの説明を参照するか、『Oracle Mobile Security Suiteコンソール・ヘルプ・リファレンス』を参照してください。

      図12-8 「Exchange Server設定」ページ

      図12-8の説明が続きます
      「図12-8 「Exchange Server設定」ページ」の説明

  2. エンド・ユーザーがExchangeサーバー上の電子メールにアクセスできるように、ポリシーの「ワークスペース」タブを変更します。

    1. 更新する最初のポリシーを検索します。詳細は、第8.7.1項「モバイル・セキュリティ・マネージャでポリシー・レコードを検索する方法」を参照してください。

    2. 検索結果セクションで、ポリシー・レコードをクリックしてポリシー詳細を展開してから、「ワークスペース」タブをクリックしてワークスペース・ポリシーを開きます。

    3. 「ワークスペース/アプリケーション」セクションを展開し、「電子メール」を許可の対象として選択します。

    4. 「アプリケーション設定」セクションを展開し、「PIM」の横の「許可」を選択します。

      「電子メール・サーバーURL」フィールドに、ActiveSyncサーバーのURLを入力します(例: https://mail1.example.com)。

    5. 「適用」をクリックして変更内容を保存してから、更新が必要な残りのポリシー(ある場合)に対してこの手順を繰り返します。

      図12-9 ユーザーに電子メールへのアクセスを許可するポリシー設定

      図12-9の説明が続きます
      「図12-9 ユーザーに電子メールへのアクセスを許可するポリシー設定」の説明

  3. Exchange Serverのセキュリティ証明書をMSASサーバーのトラスト・ストアにインポートします。

    1. Exchange Serverの証明書を、Oracle Access Managementサーバー上の一時フォルダにダウンロードします(例: /tmp/example-exchange.cer)。

    2. 次のWLSTコマンドを使用して証明書をMSASサーバーのトラスト・ストアにインポートします。

      wls:/offline>connect('@ADMIN_USER','@ADMIN_PWD','t3://@MSM_HOST:@MSM_ADMIN_PORT')
      wls:/idmdomain/serverConfig>svc = getOpssService(name='KeyStoreService') 
      wls:/idmdomain/serverConfig>svc.importKeyStoreCertificate(appStripe=
       '@MSAS_INSTANCE_NAME',name='ssltruststore',password='pass1234',
       alias='mailca', keypassword='',type='TrustedCertificate',
       filepath='/tmp/example-exchange.cer')
      
  4. モバイル・セキュリティ・マネージャのAPNS (Apple Push Notification Service)およびGCM (Google Cloud Messaging)の設定で、APNS/GCMサーバーから新しいメールやカレンダ・リクエストに関するプッシュ通知を受け取るように構成します。

    APNS (iOSデバイス用)を構成するには、次のようにします。

    1. 「モバイル・セキュリティ設定」ページを開きます。詳細は、第11.2.2項「「モバイル・セキュリティ設定」ページを開く方法」を参照してください。

    2. メニュー・バーの「Apple Push Notification Serviceの設定」(APNS)をクリックします。(このオプションが表示されていない場合は、矢印ボタンを使用してメニュー・バーを右にスクロールしてください。または、下矢印をクリックして、その他のメニュー項目を表示します。)

      「Apple Push Notification Serviceの設定」(APNS)ページが開きます。

    3. 「追加」をクリックし、設定表に新規行を作成します。「証明書名」には名前を「Secure Mail」と入力し、「証明書パスワード」にはパスワードを入力し、「証明書ファイル」では「ファイルの選択」をクリックして証明書をアップロードします。

      オンライン・ヘルプに記載されているフィールドの説明を参照するか、『Oracle Mobile Security Suiteコンソール・ヘルプ・リファレンス』を参照してください。

    4. 「適用」をクリックして、変更を保存します。

    GCM (Androidデバイス用)を構成するには、次のようにします。

    1. 「モバイル・セキュリティ設定」ページを開きます。詳細は、第11.2.2項「「モバイル・セキュリティ設定」ページを開く方法」を参照してください。

    2. メニュー・バーの「Google Cloud Messaging設定」(GCM)をクリックします。(このオプションが表示されていない場合は、矢印ボタンを使用してメニュー・バーを右にスクロールしてください。または、下矢印をクリックして、その他のメニュー項目を表示します。)

      「Google Cloud Messaging設定」(GCM)ページが開きます。

    3. 「追加」をクリックし、設定表に新規行を作成します。「アプリケーションID」には「com.nitrodesk.honey.nitroid」と入力し、「送信者ID」には送信者IDの値を入力し、APIキーにはサーバー認証キー(サード・パーティ・アプリケーション・サーバーに保存されており、アプリケーション・サーバーはこれを使用するとGoogleのサービスにアクセスできる)を入力します。

      オンライン・ヘルプに記載されているフィールドの説明を参照するか、『Oracle Mobile Security Suiteコンソール・ヘルプ・リファレンス』を参照してください。

    4. 「適用」をクリックして、変更を保存します。

12.6 Oracle Mobile Security SuiteでOracle Access Management 11gR2 PS2を認証およびSSOに使用するための構成

Oracle Access Management 11gR2 PS2がすでに環境にデプロイされている場合は、Oracle Mobile Security Suiteでそのバージョンを認証およびSSOに使用できますが、OMSSが別のWLSドメイン内のOracle Access Management 11gR2 PS3にデプロイされていることが前提となります。このように構成するには、Oracle Access Management 11gR2 PS3のMobile and Socialサービスを使用する必要があります。

開始する前に - Oracle Access Management 11gR2 PS3をホスト1にインストールし、Oracle Access Management 11gR2 PS2をホスト2にインストールします。

  1. ホスト2のOracle Access Managementコンソールにログインし、デフォルト設定を使用して、Mobile and Socialサービス用のWebゲート・プロファイルを作成します。

    次のオプションを設定してください。

    • 管理操作の許可

    • トークン・スコープ操作の許可

    • マスター・トークン取得の許可

    • 資格証明コレクタ操作の許可

    「アクセス・クライアント・パスワード」フィールドにパスワードを入力します。

  2. 次に、ホスト1 (OAM 11.1.2.3)上のOAM認証トークン・サービス・プロバイダがホスト2上のWebゲートを使用してOAM 11.1.2.2に接続できるように構成します。

    ホスト1上のOracle Access Managementコンソールにログオンし、「モバイル・セキュリティ」「Mobile and Socialサービス」を選択します。

    「サービス・プロバイダ」セクションで、「OAMAuthentication」を選択し、「編集」をクリックします。

    即時利用可能なOracle Access Manager (OAM)認証トークンの「サービス・プロバイダの構成」フォームが開きます。

    フォームを次のように変更します。

    • OAM_VERSION属性は、デフォルト値OAM_11Gのままにします。

    • OAM_SERVER_1属性の値は、ホスト2サーバーの正しいOAMホスト名およびポートを使用するように、たとえば次のように変更します。

      oam-host.example.com:5575

    • OAM_LOCAL_MODE属性の値をfalseに変更します。

    • 「Webゲート・エージェント」セクションでは、次のようにします。

      • 「WebゲートID」の値を、OAM 11gR2 PS2を使用して作成したWebゲートの名前に変更します。

      • 「暗号化パスワード」は、OAM R2 PS2サーバー上のObAccessClient.xmlからコピーしたaccessClientPasswdの値で置き換えます。例: (ParamName="accessClientPasswd" Value="<この暗号化パスワード値をコピーします>")

    図12-10 OAM認証トークンの「サービス・プロバイダの構成」フォーム

    図12-10の説明が続きます
    「図12-10 OAM認証トークンの「サービス・プロバイダの構成」フォーム」の説明

  3. この手順では、ホスト1上のOAuthモバイル・サービス・プロバイダがホスト2上のOracle Access Managerを使用するように変更を加えます。このようにすると、ホスト1の認証リクエストはホスト2にルーティングされます。

    ホスト1上のOracle Access Managementコンソールを使用して、「モバイル・セキュリティ」「モバイルOAuthサービス」ドメイン名「サービス・プロバイダ」→「OAuthServiceProvider」を選択します。

    「モバイル・サービス・プロバイダの構成」フォームが開きます。

    次のとおりにフォームを変更し、「保存」をクリックします。

    • oam.WEBGATE_ID属性の値を、OAM 11gR2 PS2を使用して作成したWebゲートの名前に変更します。

    • oam.ENCRYPTED_PASSWORD属性の値は、OAM R2 PS2サーバー上のObAccessClient.xmlからコピーしたaccessClientPasswdの値で置き換えます。例: (ParamName="accessClientPasswd" Value="<この暗号化パスワード値をコピーします>")

    • oam.OAM_SERVER_1属性の値は、OAM 11gR2 PS2サーバーの正しいOAMホスト名およびポートを使用するように、たとえば次のように変更します。

      oam-host.example.com:5575

    • oam.OAM_SERVER_2属性の値は、OAM 11gR2 PS2サーバーと同じOAMホスト名およびポートを使用するように変更します(oam-host.example.com:5575)。

    • oam.OAM_LOCAL_MODE属性の値をfalseに変更します。

    図12-11 OAuthの「モバイル・サービス・プロバイダの構成」フォーム

    図12-11の説明が続きます
    「図12-11 OAuthの「モバイル・サービス・プロバイダの構成」フォーム」の説明

  4. ホスト1上で、ホスト2のcwalletファイルからの資格証明情報をOracle Access Managerデータベースにマージするための準備を行います。ホスト2のcwalletファイルは、Webゲート・プロファイルをホスト2で作成したときに作成されたものです。

    1. ホスト1上のfmwconfigがある場所に移動します。

      ホスト1のコマンド・プロンプトで次のとおりに入力します。

      cp jps-config-jse.xml jps-config-db-mig.xml
      
    2. ホスト1で、/tmp/oamディレクトリを作成してから、ホスト2のcwallet.ssoファイルを/tmp/oamにコピーします。

      ホスト1のコマンド・プロンプトで次のとおりに入力します。

      # mkdir /tmp/oam 
      # cp <host>/cwallet.sso /tmp/oam  
          
      
    3. ホスト1で、cwallet.ssoファイルをエディタで開いて次の値を追加し、ファイルを保存します。

      <serviceInstance location="/tmp/oam" provider="credstoressp" name="credential.file.source">
        <property name="location" value="/tmp/oam" />
      </serviceInstance>
       
      <jpsContext name="FileSourceContext">
        <serviceInstanceRef ref="credential.file.source"/>
      </jpsContext>
       
      <jpsContext name="FileDestinationContext">
        <serviceInstanceRef ref="credstore.db"/>
      </jpsContext>
      
  5. 資格証明を移行するために、このWLSTコマンドをホスト1で実行します。

    migrateSecurityStore(type="credStore",
    configFile="fmwconfig/jps-config-db-mig.xml", src="FileSourceContext",dst="FileDestinationContext")
    
  6. 移行が成功したことを確認するために、Enterprise Managerでのテストを行います。

    1. Enterprise Manager (EM)コンソールを開いて、「welogicdomain」「セキュリティ」「資格証明」に移動します。

    2. 「資格証明ストア」で「OAMAgent」を展開します。

    3. ホスト2 (OAM 11gR2 PS2)で作成したWebゲート・プロファイルに対応するキーが生成されたことを確認します。たとえば、作成したWebゲートのWebゲートIDがwebgate-oauthの場合、キーはwebgate-oauth_Keyという名前で作成されます。

  7. ホスト1のOAMサーバーを再起動します。