ヘッダーをスキップ
Oracle® Fusion Middlewareアプリケーション・セキュリティ・ガイド
11gリリース1(11.1.1)
B56235-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

8 資格証明ストアの構成

資格証明ストアは、セキュリティ・データ(資格証明)のリポジトリです。資格証明には、ユーザー名とパスワードの組合せ、チケットまたは公開鍵証明書を格納できます。資格証明は、認証の際、プリンシパルをサブジェクトに移入するときに使用し、さらに認可時には、サブジェクトが実行できるアクションを決定するときに使用します。

Oracle Platform Security Servicesは資格証明ストア・フレームワーク(CSF)を備えています。これは、アプリケーションで資格証明を安全に作成、読取り、更新および管理する際に使用できる一連のAPIです。資格証明ストアは、データベースやLDAPベースのリポジトリなどの外部システムにアクセスするための資格証明(ユーザー名およびパスワード)の格納に使用します。

この章の内容は次のとおりです。

8.1 資格証明のタイプ

OPSSでは、そこに置かれたデータに応じて次のタイプの資格証明がサポートされています。

CSFでは、資格証明は、マップ名およびキー名によって一意に識別されます。通常、マップ名は、アプリケーションの名前に対応しており、同じマップ名を持つすべての資格証明により、資格証明の論理グループ(そのアプリケーションによって使用される資格証明など)が定義されます。マップ名とキー名の組合せは、資格証明ストアにあるすべてのエントリで一意である必要があります。

デフォルトの資格証明ストアはOracleウォレットです。本番環境では、資格証明ストアとしてLDAPベースのOracle Internet Directoryを使用することをお薦めします。また、X.509証明書の格納にはOracleウォレットを使用することをお薦めします。資格証明ストアでは、エンドユーザーのデジタル証明は格納できません。

8.2 LDAPベースの資格証明ストアを使用するためのドメインの構成

LDAPベースの資格証明ストアは本番環境に適しており、通常、本番環境で使用されます。サポートされているLDAPサーバーは、Oracle Internet Directoryのみです。

ドメインでLDAPベースの資格証明ストアを使用する場合、ドメイン管理者は必要に応じてOracle Enterprise Manager Fusion Middleware ControlまたはWLSTコマンドを使用し、その資格証明ストアを構成する必要があります。

LDAPベースの資格証明ストアを使用するための前提条件は、LDAPベースのポリシー・ストアを使用するための前提条件と同じです。詳細は、第7.1.2項「LDAPベースのポリシー・ストアを使用する場合の前提条件」を参照してください。

分散環境では、LDAPベースの資格証明ストアをお薦めします。詳細は、第7.1.1項「複数ノード・サーバー環境」を参照してください。

8.3 ドメイン資格証明ストアの再関連付け

第7.2項「ドメイン・ポリシー・ストアの再関連付け」の説明にあるとおり、Fusion Middleware ControlまたはWLSTコマンドreassociateSecurityStoreを使用すると、資格証明ストアとポリシー・ストアの両方をまとめて再関連付けできます。

8.4 ドメイン資格証明ストアへの資格証明の移行

1つのドメインに設定できる資格証明ストアは1つです。アプリケーション固有の資格証明がサポートされており、それらはアプリケーションがデプロイされるときにドメイン資格証明ストアの資格証明に移行されます。したがって、ドメイン内にデプロイされたすべてのサーバーおよびすべてのアプリケーションで、共通の資格証明ストアであるドメイン資格証明ストアが使用されます。資格証明ストアへのアクセスにはパーミッションが必要です。

次の項では、Fusion Middleware ControlまたはWLSTコマンドを使用してアプリケーションをデプロイするときに、ドメイン資格証明ストアに資格証明を移行する方法について説明します。


注意:

WebLogic Serverにデプロイしたアプリケーションのアプリケーション・ポリシーと資格証明の移行を無効にするには、システム・プロパティ jps.deployment.handler.disabledを使用します。

このシステム・プロパティをTRUEに設定すると、すべてのアプリケーションで、デプロイメント時のポリシーおよび資格証明の移行が無効になります。アプリケーション・ファイルweblogic-application.xmlにあるアプリケーション個別の設定は無視されます。


8.4.1 Fusion Middleware Controlを使用したアプリケーション資格証明の移行

アプリケーションの資格証明は、アプリケーション・ファイルcwallet.ssoで指定し、WebLogic環境の管理対象サーバーにアプリケーションがデプロイまたは再デプロイされるときにドメイン資格証明ストアに移行できます。

