ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Access Management管理者ガイド
11gリリース2 (11.1.2.2) for All Platforms
B69533-09
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

37 セキュリティ・トークン・サービスの証明書と鍵の管理

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

37.1 前提条件

「セキュリティ・トークン・サービスの有効化および無効化」の説明に従って、セキュリティ・トークン・サービスを実行する必要があります。

37.2 セキュリティ・トークン・サービスの証明書と鍵の概要

「証明書、認証局および暗号化鍵について」で説明されているとおり、公開鍵インフラストラクチャにより、デジタル証明書はWebベースのトランザクションの資格証明を確立します。

実行時の公開鍵: 実行時に公開鍵インフラストラクチャの資格証明が使用される独自のケースがあります。たとえば、(OWSMエージェントを使用した)リクエスタとセキュリティ・トークン・サービスとの間のWebサービス・セキュリティ(WSS)プロトコル通信のときなどです。関連項目: 表37-1

表37-1 実行時に使用されるセキュリティ・トークン・サービスの公開鍵

セキュリティ・トークン・サービスの動作 説明

SAMLアサーションの発行

  • セキュリティ・トークン・サービスの署名アサーションは、STSグローバル設定に定義されている鍵を使用します。

  • セキュリティ・トークン・サービスは、タイプが公開鍵のHolder-of-Key確認メソッドの証明鍵としてリクエスタの署名証明書を使用します。

  • セキュリティ・トークン・サービスは、タイプが秘密鍵のHolder-of-Key確認メソッドの秘密証明鍵を暗号化するためにリライイング・パーティの暗号化証明書を使用します。

  • セキュリティ・トークン・サービスは、タイプが秘密鍵のHolder-of-Key確認メソッドのRSTR内の秘密証明/エントリを暗号化するためにリクエスタの暗号化証明書を使用します。

トークンの発行

  • セキュリティ・トークン・サービスではリライイング・パーティの暗号化証明書を使用して、送信トークンを暗号化します。

SAMLアサーションの検証

  • セキュリティ・トークン・サービスでは発行局の署名証明書を使用して、着信SAMLアサーションの署名を検証します。

Webサービス・セキュリティ(WSS)プロトコル通信の使用

(OWSMエージェントを使用した)リクエスタとセキュリティ・トークン・サービスの間の通信


37.2.1 キーストアとセキュリティ・トークン・サービスについて

JMXフレームワークによってドメイン内のすべてのOAMサーバーに配布され、セキュリティ・トークン・サービスのために使用されるキーストア・ファイルのサマリーを次に示します。

  • .oamkeystore: OAMサーバー・インスタンスに関連付けられたキーおよび証明書用。

  • .oamkeystore: パートナ、クライアントおよびエージェントとの信頼性を確立するために使用されるキーおよび証明書のパートナ・キーストア。

  • amtruststore: OAMサーバー・インスタンスと相互作用するエンティティに信頼性を確立するために使用されるキーおよび証明書の信頼キーストア。

  • amcrl.jar: 証明書失効リスト(CRL)は、CRLベースの証明書失効確認の実行中に、OAMサーバー・インスタンスによって使用されます。

表37-2のファイルは、JMXフレームワークによってドメイン内のすべてのOAMサーバーに配布されます。$DOMAIN_HOME/config/fmwconfig /mbeansディレクトリでは、ファイルを管理し、ファイルをドメイン全体に伝播する必要があることを識別するために、MBeanを示すファイルごとに登録mbeans.xmlが定義されます。

表37-2 キーストアMBean

キーストア Mbeanと説明

システム/パートナ・キーストア: .oamkeystore

.oamkeystoreの構成は、JREのkeytoolアプリケーションを使用して実行されます。

信頼キーストア: .amtruststore

amtruststoreの構成は、JREのkeytoolアプリケーションを使用して実行されます。

CRL: amcrl.jar

CRL MBean: CRLの管理に使用できます。


