この付録では、OAM 11gサーバーとOAMエージェントがNetPoint Access Protocol(NAP)チャネル(Oracle Access Manager Protocolチャネルとも呼ばれます)を介して確実に安全に通信するために必要な情報と手順について説明します。この章の内容は次のとおりです。
OAMサーバーが実行中であることを確認してください。
OAMサーバーとWebGateエージェント間の安全な通信とは、NAPチャネルに対しトランスポート・セキュリティ・モードを定義することです。
NAPチャネルでの安全な通信には、各OAMサーバーおよび各WebGateが次のいずれかの同じセキュリティ・モードを使用することが必要です。
オープン: 暗号化されていない通信
オープン・モードでは、WebGateとOAMサーバー間で認証または暗号化は行われません。WebGateはOAMサーバーのアイデンティティの証明を要求せず、OAMサーバーはすべてのWebGateからの接続を受け入れます。オープン・モードは、通信のセキュリティがデプロイメントで問題にならない場合に使用します。
簡易: Oracleにより発行された公開鍵証明書を使用したSecure Sockets Layer(SSL)プロトコルによる暗号化された通信
簡易モードは、プレーン・テキストでパスワードを送信したくないといったセキュリティ上の懸念があるものの、独自の認証局(CA)を管理しない場合に使用します。この場合、OAM 11gサーバーおよびWebGateはOracle CAにより発行および署名された同じ証明書を使用します。詳細は、「簡易モード、暗号化および鍵について」を参照してください。
証明書: 信頼されているサード・パーティ認証局により発行された公開鍵を使用したSSLによる暗号化された通信。
証明書モードは、OAM 11gサーバーとWebGateで異なる証明書を使用し、信頼されているサード・パーティCAにアクセスできる場合に使用します。このモードでは、DESアルゴリズムを使用して秘密鍵を暗号化する必要があります。Oracle Access ManagerコンポーネントはPEM形式でのX.509デジタル証明書のみを使用します。PEMとはプライバシ強化メールのことであり、パスフレーズが必要です。PEM(プライバシ強化メール)形式は秘密鍵、デジタル証明書、および信頼されている認証局(CA)に適しています。望ましいキーストア形式はJKS(Java KeyStore)形式です。詳細は、「証明書モードの暗号化およびファイルについて」を参照してください。
図E-1に、ユーザー認証および認可中にOAMサーバーおよびWebGateにより使用される通信チャネルを示します。
プロセスの概要: 認証および認可
リクエストはWebGateにより捕捉されます。
認証(資格証明の集合)がHTTPチャネルを通じて発生します。
OAMエージェントのみ(mod_ossoでない)で認証がNAPチャネルを通じて発生します。
Secure Sockets Layer(SSL)プロトコルを使用することで、HTTP(HTTPS)チャネルを通じた傍受と介入者攻撃の成功を防ぐことができます。SSLプロトコルはほとんどのWebサーバー製品およびWebブラウザの一部として含まれます。SSLはデジタル証明書を含む、効果および秘密鍵暗号化システムを使用します。Webサーバーまたはディレクトリ・サーバーに対するSSL通信の有効化についての詳細は、ベンダーのドキュメントを参照してください。
詳細は、次を参照してください。
Oracle Access ManagerコンポーネントはPEM形式でのX.509デジタル証明書のみを使用します。PEMとはプライバシ強化メールのことであり、パスフレーズが必要です。
PEM(プライバシ強化メール)形式は秘密鍵、デジタル証明書、および信頼されている認証局(CA)に適しています。望ましいキーストア形式はJKS(Java KeyStore)形式です。
暗号化では、公開鍵は暗号化キーとして使用される、指定した認証局により提供された値です。公開鍵を使用するためのシステムは公開鍵インフラストラクチャ(PKI)と呼ばれます。公開鍵インフラストラクチャの一部として、認証局は登録局(RA)に問合せてデジタル証明書のリクエスタにより提供された情報を検証します。RAがリクエスタの情報を検証すると、CAは証明書を発行できます。
秘密鍵は公開鍵から導出できます。公開鍵および秘密鍵の組合せは非対称暗号と呼ばれ、メッセージおよびデジタル署名を効果的に暗号化するのに使用できます。
公開鍵インフラストラクチャにより、デジタル証明書は次のものに基づきWebベースのトランザクションの資格証明を確立します。
証明書の所有者の名前
証明書のシリアル番号
証明書の有効期限
証明書の所有者の公開鍵のコピー、これはメッセージおよびデジタル署名の暗号化に使用されます
証明書を発行する認証局のデジタル署名が提供されて、受信者はその証明書が本物であることを確認できます
デジタル証明書はレジストリに格納でき、そこから認証ユーザーが他のユーザーの公開鍵を検索できます。
OAMサーバー構成は、OAMサーバーのエンド・ポイントとロード・バランサまたは逆プロキシのアカウントを定義します。HTTPSプロトコルを指定した場合、指定したサーバー・ポートをCLIENT CERTSと必要とするように構成してはいけません。これにより、ユーザーはX509以外のすべての認証スキームおよびログアウトに対してSSLでサーバーと対話できます。
X509Moduleは対応する認証スキームが構成されている場合に資格証明の集合の後に呼ばれます。
X509認証スキーム(X509Scheme)にはX509チャレンジ方法およびX509認証モジュールが必要です。X509モジュールはX509Schemeが使用されるときに資格証明の集合の後に呼ばれます。
X509Schemeが認証スキームとして指定され、ユーザーが資格証明を要求されなければならない場合は、資格証明コレクタへの完全修飾URLを認証スキームのチャレンジURLパラメータとして指定する必要があります。たとえば、https://<oam_server>:<ssl_port>/oam/CredCollectServlet/X509です。
注意: X509Schemeを指定する場合、OAMサーバーの指定したSSLポートはサーバー・ポートとは別である必要があり、クライアント証明書を必要とするように構成される必要があります。 |
指定したSSLポートはサーバー・ポートとは別である必要があり、CLIENT CERTSを必要とするように構成される必要があります。相対的なチャレンジURLを指定した場合、OAMサーバーは指定したサーバー・ポート/ホスト/ポートを使用してX509資格証明コレクタの完全修飾URLを構築します。ただし、この構成は動作しません。
OAMサーバーにHTTPとHTTPSの両方でアクセス可能な場合、すべてのリクエスト(いずれのトランスポート経由でも)が受け入れられます。管理者はOAMサーバー構成で指定したトランスポート経由でのみOAMサーバーにアクセス可能にする必要があります。
この項では、OAM 11gの証明書モード通信の構成方法について説明します。
次のタスクは証明書モードにのみ適用されます。簡易モードでは、バンドルされたOAM-CA署名付き証明書が使用されて、次のタスクのほとんどは必要ありません。
タスク概要: OAMサーバーの証明書の追加には次のものが含まれます。
WebGateの証明書リクエストでは、リクエスト・ファイルaaa_req.pemが生成されます。このWebGate証明書リクエストを、OAMサーバーによって信頼されているルートCAに送信する必要があります。ルートCAはWebGate証明書を戻し、その後、10g WebGateのインストール中または後のいずれかでインストールできます(11g WebGateの場合、WebGateのインストールおよび構成後にWebGateインスタンス領域に手動でコピーする必要があります)。
aaa_key.pem
aaa_cert.pem
aaa_chain.pem
証明書モードでのコンポーネントのインストール中に、外部CAから取得した証明書が存在するかどうかを尋ねられます。証明書をまだ所有していない場合、リクエストできます。証明書を受領するまでは、WebGateを簡易モードで構成できます。証明書が発行されインストールされるまで、OAMデプロイメントは完了できません。
OAMエージェントの登録時に証明書モードを選択すると、エージェント・キー・パスワードを入力するフィールドが表示されます。11g WebGate登録の編集時に、モードがオープンから証明書へ、または簡易から証明書へ変更される場合にのみpassword.xmlが更新されます。証明書モードでは、一度生成されるとpassword.xmlは更新できません。エージェント・キー・パスワードを編集しても、新しいpassword.xmlは生成されません。
証明書リクエストを作成し、CAに送信する必要があります。証明書が戻されると、それをOAMサーバーにインポート(またはWebGateにコピー)する必要があります。
次の手順を使用して、秘密鍵、証明書およびOAMサーバーのCA証明書を取得します。
注意: 10gと11gの登録間の一貫性を保つための認証ツールはopenSSLです。証明書およびキーをPEM形式で生成するには、他のツールではなくopenSSLを使用することをお薦めします。 |
OAM 11gサーバーの秘密鍵および証明書を取得する手順
次のような証明書リクエスト(aaa_req.pem)および秘密鍵(aaa_key.pem)の両方を生成します。
openssl req -new -keyout aaa_key.pem -out aaa_req.pem -utf8 -nodes
証明書リクエスト(aaa_req.pem)と信頼されているCAに送信します。
base64でのCA証明書をaaa_chain.pemとしてダウンロードします。
base64およびDER形式の両方での証明書をaaa_cert.pemおよびaaa_cert.derとしてダウンロードします。
次のようにパスワードを使用して秘密鍵(aaa_key.pem)を暗号化します。
openssl rsa -in aaa_key.pem -passin pass: -out aaa_key.pem -passout pass: ******** -des
有効なOAM管理者証明書を持つユーザーは、次のタスクを実行して、証明書のインポートに必要なキーストア別名およびパスワードを取得できます。
OAMキーストア・パスワードを取得する手順
OAM管理コンソールが実行中であることを確認してください。
OAM管理コンソールをホストしているコンピュータで、キーストア・パスワードの取得時に使用するOAMインストール・パスのWebLogic Scripting Toolを探します。例:
$ORACLE_IDM/common/bin/
ここで、$ORACLE_IDMはOAM 11gのベース・インストール・ディレクトリで、/common/binはスクリプト・ツールが置かれているパスです。
WebLogic Scripting Toolを開始します。
·/ wlst.sh
WLSTシェルで、接続するコマンドを入力してからリクエスト情報を入力します。例:
wls:/offline> connect() Please enter your username [weblogic] : Please enter your password [welcome1] : Please enter your server URL [t3://localhost:7001] : wls:/base_domain/serverConfig>
次のコマンドを入力して、場所を読取り専用のdomainRuntimeツリーに変更します(ヘルプを表示するにはhelp(domainRuntime)を使用します)。例:
wls:/OAM_AC> domainRuntime()
次のコマンドを入力して、OAMキーストアの証明書をリストします。例:
wls:/OAM_AC/domainruntime> listCred(map="OAM_STORE",key="jks")
ここで、OAM_STOREはOAMキーストアの名前を示します。
表示されるOAMキーストアのパスワードは、証明書のインポートに必要なため、最新の注意を払ってください。
「CA署名付き証明書のキーストアへのインポート」に進みます。
Oracle Access Manager 11gに関連付けられたキーストアはPEM形式の証明書のみを受け入れます。
PEM形式の認証局(CA)によりすでに証明書に署名されている場合、次の手順はOAM 11gに附属しているkeytool importcert
ツールを使用して証明書をインポートする方法を説明します。ツールにバンドルされているReadmeファイルにキーストアの証明書をインポートする手順が記載されています。
注意: PEM形式の証明書が使用できない場合、証明書リクエストを作成し、CAに署名してもらいます。 |
次にJDKバージョン6のkeytoolを使用するための手順を示します。異なるバージョンのkeytoolの場合、そのJDKバージョンのドキュメントを参照してください。
注意: keytoolユーティリティを使用する場合、デフォルトの鍵ペア生成アルゴリズムはデジタル署名アルゴリズム(DSA)です。ただし、OAMおよびWebLogic ServerはDSAをサポートしないので、別の鍵ペア生成および署名アルゴリズムを指定する必要があります。 |
前提条件
カスタムWLSTコマンドを使用したOAMキーストア別名およびパスワードの取得
キーストアに証明書をインポートする手順
次のパスでOAM 11gのimportcertツールを探します。
$ORACLE_IDM/oam/server/tools/importcert
importcert.zipを解凍しReadmeファイルを探します。
環境に応じた次のコマンドおよび詳細を使用して信頼された証明書チェーンをインポートします。
keytool -importcert -file aaa_chain.pem - trustcacerts -storepass <password> -keystore <MW_HOME>/user_projects/domains/domain_name/config/fmwconfig/ .oamkeystore -storetype JCEKS
秘密鍵(aaa_key.pem)および署名付き証明書(aaa_cert.pem)を、openSSLまたはその他のツールを使用してDER形式に変換します。例:
openssl pkcs8 -topk8 -nocrypt -in aaa_key.pem -inform PEM -out aaa_key.der -outform DER
aaa_cert.derがない場合は次を実行します。
次のコマンドを入力します。
openssl x509 -in aaa_cert.pem -inform PEM -out aaa_cert.der -outform DER -outform DER
TextPadを使用してaaa_chain.pemを編集し、CERTIFICATEブロック内に含まれるデータを除くすべてのデータを削除し、そのファイルを新しい場所に保管して元のファイルを保持します。
-----BEGIN CERTIFICATE----- ... CERTIFICATE ... -----END CERTIFICATE-----
キーストアに署名付きPEM形式の証明書をインポートします。例:
次のパスでOAM 11gのimportcertツールを探します。
$ORACLE_IDM/oam/server/tools/importcert
importcert.zipを解凍しReadmeファイルを探します。
環境に応じた次のコマンドライン引数および詳細を使用して署名付きのPEM形式の証明書をインポートします。
- java -cp importcert.jar:$CLASSPATH oracle.security.am.common.tools.importcerts.CertificateImport -keystore <> -keystorepassword <> -privatekeyfile <> -signedcertificate <> -alias [-aliaspassword <>]
証明書をキーストアにインポートした後、以前に取得した別名およびパスワードを、Oracle Access Manager 11g管理コンソールで各OAMサーバー構成のOAMプロキシ・セクションに追加する必要があります。
Secure Sockets Layer(SSL)プロトコルは通常インターネット上のセキュアな通信を管理するために使用されます。OAMサーバーとWebGate間の通信を保護するためにSSLプロトコルを使用することで、傍受と介入者攻撃の成功を防ぐことができます。SSLプロトコルはほとんどのWebサーバー製品およびWebブラウザ(MicrosoftおよびNetscapeなど)の一部として含まれます。SSLはデジタル証明書を含む、公開および秘密鍵暗号化システムを使用します。
注意: 簡易モードには明示的な構成は必要なく、OAM 11gでは即時可能な状態で提供されます。 |
前提条件
証明書詳細のOAMサーバー構成への追加
Oracle Access Manager 11g管理コンソールで、「システム構成」タブをクリックします。
「システム構成」タブのナビゲーション・ツリーで「サーバー・インスタンス」をダブルクリックし、「OAMサーバー共通プロパティ」ページを表示します。
「OAMプロキシ」タブをクリックします。
「CA署名付き証明書のキーストアへのインポート」の手順5cで取得した別名および別名パスワード詳細を、次の例のいずれかのように入力します。
簡易モード構成
グローバル・パスフレーズ: simple_passphrase
証明書モード構成
PEMキーストア別名: my_keystore_alias
PEMキーストア別名のパスワード: my_keystore_alias_pw
「適用」をクリックして構成を保存します。
ページを閉じます。
OAMサーバー登録ページを開き、「プロキシ」タブをクリックし、プロキシ・モードを「証明書」に変更して「適用」をクリックします。
OAMサーバーを再起動します。
次の手順を使用して、秘密鍵、証明書およびWebGateのCA証明書を取得します。
注意: 10gと11gの登録間の一貫性を保つための認証ツールはopenSSLです。証明書およびキーをPEM形式で生成するには、他のツールではなくopenSSLを使用することをお薦めします。 |
WebGateの秘密鍵および証明書を取得する手順
次のような証明書リクエスト(aaa_req.pem)および秘密鍵(aaa_key.pem)の両方を生成します。
openssl req -new -keyout aaa_key.pem -out aaa_req.pem -utf8 -nodes
証明書リクエスト(aaa_req.pem)を信頼されているCAに送信します。
base64でのCA証明書をaaa_chain.pemとしてダウンロードします。
base64形式での証明書をformat as aaa_cert.pemとしてダウンロードします。
次のようにパスワードを使用して秘密鍵(aaa_key.pem)を暗号化します。
openssl rsa -in aaa_key.pem -passin pass: -out aaa_key.pem -passout pass: ******** -des
すべての通信モード(オープン、簡易または証明書)で、エージェント登録はOAM管理コンソールから更新する必要があります。
OAMエージェントの登録時に証明書モードを選択すると、エージェント・キー・パスワードを入力するフィールドが表示されます。11g WebGate登録の編集時に、モードがオープンから証明書へ、または簡易から証明書へ変更される場合にのみpassword.xmlが更新されます。証明書モードでは、一度生成されるとpassword.xmlは更新できません。エージェント・キー・パスワードを編集しても、新しいpassword.xmlは生成されません。
前提条件
WebGateエージェント登録の通信モードを更新する手順
「システム構成」タブで、「エージェント」ノードを開きます。
「OAMエージェント」を開き、「11g Webゲート」(または「10g Webゲート」)を開いてから、目的のエージェント名をダブルクリックします。
エージェントの登録ページで「セキュリティ」オプションを探して「証明書」(または「簡易」)をクリックします。
証明書モード: 「秘密鍵、証明書リクエストの生成、WebGateの証明書の取得」の手順5の指定に従いエージェント・キー・パスワードを入力します。
「適用」をクリックして変更を送信します。
次のように更新されたWebGateをコピーします。
コピー元: IDM_DOMAIN_HOME/output/AGENT_NAME
コピー先: OHS_INSTANCE_HOME/config/OHS/ohs2webgate/config
次のようにファイル(「秘密鍵、証明書リクエストの生成、OAMサーバーの証明書のインストール」で作成)をコピーします。
コピー元: IDM_DOMAIN_HOME/output/AGENT_NAME
コピー先: OHS_INSTANCE_HOME/config/OHS/ohs2webgate/config
OAMサーバーおよびOracle HTTP Serverインスタンスを再起動します。
トランスポート・セキュリティ通信モードはOAMのインストール中に選択されます。簡易モードが選択されると、最初にインストーラはランダムなグローバル・パスフレーズを生成し、後で必要に応じて編集できます。
OAMエージェントまたは新しいOAMサーバーを登録するときにモードを指定できます。しかし、グローバル・パスフレーズの変更には、簡易モードを使用するすべてのエージェントと新しいグローバル・パスフレーズの再構成が必要です。
エージェントの登録中に、少なくとも1つのOAMサーバー・インスタンスがエージェントと同じモードで実行していることが必要です。そうでないと、登録は失敗します。ただし、エージェントの登録後、OAMサーバーの通信モードを変更できます。エージェントとサーバー間の通信は、WebGateモードが少なくともOAMサーバーと同じかまたは高ければ動作を継続します。エージェント・モードは高くてもかまいませんが、低くてはいけません。
この項では、OAM 11gの簡易モード通信の構成に必要な情報を提供します。
タスク概要: OAM 11gの簡易モード通信の構成には次のことが含まれます
簡易モード暗号化の場合、Oracle Access Managerでは認証がその固有の秘密鍵と同梱され、すべてのWebGateおよびOAMサーバーにインストールされます。各公開鍵に対し、対応する秘密鍵があり、Oracle Access Managerがaaa_key.pemファイルに格納しています。
\toolsサブディレクトリのopenSSLという名前のプログラムは、鍵ペアと簡易モードセキュリティ用の次のファイルを自動的に生成します。
cacert.pem証明書リクエスト、Oracle提供のopenSSL認証局による署名付き
password.xmlにはエージェントの登録中に指定された、曖昧な形式のランダム・グローバル・パスフレーズが含まれます。これはWebGateインスタンスの場所にコピーされる必要があります。
aaa_key.pemには秘密鍵(openSSLにより生成)が含まれます。
PEM形式の署名付き証明書aaa_cert.pem
トランスポート・セキュリティ通信モードはOAMのインストール中に選択されます。最初にインストーラはランダムなグローバル・パスフレーズを生成し、後で必要に応じて編集できます。
OAMエージェントをインストールするときに、CA証明書をリクエストできます。OAMエージェントまたは新しいOAMサーバーを登録するときに通信モードを指定する必要があります。しかし、グローバル・パスフレーズの変更には、簡易モードを使用するすべてのエージェントと新しいグローバル・パスフレーズの再構成が必要です。
簡易セキュリティ・モード用に生成されたアーティファクトはグローバル・パスフレーズを使用し、変更はWebGateに伝播される必要があります。WebGate登録を削除し、再登録する(簡易モードの指定およびポリシーの自動生成の無効化)、またはWebGate登録を編集してからここに記載の通りアーティファクトをコピーできます。
簡易モード用WebGate登録を更新する手順
「システム構成」タブで、「エージェント」ノードを開きます。
「OAMエージェント」を開き、「11g Webゲート」(または「10g Webゲート」)を開いてから、目的のエージェント名をダブルクリックします。
エージェントの登録ページで「セキュリティ」オプションを探して「簡易」をクリックします。
「適用」をクリックして変更を送信します。
次のように更新されたWebGateをコピーします。
コピー元: $WLS_DOMAIN_HOME/output/AGENT_NAME(OAM AdminServerがインストールされたWebLogicドメイン・ホーム)
コピー先: OHS_INSTANCE_HOME/config/OHS/ohs2webgate/config
ここでの指示に従い、次のファイルをコピーします。
コピー元: IDM_DOMAIN_HOME/output/AGENT_NAME
コピー先: OHS_INSTANCE_HOME/config/OHS/ohs2webgate/config/simple
OAMサーバーおよびOracle HTTP Serverインスタンスを再起動します。
簡易モードへの変更をインスタンス化するためにWebサーバーを再起動する必要があります。次にその結果を検証できます。
簡易モードの変更を検証する手順
コマンドライン・ウィンドウからWebサーバーを再起動します。例:
d:\middleware\ohs_home\instances\ohs_webgate11g\bin opmnctl stopall opmnctl startall
ブラウザ・ウィンドウで、簡易モードを使用してWebGateにより保護されているリソースへのURLを入力します。
求められたら、ログイン資格証明を入力します。
リソースが実行中であることを確認してください。