資格証明の移行は、ポリシーの移行とはいくつかの点で異なります。(a)資格証明は、アプリケーションをアンデプロイするときに自動的に削除できません。(b)デプロイまたは再デプロイするときの上書きによる資格証明の移行は、WebLogicドメインが開発モードで稼働している場合にのみ実行できます。

詳細は、第6.5.2項「デプロイ時のポリシーおよび資格証明の移行」の手順を参照してください。

8.4.2 コマンドmigrateSecurityStoreを使用した資格証明の移行

WLSTコマンドmigrateSecurityStoreを使用すると、特定の資格証明マップまたはすべてのマップにあるすべての資格証明を、ソース・リポジトリからターゲット・リポジトリに手動で移行できます。

このコマンドはオフラインなので、実行中のサーバーに接続しなくても機能します。したがって、引数configFileで渡す構成ファイルは実際のドメイン構成ファイルである必要はなく、移行のソース・リポジトリとターゲット・リポジトリを指定するようにアセンブルするだけで済みます。

ソース・データおよびターゲット・データを格納するリポジトリの種類はこのコマンドに対して透過的であり、ファイルベースのリポジトリとLDAPベースのリポジトリを任意に組み合せて指定できます(LDAPリポジトリでは、Oracle Internet Directory LDAPサーバーのみを使用できます)。

このコマンドは通常、テスト環境から本番環境に移行する場合、またはドメイン間でポリシーまたは資格証明データの再製を実行する場合に使用します。

第7.1.2項「LDAPベースのポリシー・ストアを使用する場合の前提条件」の説明にあるように、このコマンドを使用する前にターゲットのLDAPサーバーを設定しておく必要があります。


注意:

コマンドmigrateSecurityStoreではGUIDが再作成されるので、大量のデータを移行する場合は長時間を要します。そのため、Oracle Internet Directoryの一括操作を使用する別の手順によるストアの移行を検討することをお薦めします。詳細は、第6.5.2.3項「大量のポリシー・ストアおよび資格証明ストアの移行」を参照してください。

後述のコマンドは、インタラクティブ・モードでもスクリプト・モードでも実行できます。インタラクティブ・モードの場合は、コマンドライン・プロンプトにコマンドを入力すると、応答が即座に表示されます。スクリプト・モードの場合、コマンドはテキスト・ファイル(ファイル名拡張子は.py)に記述するので、シェル・スクリプトのディレクティブのように入力なしで実行できます。

WLSTコマンドとその構文の詳細は、『Oracle Fusion Middleware WebLogic Scripting Tool Command Reference』を参照してください。


重要:

シェル内でセキュリティ関連のWLSTコマンドを起動する前に、次のサンプルで説明するように、wlst.shスクリプトを実行する必要があります。
> sh $ORACLE_HOME/common/bin/wlst.sh

これにより、必要なJARがクラスパスに確実に追加されるようになります。新しいシェル内で前述のスクリプトを実行しないと、WLSTコマンドが使用できない状態になります。

オンライン・コマンドを実行する前に、次のようにサーバーに接続します。

>java weblogic.WLST
>connect('servername', 'password', 'localhost:portnum')

スクリプト・モードおよびインタラクティブ・モードの構文

コマンド構文は、移行する資格証明の範囲(特定のマップにある資格証明であるか、すべての資格証明であるか)によって異なります。オプションの引数は、大カッコで囲みます。

すべての資格証明を移行するには、スクリプト(最初)またはインタラクティブな(2番目)構文を使用します(明確にするために引数は別の行に記述)。

migrateSecurityStore.py -type credStore
                     -configFile jpsConfigFileLocation
                     -src srcJpsContext
                     -dst dstJpsContext
migrateSecurityStore(type="credStore", configFile="jpsConfigFileLocation", src="srcJpsContext", dst="dstJpsContext")

引数(すべて必須)の意味は、次のとおりです。

  • configFileでは、構成ファイルjps-config.xmlの位置を、このコマンドを実行するディレクトリを基準とした相対パスで指定します。通常、この構成ファイルはコマンドで使用するためにのみ作成し、他の目的には使用しません。このファイルには、ソース・ストアとターゲット・ストアを指定する2つのjps-contextがあります。

    また、1つまたは2つのLDAPベース・ストアを対象とする移行では、cwallet.ssoファイルの場所を指すブートストラップjps-contextをこのファイルに追加する必要があります。cwallet.ssoファイルには、移行の対象となるLDAPベース・ストアにアクセスするための資格証明を格納します。後述の2番目のサンプルを参照してください。詳細は、第14.4.7項「ブートストラップ資格証明の手動による指定」を参照してください。

  • srcでは、引数configFileで渡す構成ファイル内のjps-contextの名前を指定します。このコンテキストでソース資格証明リポジトリを特定します。

  • dstでは、引数configFileで渡す構成ファイル内の別のjps-contextの名前を指定します。このコンテキストでターゲット資格証明リポジトリを特定します。