トークン・セキュリティの鍵ペアは、セキュリティ・トークン・サービスで共有される共通のキーストアに移入されます。これにより、Oracle Web Services Managerエージェントは共通キーストアと相互作用する必要がなくなります。

「システム・キーストア(.oamkeystore)および信頼キーストア(amtruststore)のパスワードのリセット」で説明されているとおり、WLSTコマンドを使用してキーストアおよびamtruststoreのパスワードを取得できます。

37.2.2 Oracle Web Services Managerのキーストア(default-keystore.jks)について

このトピックでは、システムおよびパートナのキーと証明書を追加するためにOracle WSMエージェントで必要なJKSタイプのキーストアについて説明します。

Security Token ServiceでOracle WSMエージェント機能を使用してWSポリシーを公開し、インバウンドおよびアウトバウンドWSメッセージのメッセージを保護できます。Oracle WSMでは、個別のキーストアにシステムおよびパートナのキーと証明書が含まれている必要があります。

Oracle WSMエージェントは、様々な暗号化操作のためにキーストアを使用します。これらのタスクの場合、Oracle Web Services Manager AgentではOracle Web Services Managerタスク用に構成されたキーストア(OWSM秘密鍵とOWSM信頼証明書を含む)が使用されます。OPSSモジュールでは、証明書の検証操作のためにOracle Web Services Managerで使用されるキーストア・サービスが公開され、$DOMAIN_HOME/config/fmwconfig/jps-config.xmlにはキーストア・サービス用の設定が追加されます。デフォルト名はdefault-keystore.jksであり、jps-config.xmlで指定されます。

Oracle WSMエージェント・キーストアとセキュリティ・トークン・サービス・キーストアは常に別にしておくことをお薦めします。そのようにしないと、キーはOPSSによって認可された任意のモジュールでキーストアへのアクセスに使用できるようになり、Access Managerキーがアクセスされる可能性があります。


注意:

Oracle WSMエージェント・キーストアとセキュリティ・トークン・サービス・キーストアは常に別にしておくことをお薦めします。

インストール中、Oracle WSMキーストアが構成されていない場合にインストーラが行うことを次に示します。

  • $DOMAIN_HOME/config/fmwconfigフォルダでの新しいキーストアの作成(デフォルト名はdefault-keystore.jks)

  • 署名および暗号化操作のためにOWSMで使用される、対応する証明書を持つキー・エントリの作成。このキー・エントリは、orakey別名の下のOWSMキーストアに格納されます。

  • キー・エントリおよびキーストアのパスワードをCSFに格納します

キーストアにアクセスするために、場合によっては必要となることを次に示します。

  • クライアントに配布するための署名/暗号化証明書の抽出(必要な場合)

  • 署名/暗号化キー・エントリの更新または置換

  • 信頼できる証明書を追加します

37.2.3 リクエスタ証明書のOPSSキーストアの使用について

(Webサービス・リクエストの一部として受信される証明書トークンとは対照的に)クライアントがSKIなどの参照スキームを使用する特別な場合、リクエスタの証明書をOPSSキーストアに移入する必要があります。これは、キーをOPSSキーストアに手動でプロビジョニングする必要がある、一般的ではないシナリオです。

詳細は、「エージェントとセキュリティ・トークン・サービスについて」を参照してください。

37.3 セキュリティ・トークン・サービスの暗号化/署名鍵の管理

セキュリティ・トークン・サービスでは、鍵を使用して次の処理が行われます。

  • 送信アサーションの署名

  • WSSプロトコルで処理されないRSTメッセージに含まれる着信XML暗号化データ(トークン、エントロピなど)の復号化

セキュリティ・トークン・サービスでは、暗号化証明書および署名証明書の格納に次のキーストアが使用されます。

$DOMAIN_HOME/config/fmwconfig/.oamkeystore

