Oracle® Fusion Middleware Oracle Platform Security Servicesによるアプリケーションの保護 12c (12.1.2) E47967-02 |
|
前 |
次 |
資格証明には、ユーザー名、パスワードおよびチケットを格納できます。資格証明は暗号化できます。資格証明は、認証の際、プリンシパルをサブジェクトに移入するときに使用し、さらに認可時には、サブジェクトが実行できるアクションを決定するときに使用します。
Oracle Platform Security Servicesは資格証明ストア・フレームワーク(CSF)を備えています。これは、アプリケーションで資格証明を安全に作成、読取り、更新および管理する際に使用できる一連のAPIです。資格証明ストアは、データベースやLDAPベースのリポジトリなどの外部システムにアクセスするためのユーザー名およびパスワードの格納に使用します。
この章は次の項に分かれています:
OPSSでは、そこに置かれたデータに応じて次のタイプの資格証明がサポートされています。
パスワード資格証明は、ユーザー名とパスワードをカプセル化します。
汎用資格証明は、対称キーなどの任意のカスタマイズされたデータまたは任意のトークンをカプセル化します。
資格証明は、マップ名およびキー名によって一意に識別されます。マップには複数のキーを保持することができ、通常、マップ名は、アプリケーションの名前に対応しており、同じマップ名を持つすべての資格証明により、資格証明の論理グループ(そのアプリケーションによって使用される資格証明など)が定義されます。マップ名とキー名のペアは、資格証明ストアにあるすべてのエントリで一意である必要があります。
Oracle Walletはデフォルトのファイルベース資格証明ストアであり、X.509証明書を格納でき、本番環境では通常、Oracle Internet Directory LDAPベースまたはDBベースの資格証明ストアを使用します。
OPSSでは、ファイルベースおよびLDAPベースの資格証明ストアでの暗号化データの格納がサポートされていますOPSSでは、暗号化鍵を使用して、資格証明ストアでの読み書き時にデータの暗号化と復号化を行います。この暗号化鍵には、ドメイン・スコープがあります。つまり、ドメインごとに1つのキー(現在のキー)があります。ファイルベースまたはLDAPベースのストアでの資格証明の暗号化を有効にするには、jps-config.xml
ファイルの資格証明ストア・サービス・インスタンスで次のプロパティを設定します。
<property name="encrypt" value="true" />
DBベースの資格証明ストアでは、データは、常にクライアント側の鍵を使用して暗号化されます。
ドメイン暗号化鍵
プロパティencrypt
がtrueに設定されている場合、OPSSでは暗号化鍵を使用して、資格証明ストアに入力された新しい資格証明が暗号化されます。この暗号化鍵は、ドメインが初めて起動されたときにランダムに生成される128ビットのAESキーで、ドメイン全体で有効です。最終的には、このドメイン暗号化鍵を定期的にロールオーバーする必要がある場合があります。キーをロールオーバーすると、新しいキーが生成され、前のキーがアーカイブされます。アーカイブされたキーは旧データの復号化に使用され、新しいキーは、新規データの暗号化と復号化に使用されます。
新しいドメイン暗号化鍵が生成されても、資格証明ストア内のデータはこの新しいキーでただちに再暗号化されるわけではありません。データは書き込まれたときにのみ(新しいキーで)暗号化されます。つまり、すべてのデータが同じ暗号化鍵を使用するようにするには、すべての資格証明を読み取ってから書き込む必要があります。
資格証明ストアを共有するドメイン
2つ以上のドメインが資格証明ストアを共有し、そのストアで暗号化が有効になっている場合、各ドメインは同じ暗号化鍵を使用する必要があります。このために、OPSSにはドメイン・ブートストラップ・ウォレット内でキーをエクスポート、インポートおよびリストアするためのオフライン・スクリプトが用意されています。これにより、1つのドメインで生成された暗号化鍵を、資格証明ストアを共有する他のすべてのドメインに引き継ぐことができます。これらのコマンドの詳細は、「WLSTコマンドを使用した資格証明の管理」を参照してください。
次のシナリオは、Domain1とDomain2という2つのドメインから構成されるクラスタで資格証明の暗号化を設定する方法を示しています。(ドメインが3つ以上がある場合は、各追加ドメインを次の説明にあるDomain2として扱ってください。)
注意: 次のシナリオでは資格証明ストアがLDAPベースであることを前提としていますが、(データが常に暗号化されている)DBベースの資格証明ストアでも、 |
シナリオ1
Domain1はLDAPベースの資格証明ストアに再関連付けされており、Domain2はそのストアにまだ結合していないものとします。そのストア上で資格証明の暗号化を有効にするには、次の手順を実行します。
Domain1のjps-config.xml
ファイルでencrypt
プロパティをtrueに設定し、ドメインを再起動します。
WLSTコマンドexportEncryptionKey
を使用して、Domain1からewallet.p12
ファイルにキーを抽出します。スクリプトに渡した引数keyFilePassword
の値は、後でそのキーを別のドメインにインポートするときに使用する必要があります。
Domain2のjps-config.xml
ファイルでencrypt
プロパティをtrueに設定します。
その後、この手順は次の2つのいずれかの方法で完了できます。どちらもWLSTコマンドreassociateSecurityStore
を使用しますが、構文が異なります。このスクリプトの詳細は、第10.3.1項「reassociateSecurityStore」を参照してください。
1つ目の方法は次のとおりです。
WLSTコマンドreassociateSecurityStore
を使用して、Domain2の資格証明ストアをDomain1で使用されている資格証明ストアに再関連付けします。引数join
を使用し、引数keyFilePassword
とkeyFilePath
は使用しないでください。
WLSTコマンドimportEncryptionKey
を使用して、抽出されたewallet.p12
をDomain2にインポートします。引数keyFilePassword
の値は、ewallet.p12
ファイルの生成時に使用されたものと同じでなければならないことに注意してください。
Domain2のサーバーを再起動します。
2つ目の方法は次のとおりです。
WLSTコマンドreassociateSecurityStore
を使用して、Domain2の資格証明ストアをDomain1で使用されている資格証明ストアに再関連付けします。引数join
、keyFilePassword
およびkeyFilePath
を使用します。
Domain2のサーバーを再起動します。
シナリオ2
Domain1はLDAPベースの資格証明ストアに再関連付けされており、Domain2はそのストアにすでに結合しているものとします。そのストア上で資格証明の暗号化を有効にするには、次の手順を実行します。
Domain1のjps-config.xml
ファイルでencrypt
プロパティをtrueに設定し、ドメインを再起動します。
WLSTコマンドexportEncryptionKey
を使用して、Domain1からewallet.p12
ファイルにキーを抽出します。スクリプトに渡した引数keyFilePassword
の値は、後でそのキーを別のドメインにインポートするときに使用する必要があります。
Domain2のjps-config.xml
ファイルでencryptプロパティをtrueに設定します。
WLSTコマンドimportEncryptionKey
を使用して、抽出されたewallet.p12
をDomain2に書き込みます。引数keyFilePassword
の値は、ewallet.p12
ファイルの生成時に使用されたものと同じでなければならないことに注意してください。
Domain2のサーバーを再起動します。
重要事項: 暗号化が有効になっている資格証明ストアを複数のドメインで共有している場合、これらのドメインのいずれかでロールオーバー・キーが生成されるたびに、管理者はWLSTコマンド |
この項では、Fusion Middleware Controlを使用して資格証明を管理する方法について説明します。その他のサービス・プロバイダを管理する手順は、第9.7項「Fusion Middleware Controlを使用したサービス・プロバイダの構成」を参照してください。
Fusion Middleware Controlにログインし、「ドメイン」→「セキュリティ」→「資格証明」に移動して「資格証明」ページを表示します(次の図にページの一部を示します)。
「資格証明ストア・プロバイダ」領域は読取り専用であり、この領域を開くと、ドメインで現在使用している資格証明ストア・プロバイダが表示されます。
指定したキー名と一致する資格証明を表示するには、「資格証明キー名」ボックスに一致対象の文字列を入力し、青いボタンをクリックします。検索結果がページの下部の表に表示されます。
項目はいつでも削除できます。削除するには、項目を選択して「削除」ボタンをクリックします。同様に、この表の項目を選択して「編集」ボタンをクリックすると、その項目の内容を変更できます。資格証明マップを削除すると、そのマップにあるすべてのキーが削除されます。
資格証明マップを作成する手順は、次のとおりです。
「マップの作成」をクリックして、「マップの作成」ダイアログ・ボックスを表示します。
このダイアログ・ボックスで、作成する資格証明のマップの名前を入力します。
「OK」をクリックして「資格証明」ページに戻ります。新しい資格証明マップ名が、マップ・アイコンとともに表に表示されます。
資格証明マップにキーを追加する手順は、次のとおりです。
「キーの作成」をクリックして、「キーの作成」ダイアログ・ボックスを表示します。
このダイアログで、「マップの選択」メニューから作成しているキーのマップを選択し、「キー」ボックスにキーを入力して、「タイプ」プルダウン・メニューからタイプ(「パスワード」または「汎用」)を選択します。選択したタイプに応じてダイアログの外観が変わります。
「パスワード」を選択した場合は、必須フィールド(「キー」、「ユーザー名」、「パスワード」、「パスワードの確認」)に入力します。
「汎用」を選択した場合は、「キー」必須フィールドに入力し、「テキストとして入力」ラジオ・ボタンを選択して資格証明情報をテキストとして入力するか、「プロパティ名と値のペアのマップを入力」ラジオ・ボタンを選択してキーと値のペアのリストの形式でキーと値のペアを追加します。「行の追加」をクリックして、追加した行にプロパティ名、値、および値の確認を入力します。
図11-1は、パスワード・キーの作成に使用されるダイアログを示しています。
「OK」をクリックして「資格証明」ページに戻ります。新しいキーが、選択したマップに対応するマップ・アイコンの下に表示されます。
キーを編集する手順は次のとおりです。
表からキーを選択します。
「編集」をクリックして、「キーの編集」ダイアログを表示します。
このダイアログで、必要に応じてキーのデータを変更します。汎用キーを編集する場合は、行の横の赤のXを使用すると、対応するプロパティと値のペアが削除されます。
図11-2は、汎用キーの編集に使用されるダイアログを示しています。
「OK」をクリックして変更内容を保存して、「資格証明」ページに戻ります。
ADFアプリケーションに固有の考慮事項については、『Oracle ADFアプリケーションの管理』のアプリケーションにデプロイされた資格証明の編集方法に関する説明を参照してください。
オンライン・スクリプトとは、実行中のサーバーとの接続が必要なスクリプトです。特に指定がないかぎり、この項に記載されたスクリプトはオンライン・スクリプトで、ベースがファイル、LDAP、DBのいずれであるかにかかわりなくポリシー・ストアで動作します。動作にサーバーの実行を必要としないオフラインのスクリプトもいくつか存在します。
読取り専用スクリプトは、モニター、オペレータ、コンフィギュレータまたはAdminというWebLogicグループに属するユーザーのみが実行できます。読取り-書込みスクリプトは、AdminまたはコンフィギュレータのWebLogicグループに属するユーザーのみが実行できます。すべてのWLSTコマンドは、Oracle WebLogic Serverをインストールすれば、追加設定なしで使用できます。
WLSTコマンドは、インタラクティブ・モードでもスクリプト・モードでも実行できます。インタラクティブ・モードの場合は、スクリプトをコマンドライン・プロンプトに入力します。スクリプト・モードの場合は、スクリプトをテキスト・ファイル(ファイル名拡張子は.py)に記述して、シェル・スクリプトのディレクティブのように入力なしで実行できます。
WLSTスクリプトを実行するためのプラットフォーム固有の要件については、第10.3項「WLSTコマンドを使用したアプリケーション・ポリシーの管理」を参照してください。
構成ファイルおよびJVMについては、第5.6項「WLSTコマンドを使用した一般的なセキュリティ操作」を参照してください。
OPSSにはサポートされているすべてのプラットフォームで資格証明の管理に使用できる次のスクリプトが用意されています(特に指定がないかぎりこのスクリプトはすべてオンラインです)。
updateCred
createCred
deleteCred
modifyBootStrapCredential
addBootStrapCredential
exportEncryptionKey
importEncryptionKey
restoreEncryptionKey
rollOverEncryptionKey
注意: 指定したマップおよびキーを持つ資格証明を取得するには、スクリプトを使用して、MBean操作 |