srcおよびdstで渡すコンテキストは、渡される構成ファイル内で定義し、一意である必要があります。これら2つのコンテキストから、このコマンドは移行に関与するソース・リポジトリおよびターゲット・リポジトリの位置を特定します。

1つの資格証明マップのみを移行するには、次のスクリプト構文(1番目の記述)またはインタラクティブな構文(2番目の記述)を使用します(ここでは、見やすくするために各引数をそれぞれ別の行に記述しています)。

migrateSecurityStore.py -type folderCred
                     -configFile jpsConfigFileLocation
                     -src srcJpsContext
                     -dst dstJpsContext
                     [-srcFolder map1]
                     [-dstFolder map2]
                                     [-srcConfigFile alternConfigFileLocation]
                     [-overWrite trueOrFalse]
migrateSecurityStore(type="folderCred", configFile="jpsConfigFileLocation", src="srcJpsContext", dst="dstJpsContext", [srcFolder="map1"], 
[dstFolder="map2"], [srcConfigFile="alternConfigFileLocation"], [overWrite="trueOrFalse"])

configFilesrcおよびdstの各引数の意味は、前述の場合と同じです。最後の4つの引数(すべてオプション)の意味は次のとおりです。

  • srcFolderでは、移行する資格証明を収めたマップの名前を指定します。この引数は、オプションです。指定しない場合、資格証明ストアにはマップが1つのみであると想定され、この引数の値はデフォルトでそのマップの名前になります。

  • dstFolderでは、ソース資格証明の移行先のマップを指定します。この引数はオプションであり、指定しない場合は、デフォルトでsrcFolderに渡されるマップになります。

  • srcConfigFileでは、代替構成ファイルの場所を指定します。これは、configFileに渡されるファイルで資格証明が構成されていないという特別な場合に使用されます。この引数は、オプションです。指定しない場合、デフォルトでconfigFileに渡される値になります。指定した場合、configFileに渡される値は無視されます。

  • overWriteでは、ソース資格証明と一致するターゲット資格証明をソース資格証明で上書きするか、ソース資格証明とマージするかを指定します。ターゲット資格証明を上書きする場合はTrueに設定し、一致する資格証明をマージする場合はFalseに設定します。この引数はオプションです。指定しなかった場合は、デフォルトでFalseに設定されます。Falseに設定した場合、一致する資格証明が検出されると、ソース資格証明は無視され、警告がログに記録されます。

前述の構文に一致しない入力を指定すると、コマンドの実行に失敗し、エラーが返されます。特に、入力は次の要件を満たす必要があります。(a)渡された位置内でファイルjps-config.xmlが検出されること、(b)渡されたjps-contextsがファイルjps-config.xmlに含まれていること、(c)ソースおよびターゲットのコンテキスト名が一意であること。

使用例は、第6.5.2.2項「資格証明の手動による移行」を参照してください。

8.5 ドメイン資格証明ストアの管理

資格証明をプロビジョニング、取得、変更または削除できるのは、適切な管理ロールのユーザーのみです。次の項では、管理者がFMCページまたはWLSTコマンドを使用して資格証明を管理する方法と、コードからCSF内のデータにアクセスする方法を示します。

8.5.1 Fusion Middleware Controlを使用した資格証明の管理

Fusion Middleware Controlを使用して、「資格証明の管理」の説明のように、ドメイン内で使用される資格証明ストア・プロバイダのタイプに関係なく、WebLogicドメイン内の資格証明を管理できます。

このタスクは、アプリケーションにパッケージ化した資格証明を、ターゲット環境で有効な別の資格証明に置き換える場合などに実行します。

8.5.1.1 資格証明の管理