タスクの概要: セキュリティ・トークン・サービスのキーの管理

  1. システム・キーストア(.oamkeystore)および信頼キーストア(amtruststore)のパスワードのリセット

  2. システム・キーストア(.oamkeystore)への新しいキー・エントリの追加

  3. セキュリティ・トークン・サービス証明書の抽出

37.3.1 システム・キーストア(.oamkeystore)および信頼キーストア(amtruststore)のパスワードのリセット

次の手順を使用して、キーストアを保護するパスワード、およびそのキーストアと同じパスワードを使用するキー・エントリをリセットします。

Oracle Fusion Middleware Oracle Identity and Access Managementインストレーション・ガイドで説明されているように、これらのキーはインストール時に作成および構成されます。パスワードおよびキー・エントリのパスワードはランダムに生成されます。

管理者は次のようにWLST resetKeystorePasswordメソッドを使用して、.oamkeystoreパスワードおよび.oamkeystoreパスワードと同じパスワードを持つ任意のキー・エントリを新しい値に設定できます。

  • .oamkeystoreパスワードの更新

  • キーストアと同じパスワードを持つ.oamkeystore内のキー・エントリの更新

  • 変更を反映させるためのAccess Manager、Identity Federationおよびセキュリティ・トークン・サービスの構成の更新

  • amtruststoreパスワードの更新(キーストアがデフォルトの.oamkeystoreと同じパスワードで保護されている場合)


関連項目:

Oracle Fusion Middleware WebLogic Scripting Toolコマンド・リファレンス

システム・キーストアおよび信頼キーストアのパスワードをリセットするには

  1. 通常どおりWSLTスクリプト環境を入力します。

  2. connect()コマンドを使用してWebLogic Server AdminServerに接続します。

  3. ドメイン実行時ツリーのdomainRuntime()に移動します。

  4. resetKeystorePassword()を実行します。

  5. パスワードを入力および確認します。

37.3.2 システム・キーストア(.oamkeystore)への新しいキー・エントリの追加

管理者は、次の手順を使用して、新しいキー・エントリを作成および追加するkeytoolコマンドを使用してシステム・キーストア(.oamkeystore)に新しいキー・エントリを追加できます。エントリを追加した後、アサーションの署名および着信メッセージの復号化に使用できるように、エントリをセキュリティ・トークン・サービスの構成画面で定義する必要があります。

このトピックでは、新しいエントリを追加する次の手順により、SAMLアサーションの署名、またはWSSに含まれないXML暗号化データの復号化を実行します。

37.3.2.1 新しいエントリの追加

前提条件

システム・キーストア(.oamkeystore)および信頼キーストア(amtruststore)のパスワードのリセット

新しいエントリを構成する手順

  1. keytoolを探します。

  2. 自己署名証明書を生成するか証明書リクエストを生成する場合は、リモート認証局にリクエストをエクスポートし、認証局が発行した証明書をインポートします。

  3. 画面のメッセージを確認します。

  4. 必要に応じて次の手順に進みます。

37.3.2.2 署名鍵を使用するためのSAML発行テンプレートの構成

有効な管理者の資格証明を持つユーザーは、署名鍵を使用するように既存のテンプレートを編集する場合に、この手順をガイドとして使用できます。

署名鍵を使用するようにSAML発行テンプレートを構成する手順

  1. 既存のトークン発行テンプレートのリストを表示します。


    Oracle Access Managementコンソール
    システム構成
    セキュリティ・トークン・サービス
    トークン発行テンプレート
  2. 新しい鍵を使用するSAML発行テンプレートを検索して開きます。たとえば、saml11-issuance-templateなどです。

  3. SAML発行テンプレート・ページで、「セキュリティ」タブをクリックします。

  4. 「セキュリティ」タブの「署名と暗号化」セクションで、「アサーションの署名」をクリックします。

  5. 「署名キーストア・アクセス・テンプレートID」リストから、署名キーストア・エントリとして「キーID」を選択します。

  6. ページの上部にある「適用」ボタンをクリックしてこの情報を保存します。

  7. 必要に応じて、「デフォルトの暗号化鍵の設定」に進みます。

37.3.2.3 デフォルトの暗号化鍵の設定

有効な管理者の資格証明を持つユーザーは、署名鍵を使用するように既存のテンプレートを編集する場合に、この手順をガイドとして使用できます。

デフォルトの暗号化鍵を設定する手順

  1. 「Security Token Serviceの設定」ページに移動します。


    Oracle Access Managementコンソール
    システム構成
    セキュリティ・トークン・サービス
    Security Token Serviceの設定
  2. 「デフォルト暗号化テンプレート」リストから、新しいキー・エントリを選択します。

  3. ページの上部にある「適用」ボタンをクリックしてこの情報を保存します。

  4. 「デフォルトの暗号化鍵の設定」に進みます。

37.3.3 セキュリティ・トークン・サービス証明書の抽出

場合によっては、SAML署名操作またはXML暗号化操作に使用されるセキュリティ・トークン・サービス・キーを配布する必要があります。

  • セキュリティ・トークン・サービスにより発行されたSAMLアサーションを検証するために、リライイング・パーティがセキュリティ・トークン・サービス署名鍵にアクセスする必要がある場合

  • トークンをセキュリティ・トークン・サービス・サーバー用に暗号化する必要がある場合

SAML署名操作またはXML暗号化操作のためにセキュリティ・トークン・サービスで使用されるキー・エントリの証明書を配布するには、(「システム構成」→「セキュリティ・トークン・サービス」→「Security Token Serviceの設定」にリストされる)キーIDおよび優先エンコーディング(derとpem)を指定して、証明書取得サービスを使用します。詳細は、「証明書取得サービスの使用」を参照してください。

37.3.3.1 証明書取得サービスの使用

証明書取得サービスを使用する手順

  1. (「Oracle Access Managementコンソール」の「システム構成」タブ、「セキュリティ・トークン・サービス」セクション、「Security Token Serviceの設定」にリストされる)証明書を取得するエントリのキーIDを取得します。

  2. URLを作成します。たとえば、http(s)://osts-hostname:osts-port/sts/servlet/samlcert?id=<KEYID>&encoding=<ENCODING>などを作成し、次のものを指定します。

    • エントリのキーIDを保持するID

    • 証明書が返されるフォーマットを表すエンコーディング。使用可能な値はpem (PEMフォーマット)またはder (DERフォーマット)です(オプション、デフォルト値はpem)。

  3. ブラウザに返された証明書を確認します。

37.4 WS-Trust通信のパートナ・キーの管理

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

37.4.1 パートナ証明書について

WS-Trustメッセージの処理中に、セキュリティ・トークン・サービスではパートナ証明書を使用することが必要となる場合があります。表37-3に示すように、必要な証明書は状況によって異なります。

表37-3 WS-Trust通信のパートナ・キー

セキュリティ・トークン・サービス必須の実行内容 OAMサーバーの対応

リライイング・パーティ用に暗号化されたSAMLアサーションの発行

リライイング・パーティの暗号化証明書を使用して、送信トークンを暗号化します。

Holder of Key/非対称タイプのサブジェクト確認を使用したSAMLアサーションの発行

リクエスタ・パートナの署名証明書をアサーションに含まれる証明鍵として使用します。

注意: 署名に使用されたSOAPヘッダー内のX.509バイナリ・セキュリティ・トークンを参照するUseKey要素がWS-Trust RSTに含まれている場合、セキュリティ・トークン・サービスではこの証明書を証明鍵として使用できます。

Holder of Key/対称タイプのサブジェクト確認を使用したSAMLアサーションの発行

リライイング・パーティの暗号化証明書を使用して、アサーションに含まれる秘密証明鍵を暗号化します。

Holder of Key/対称タイプのサブジェクト確認を使用したSAMLアサーションの発行