この項では、Fusion Middleware Controlを使用してドメイン資格証明ストアにある資格証明を管理する手順について説明します。この管理には、資格証明ストアに格納した資格証明の作成、表示、削除、更新などがあります。

  1. Oracle Enterprise Managerにログインし、「ドメイン」→「セキュリティ」→「資格証明」に移動し、「資格証明」ページを表示します。このページの一部を次の図に示します。

    emsyscreds.gifについては周囲のテキストで説明しています。

    資格証明ストア・プロバイダ」領域は読取り専用です。この領域を開くと、ドメインで現在使用している資格証明ストア・プロバイダが表示されます。

    この読取り専用領域にある表を使用して、資格証明の作成、編集および検索が可能です。

  2. どの時点でも、「削除」ボタンを使用すると、表で選択した項目(キーまたはマップ)が削除されます。資格証明マップを削除すると、そのマップにあるすべてのキーが削除されます。同様に、選択した項目のデータを表示または変更するには、「編集」ボタンを使用します。

  3. 指定したキー名と一致する資格証明を表示するには、「資格証明キー名」ボックスに一致対象の文字列を入力し、ボックスの右側にある青いボタンをクリックします。問合せの結果が、表に表示されます。

  4. 問合せの結果を調べた後、資格証明のリストを再表示するには、「ドメイン名」→「セキュリティ」→「資格証明」を選択します。

資格証明マップを作成する手順は、次のとおりです。

  1. マップの作成」をクリックして、「マップの作成」ダイアログ・ボックスを表示します。

  2. このダイアログ・ボックスで、作成する資格証明のマップの名前を入力します。

  3. OK」をクリックして、「資格証明」ページに戻ります。新しい資格証明マップ名が、マップ・アイコンとともに表に表示されます。

資格証明マップにキーを追加する手順は、次のとおりです。

  1. キーの作成」をクリックして、「キーの作成」ダイアログ・ボックスを表示します。

  2. このダイアログ・ボックスで、「マップの選択」メニューからキーの挿入先マップを選択し、「キー」テキスト・ボックスにキーを入力します。「タイプ」メニューからタイプを選択し(選択したタイプに応じてダイアログ・ボックスの外観が変わります)、必要なデータを入力します。

  3. 完了したら、「OK」をクリックして「資格証明」ページに戻ります。新しいキーが、選択したマップに対応するマップ・アイコンの下に表示されます。

8.5.2 WLSTコマンドを使用した資格証明の管理

資格証明の管理にFusion Middleware Controlを使用しない場合や多用するタスクを自動的に実行する場合、ドメイン管理者は、セキュリティ関連のWLSTコマンドを呼び出すWLSTスクリプトを作成できます。

オンライン・コマンドとは、それが機能するためにはOracle WebLogic Serverが実行されていることが必要なコマンドです。後述のコマンドはすべて、ファイルベースであるかLDAPベースであるかに関係なく、コマンドが使用可能になる直前に接続していたドメイン資格証明ストアに対して機能します。

読取り専用コマンドは、モニター、オペレータ、コンフィギュレータまたはAdminというロールに属すユーザーのみが実行できます。読取り-書込みコマンドは、Adminまたはコンフィギュレータというロールに属すユーザーのみが実行できます。すべてのWLSTコマンドは、Oracle WebLogic Serverをインストールすれば、追加設定なしで使用できます。

特に明記のないかぎり、後述のコマンドはインタラクティブ・モードでもスクリプト・モードでも実行できます。インタラクティブ・モードの場合は、コマンドライン・プロンプトにコマンドを入力すると、応答が即座に表示されます。スクリプト・モードの場合、コマンドはテキスト・ファイル(ファイル名拡張子は.py)に記述するので、シェル・スクリプトのディレクティブのように入力なしで実行できます。


重要:

シェル内でセキュリティ関連のWLSTコマンドを起動する前に、次のサンプルで説明するように、wlst.shスクリプトを実行する必要があります。
> sh $ORACLE_HOME/common/bin/wlst.sh

これにより、必要なJARがクラスパスに確実に追加されるようになります。新しいシェル内で前述のスクリプトを実行しないと、WLSTコマンドが使用できない状態になります。

オンライン・コマンドを実行する前に、次のようにサーバーに接続します。

>java weblogic.WLST
>connect('servername', 'password', 'localhost:portnum')

WLSTでは、資格証明を管理するために次のコマンドがサポートされています。これらのコマンドは、modifyBootStrapCredentialを除いてすべてオンライン・コマンドです。

8.5.2.1 listCred

コマンドlistCredによって、ドメイン資格証明ストア内の、指定したマップ名とキー名を持つ資格証明の属性値のリストが返されます。このコマンドでは、パスワード・タイプの資格証明にカプセル化されたデータのみがリストされます。

スクリプト・モード構文

listCred.py -map mapName -key keyName

インタラクティブ・モード構文

listCred(map="mapName", key="keyName")

引数(すべて必須)の意味は、次のとおりです。

  • mapでは、マップ名(フォルダ)を指定します。

  • keyでは、キー名を指定します。