リクエスタ、秘密またはサーバー・エントロピのRSTRで暗号化できます。

この場合、サーバーは次の処理を行います。

  • リクエスタの暗号化証明書を使用して秘密を暗号化(秘密がサーバー・エントロピのみを使用して生成された場合)

  • またはサーバー・エントロピを使用してRSTR内の秘密を暗号化(秘密がクライアントおよびサーバー・エントロピから導出された場合)

注意: 署名に使用されたSOAPヘッダー内のX.509バイナリ・セキュリティ・トークンを参照するProofEncryption要素がWS-Trust RSTに含まれている場合、セキュリティ・トークン・サービスではこの証明書を使用して、クライアントに返された秘密またはエントロピを暗号化できます。

着信SAMLアサーションの検証

発行局の署名証明書を使用して、アサーションに存在するXMLデジタル署名を検証します。


37.4.2 実行時のリライイング・パーティの証明書のダウンロードについて

セキュリティ・トークン・サービスは実行時に、RSTのAppliesToフィールドにリストされるサービスのリライイング・パーティWSSポリシーをダウンロードできます。セキュリティ・トークン・サービスがリライイング・パーティのWS-Secポリシーをダウンロードするように構成されている場合は、セキュリティ・トークン・サービスがリライイング・パーティに接続できるように、必要に応じてプロキシ設定が正しく入力されていることを確認します。

リライイング・パーティ・パートナ・プロファイルがそのように構成されている場合、セキュリティ・トークン・サービスに対してサービスからWS-Secポリシーをダウンロードするように指示されます。その後、セキュリティ・トークン・サービスではポリシーに存在する証明書を抽出し、必要に応じて暗号化操作に使用します。また、次の点にも注意が必要です。

  • セキュリティ・トークン・サービスがリライイング・パーティに対して暗号化されたSAMLアサーションを発行する場合、サーバーではリライイング・パーティのWS-Secポリシーからダウンロードされた証明書を使用して送信トークンが暗号化されます。

  • セキュリティ・トークン・サービスがHolder of Key/対称タイプのサブジェクト確認を使用してSAMLアサーションを発行する場合、セキュリティ・トークン・サービスではリライイング・パーティのWS-Secポリシーからダウンロードされた証明書を使用して、アサーションに含まれる秘密証明鍵が暗号化されます。

リライイング・パーティ・パートナ・プロファイルが実行時に証明書をダウンロードするように構成するには、「パートナの署名証明書または暗号化証明書の設定」を参照してください。

37.4.3 パートナの署名証明書または暗号化証明書の設定

パートナの署名証明書または暗号化証明書を設定するには、次の操作を実行します。

または、WLSTパートナ・コマンドを使用して、特定のパートナの署名証明書または暗号化証明書を設定します。

前提条件

表37-3「WS-Trust通信のパートナ・キー」を確認します。

パートナの証明書を設定する手順

  1. 「Oracle Access Managementコンソール」の「システム構成」タブの「セキュリティ・トークン・サービス」セクションで、「パートナ」ノードを展開します。

  2. 「パートナ」ノード内で、「リクエスタ」(または、「リライイング・パーティ」または「発行局」(表37-3を参照))を展開します。

  3. 証明書を設定する必要があるパートナを検索して開きます(または作成します)。

  4. 必要に応じて「パートナ」設定を編集(「Token Serviceパートナの管理」を参照)し、「保存」をクリックします。

  5. 暗号化証明書: 「参照」ボタンをクリックし、暗号化証明書を検索して選択します。

  6. 署名証明書: 「参照」ボタンをクリックし、署名明書を検索して選択します。

  7. 情報を保存してページを閉じます。

  8. 「証明書検証の管理」に進みます。

37.5 証明書検証の管理

この項では、証明書検証の管理について説明します。証明書検証の条件は、表37-4で説明されています。

表37-4 セキュリティ・トークン・サービスの証明書検証の条件

STSによって証明書が検証される場合...

検証されるセキュリティ・トークンは次のタイプのいずれかです。

  • X.509

  • X.509v3

  • PKCS#7

SAMLアサーションを検証する必要があります。

セキュリティ・トークン・サービスはSAML発行局の署名証明書を検証するように構成されます。


検証が成功するための要件を表37-5に示します。

表37-5 証明書検証が成功するための要件

証明書が次の状態であること 方法...

信頼できるアンカーにリンクされていること:

  • 信頼できるアンカーになる

  • または発行者を信頼できるアンカーにする

取り消されていないこと:

  • 信頼できるアンカーになる

  • または発行者を信頼できるアンカーにする

証明書の取消ステータスは、次のものを確認することで判断できます。

  • 管理者によってアップロードされたCRLのリスト

  • OCSPサーバー

  • CRL配布ポイント


証明書検証には信頼アンカー・ストア(.amtruststore)が必要です。このストアおよび検証を管理する手順については、次のトピックで説明します。

37.5.1 信頼アンカー・ストア(amtruststore)の管理

信頼アンカー・キーストアは、keytoolコマンドを使用して管理されます。キーストアに追加された証明書は、証明書検証モジュールによって検出されます。


注意:

通知はJMX通知フレームワークを使用して実行されますが、通知のリフレッシュ時間(デフォルトでは60秒)に応じて時間を要する場合があります。

前提条件

システム・キーストア(.oamkeystore)および信頼キーストア(amtruststore)のパスワードのリセット

信頼アンカー・ストア(amtruststore)を管理する手順

  1. keytoolを探します。

  2. 次のコマンドを実行します。

    keytool -keystore $DOMAIN_HOME/config/fmwconfig/amtruststore 
    -storetype JKS -alias orakey -file $CERT_FILE 
    
  3. 画面のメッセージを確認し、要求された場合はパスワードを入力します。

  4. 「証明書失効リストの管理」に進みます。

37.5.2 証明書失効リストの管理

セキュリティ・トークン・サービスでは、共通インフラストラクチャ証明書検証モジュールが使用されます。証明書の検証中に使用される信頼できる証明書および証明書失効リスト(CRL)は、信頼キーストアおよびCRLのZIPファイルに格納されます。Security Token Serviceの構成には、OCSP/CDPの設定が格納されます。

この項では、証明書の失効ステータスを確認し、次の操作を実行するために証明書失効リスト(CRL)を追加または削除する方法を説明します。

前提条件

証明書失効リストをインポート可能な状態にします。

タスクの概要: 証明書検証および失効リストの管理

  1. Oracle Access Managementコンソールの「システム構成」タブの「共通構成」セクションから、「証明書検証」を選択します。

  2. 「証明書失効リストの管理」を参照してください。

  3. 「OCSP証明書検証の有効化」を参照してください。

  4. 「CRL配布ポイント拡張機能」を参照してください。

37.5.3 セキュリティ・トークン・サービスのカスタム信頼アンカー・ストアの使用方法

オプションで、特定のデプロイメントにAccess Managerの信頼アンカーとは別の信頼アンカーのセットが必要な場合、別のキーストアをセキュリティ・トークン・サービスの信頼できる証明書ストアとして構成できます。これを実行するには、管理者が次のタスクを実行しておく必要があります。


注意:

カスタム信頼アンカー・ストアの使用は、ほとんどの顧客に不要なオプション機能です。

タスクの概要: 信頼できる証明書のカスタム・キーストアのデプロイ

  1. $DOMAIN_HOME/config/fmwconfigディレクトリにJKSキーストアを作成します。

  2. 「Oracle Access Managementコンソール」の「Security Token Serviceの設定」ページで、新しい信頼ストアのフルパス名を入力し、変更を適用します。

  3. セキュリティ・トークン・サービスがデプロイされているドメインで、管理者がカスタム信頼アンカー・キーストアをすべてのサーバーに手動で伝播する必要があります。