使用例

次の呼出しでは、マップ名myMapおよびキー名myKeyを持つ資格証明内のすべての情報(ユーザー名、パスワード、説明など)が返されます。

listCred.py -map myMap -key myKey

8.5.2.2 updateCred

コマンドupdateCredによって、ドメイン資格証明ストア内の、指定したマップ名およびキー名を持つ資格証明のタイプ、ユーザー名およびパスワードが変更されます。このコマンドでは、パスワード・タイプの資格証明にカプセル化されたデータのみが更新されます。インタラクティブ・モードのみがサポートされています。

インタラクティブ・モード構文

updateCred(map="mapName", key="keyName", user="userName", password="passW", [desc="description"])   

引数(オプションの引数は、大カッコで囲んであります)の意味は、次のとおりです。

  • mapでは、資格証明ストアのマップ名(フォルダ)を指定します。

  • keyでは、キー名を指定します。

  • userでは、資格証明のユーザー名を指定します。

  • passwordでは、資格証明のパスワードを指定します。

  • descでは、資格証明を説明する文字列を指定します。

使用例

次の呼出しでは、マップ名myMapおよびキー名myKeyを持つパスワード資格証明のユーザー名、パスワードおよび説明が更新されます。

updateCred(map="myMap", key="myKey", user="myUsr", password="myPassw")

8.5.2.3 createCred

コマンドcreateCredによって、ドメイン資格証明ストア内に、指定したマップ名、キー名、ユーザー名およびパスワードを持つ資格証明が作成されます。このコマンドで作成できるのは、パスワード・タイプの資格証明のみです。インタラクティブ・モードのみがサポートされています。

インタラクティブ・モード構文

createCred(map="mapName", key="keyName", user="userName", password="passW", [desc="description"])  

引数(オプションの引数は、大カッコで囲んであります)の意味は、次のとおりです。

  • mapでは、資格証明のマップ名(フォルダ)を指定します。

  • keyでは、資格証明のキー名を指定します。

  • userでは、資格証明のユーザー名を指定します。

  • passwordでは、資格証明のパスワードを指定します。

  • descでは、資格証明を説明する文字列を指定します。

使用例

次の呼出しでは、指定したデータでパスワード資格証明が作成されます。

createCred(map="myMap", key="myKey", user="myUsr", password="myPassw") 

8.5.2.4 deleteCred

コマンドdeleteCredによって、指定したマップ名およびキー名を持つ資格証明が、ドメイン資格証明ストアから削除されます。

スクリプト・モード構文

deleteCred.py -map mapName -key keyName

インタラクティブ・モード構文

deleteCred(map="mapName",key="keyName")

引数(すべて必須)の意味は、次のとおりです。

  • mapでは、マップ名(フォルダ)を指定します。

  • keyでは、キー名を指定します。

使用例

次の呼出しでは、マップ名myMapおよびキー名myKeyを持つ資格証明が削除されます。

deleteCred.py -map myMap -key myKey

8.5.2.5 modifyBootStrapCredential

オフライン・コマンドmodifyBootStrapCredentialによって、デフォルトのjps-contextで構成されているブートストラップ資格証明が変更されます。このコマンドは通常、次のシナリオで使用されます。ドメイン・ポリシー・ストアおよびドメイン資格証明ストアがLDAPベースであり、LDAPストア(LDAPサーバーに格納)にアクセスするための資格証明が変更されたとします。その場合、このコマンドを使用して、ブートストラップ資格証明ストアにそれらの変更をシードできます。

このコマンドは、ドメイン管理者が実行する必要があります。また、インタラクティブ・モードでのみ使用可能です。

インタラクティブ・モード構文

modifyBootStrapCredential(jpsConfigFile="pathName", username="usrName", password="usrPass")

引数(すべて必須)の意味は、次のとおりです。

  • jpsConfigFileでは、このコマンドを実行する場所を基準とした相対パスでファイルjps-config.xmlの場所を指定します。

  • usernameでは、LDAPストアでのユーザーの識別名を指定します。

  • passwordでは、ユーザーのパスワードを指定します。

使用例

LDAPストアで、cn=orcladminという識別名のユーザーのパスワードがwelcome1に変更されたとします。また、構成ファイルjps-config.xmlは現在のディレクトリにあるとします。この場合、次の呼出しでは、ブートストラップ資格証明ストアにあるパスワードがwelcome1に変更されます。

modifyBootStrapCredential(jpsConfigFile='./jps-config.xml', username='cn=orcladmin', password='welcome1')

監査サービスに関する出力は無視してかまいません。