B 通信の保護

OAMサーバーとクライアント(OAMエージェント)が、アクセス・プロトコル・チャネルを介してセキュアに通信できることを確認します。

通信を保護するには、次のタスクを実行する必要があります。

B.1 OAMサーバーとWebゲート間に安全な通信を設定するための前提条件

OAMサーバーとWebゲート間の安全な通信の設定を続行する前に、システム・レベル要件が満たされていることを確認します。

次に、この章のタスクを実行するための要件を示します。
  • OAMサーバー・モードがCERTモードの場合、エージェントはCERTモードを使用する必要があります。

  • エージェントの登録中に、少なくとも1つのOAMサーバー・インスタンスがエージェントと同じモードで実行していることが必要です。エージェント登録の後に、OAMサーバーのモードは変更できます。

関連項目:

B.2 OAMサーバーとWebゲート間の通信の保護

OAMサーバーとクライアント(Webゲート)間の通信を保護するということは、コンポーネント登録ページ内のNAP (OAPとも呼びます)チャネルに対してトランスポート・セキュリティ・モードを定義することを意味します。

チャネルのセキュリティ・レベルは、次のいずれかに指定されます。

  • オープン: 暗号化されていない通信

    オープン・モードでは、WebGateとOAMサーバー間で認証または暗号化は行われません。WebGateはOAMサーバーのアイデンティティの証明を要求せず、OAMサーバーはすべてのWebGateからの接続を受け入れます。オープン・モードは、通信のセキュリティがデプロイメントで問題にならない場合に使用します。

  • 簡易: Oracleにより発行された公開キー証明書を使用したSecure Sockets Layer (SSL)プロトコルによる暗号化された通信。

    簡易モードは、プレーン・テキストでパスワードを送信したくないといったセキュリティ上の懸念があるものの、独自の認証局(CA)を管理しない場合に使用します。この場合、OAMサーバーおよびWebゲートはOracle CAにより発行および署名された同じ証明書を使用します。

    「簡易モード、暗号化およびキーについて」を参照してください。

  • 証明書: 信頼されているサード・パーティ認証局(CA)により発行された公開キーを使用したSSLによる暗号化された通信。

    証明書モードは、OAMサーバーとWebゲートで異なる証明書を使用し、信頼できるサード・パーティCAにアクセスできる場合に使用します。このモードでは、DESアルゴリズムを使用して秘密キーを暗号化する必要があります。Access ManagerコンポーネントはPEM形式でのX.509デジタル証明書のみを使用します。PEMとはプライバシ強化メールのことであり、パスフレーズが必要です。PEM(プライバシ強化メール)形式は秘密キー、デジタル証明書、および信頼されている認証局(CA)に適しています。推奨するキーストアのフォーマットはJKS (Javaキーストア)フォーマットです。

    「証明書モードの暗号化およびファイルについて」を参照してください。

  • HTTP: ユーザー定義の暗号化されていない通信モード。

    ユーザー定義パラメータOAMServerCommunicationModeがHTTPに設定されている場合、WebGateはHTTPプロトコルを使用してOAM管理対象サーバーと通信します。

  • HTTPS: Secure Sockets Layer (SSL)プロトコルを介した、ユーザー定義の暗号化された通信モード。

    ユーザー定義パラメータOAMServerCommunicationModeがHTTPSに設定されている場合、WebGateはHTTPSプロトコルを使用してOAM管理対象サーバーと通信します。

  • OAP: ユーザー定義パラメータOAMServerCommunicationModeOAPに設定されている場合、Webゲートは、「オープン」、「簡易」または「証明書」の通信モードを利用し、レガシー・バック・チャネルのプロトコルOAPを使用して、TCPポート経由でOAM管理対象サーバーと通信します。

論理的に、リクエストはAccess Manager資格証明コレクタに送信されます。ただし、Webサーバー・プロキシがWebLogic AdminServerの前にある場合、<LocationMatch "/*">によって、すべてのリクエストがプロキシ経由でルーティングされます。この場合、プロキシを使用した周辺防衛が存在します。

図B-1に、ユーザー認証および認可中にOAMサーバーおよびWebゲートにより使用される通信チャネルを示します。

図B-1 OAMサーバーとWebゲートの通信チャネル

図B-1の説明が続きます
「図B-1 OAMサーバーとWebゲートの通信チャネル」の説明

プロセスの概要: 認証および認可

  1. リクエストはWebGateにより捕捉されます。

  2. 認証(資格証明の集合)がHTTPチャネルを通じて発生します。

  3. 認可がOAMエージェントのみでNAPチャネルを通じて発生します。

Secure Sockets Layer (SSL)プロトコルを使用することで、HTTP (HTTPS)チャネルを通じた傍受と介入者攻撃の成功を防ぐことができます。SSLプロトコルはほとんどのWebサーバー製品およびWebブラウザの一部として含まれます。SSLはデジタル証明書を含む、効果および秘密キー暗号化システムを使用します。Webサーバーまたはディレクトリ・サーバーに対するSSL通信の有効化についての詳細は、ベンダーのドキュメントを参照してください。

PEM(プライバシ強化メール)形式(BASE64エンコードASCII)は秘密キー、デジタル証明書、および信頼されている認証局(CA)に適しています。OAMサーバーにとっての望ましいキーストア形式はJCEKSで、OAMクライアントの場合はJKS (Java KeyStore)形式です。Access Managerコンポーネントは、DER(バイナリ形式の証明書)形式のみのX.509デジタル証明書を使用します。

参照:

B.2.1 証明書、認証局および暗号化キーについて

デジタル証明書はレジストリに格納でき、そこから認証ユーザーが他のユーザーの公開キーを検索できます。

公開キー・インフラストラクチャにより、デジタル証明書は次のものに基づきWebベースのトランザクションの資格証明を確立します。

  • 証明書の所有者の名前

  • 証明書のシリアル番号

  • 証明書の有効期限

  • 証明書の所有者の公開キーのコピー、これはメッセージおよびデジタル署名の暗号化に使用されます

  • 証明書を発行する認証局のデジタル署名が提供されて、受信者はその証明書が本物であることを確認できます

暗号化では、公開キーは暗号化キーとして使用される、指定した認証局により提供された値です。公開キーを使用するためのシステムは公開キー・インフラストラクチャ(PKI)と呼ばれます。公開キー・インフラストラクチャの一部として、認証局は登録局(RA)に問合せてデジタル証明書のリクエスタにより提供された情報を検証します。RAがリクエスタの情報を検証すると、CAは証明書を発行できます。

秘密キーは公開キーから導出できます。公開キーおよび秘密キーの組合せは非対称暗号と呼ばれ、メッセージおよびデジタル署名を効果的に暗号化するのに使用できます。

B.2.2 セキュリティ・モードおよびX509Scheme認証について

管理者はOAMサーバー構成で指定したトランスポート経由でのみOAMサーバーにアクセス可能にする必要があります。OAMサーバー構成は、サーバーのエンド・ポイントとロード・バランサまたは逆プロキシのアカウントを定義します。OAMサーバーにHTTPとHTTPSの両方でアクセス可能な場合、すべてのリクエスト(いずれのトランスポート経由でも)が受け入れられます。ユーザーがX509以外の認証スキームによるSSLでOAMサーバーと接続(およびログアウト)できるようにするためには、指定したサーバー・ポートをCLIENT CERTSを必要とするように構成しないでください。

X509認証スキーム(X509Scheme)では、OAMサーバーSSLポートはサーバー・ポートと異なっていて、クライアント証明書を必要とするよう構成されている必要があります。X509Schemeを使用していると、X509モジュールは資格証明コレクションの後にコールされます。X509SchemeはX509チャレンジ・メソッドとX509認証モジュールを必要とします。資格証明コレクタへの完全修飾URLをX509Scheme内のチャレンジURLとして指定する必要があります。たとえば: https://managed_server_host:managed_server_ssl_port/oam/CredCollectServlet/X509

ノート:

相対的なチャレンジURLをX509Schemeで指定した場合、OAMサーバーは指定したサーバー・ホスト/ポートを使用してX509資格証明コレクタの完全修飾URLを構築します。ただし、この構成は動作しません。

B.2.3 Importcertツール

管理者はOracleが提供するimportcertツールを、キーストア、キーおよび証明書に関連した様々な手順で使用します。

表B-1は、importcertコマンドの構文を示しています。

表B-1 importcertコマンドの構文

オプション 説明

keystore

このコマンドを、既存の(または新規)キーストアのパスで続けます。たとえば:

/scratch/.oamkeystore 
or
/scratch/clientKey.jks

privatekeyfile

このオプションを、秘密キーのパスで続けます。たとえば:

/scratch/aaa_key.der 

signedcertfile

このオプションを、署名済証明書のパスで続けます。たとえば:

/scratch/aaa_cert.der 

alias

このオプションを、キーストア・エントリ別名で続けます。genkeystoreで必要です。

alias 

storetype

このオプションを、キーストア・タイプで続けます。デフォルトでは、ストア・タイプはJCEKS (OAMサーバー・キーストア)です。たとえば:

サーバー・キーストア.oamkeystoreのタイプは次のようになります。

JCEKS 

クライアント・キーストア/scratch/clientTrustStore.jksおよび/scratch/clientKey.jksを使用できます。どちらも、次のタイプになります。

JKS 

genkeystore

このフラグは、OAMクライアント証明書を生成する場合に必要です。クライアントでは、別名および別名パスワードのパラメータが表示されません。しかし、importcertツールはキーストア・パスワードを別名パスワードとして設定します。

指定:

Yes or No 

Yesは、証明書を新しいキーストアにインポートします。

Noは、証明書を既存のキーストアにインポートします。

OAMサーバーの場合の例

- java -cp importcert.jar
oracle.security.am.common.tools.importcerts.CertificateImport -keystore <path to .oamkeystore> -privatekeyfile <path to aaa_key.der> -signedcertfile  <path to aaa_cert.der> -alias oam.certmode -aliaspassword <password> -storetype <JCEKS> genkeystore <yes>

キーストア・パスワードと別名パスワードを、求められたら入力します。

OAMクライアントの場合の例

関連項目: 「証明書モードのOAMテスターのクライアント・キーストア生成」

- java -cp importcert.jar
oracle.security.am.common.tools.importcerts.CertificateImport -keystore <path to clientkey.JKS> -privatekeyfile <path to aaa_key.der> -signedcertfile  <path to aaa_cert.der> -storetype <JKS> genkeystore <yes> 

キーストア・パスワードを、求められたら入力します。

B.2.4 Oracle Access ManagementでのTLS 1.3およびTLS 1.2のサポート

OAM 12cでは、Transport Layer Security (TLS) 1.3およびTLS 1.2がサポートされ、インターネット経由の通信にセキュリティを提供しています。このプロトコルを使用すると、クライアント/サーバー・アプリケーションの通信における、傍受、改ざんまたはメッセージ偽造を防止できます。

OAMがTLS 1.3をサポートするのはフロント・チャネルに対してのみです。OAP over HTTPを使用してOAM管理対象サーバーとWebゲートの通信をサポートします。

次の通信モードはサポートされません。

  • OAP over TCP
  • OHS
  • Oracle DatabaseとのOAMバックチャネル通信
  • LDAPアイデンティティ・ストアとのOAMバックチャネル通信

OAMは、次のチャネルを介してTLS 1.2をサポートします。

チャネル TLS 1.2のステータス

フロント

受信トラフィックがロード・バランサ、WebサーバーまたはWeblogic Server上で終了するため、TLS 1.2は完全にサポートされます。

OAPバック

12c Webgateは、TLS 1.2を完全サポートします。

LDAPバック

TLS 1.2トランスポートは、11.1.2.3.0 BP8でサポートされます。ただし、IDSベースのユーザー・アイデンティティ・ストアを使用する場合、TLS 1.2はサポートされません。

JDBCバック

データベースはWLSデータ・ソースを使用して抽象化されています。データベースへの接続にTLS 1.2を使用するように構成できます。OESはJDBCをデータベース抽象化として使用しており、TLS 1.2を使用するように構成できます。

アウトバウンドHTTPS

アウトバウンド通話はすべてJSSEを使用しており、JDK固有のデフォルトに依存しています。JDK 6 121 UpdateおよびJDK 7 Update 95以降、システム・プロパティjdk.tls.client.protocolsを構成することによってプラットフォームTLSプロトコルを制御できます。

TLS 1.2は、JDKでインストールされる暗号化スイートをサポートします。

新しくインストールされた環境の場合

  • 12c PS3 OAMサーバーと12c PS3 Webゲートを検討します(最新バージョンのOAMサーバーとWebゲートを使用します)。これらの間のSSL通信では、TLSv1.2プロトコルおよびSHA-2証明書を使用します。

  • 12c PS3 OAMサーバーと12CPS2/ R2PS3 Webゲートを検討します(以前のバージョンのWebゲートとOAMサーバーを使用します)。OAMではTLSv1.2およびSHA-2証明書がサポートされますが、12CPS2/ R2PS3 Webゲートではサポートされません。

    最新の12c OAMサーバーを、TLS1.2およびSHA2がサポートされない以前のバージョンのWebゲート/OAMサーバーと組み合せて使用するため、次の変更でjava.securityファイルを更新して、OAMのセキュリティ方針を緩和する必要があります。

    • JAVA_HOME/jre/lib/security/にあるjava.securityファイルをエディタで開きます。

    • 次のキーからTLSv1、TLSv1.1、MD5withRSAを削除します。

      キー - jdk.tls.disabledAlgorithms

    • 次のキーからMD5を削除します。

      キー - jdk.certpath.disabledAlgorithms

OAM 12c環境でTLSv1.2を有効化するステップ

OHSでTLSv1.2を有効化します。

12c OHSで次の2つのファイルを更新します。

/scratch/work/TLStest/OHS12c/Oracle_Home/user_projects/domains/base_domain/config/fmwconfig/components/OHS/ohs1/ssl.conf
/scratch/work/TLStest/OHS12c/Oracle_Home/user_projects/domains/base_domain/config/fmwconfig/components/OHS/instances/ohs1/ssl.conf
SSLProtocol -ALL +TLSv1.2

DBでTLSv1.2を有効化します。

次のステップに従ってDBで有効化します。

  • サーバーjnetadmin_sおよびクライアントjnetadmin_cにウォレットを作成します

    
    mkdir root
    
    mkdir jnetadmin_s
    
    mkdir jnetadmin_c
    
    export ORACLE_HOME=/scratch/alice/work/db1427
    
    export T_WORK=$ORACLE_HOME
    
    export ROOT_CERT_DIR=$T_WORK/root
    
    export TNS_ADMIN_SERVER=$T_WORK/jnetadmin_s
    
    export TNS_ADMIN_CLIENT=$T_WORK/jnetadmin_c
    
     
    
    ./orapki wallet create -wallet $ROOT_CERT_DIR -pwd welcome1
    
    ./orapki wallet add -wallet $ROOT_CERT_DIR -dn "CN=Root,C=US" -keysize 2048 -self_signed -validity 3650 -pwd welcome1
    
    ./orapki wallet export -wallet $ROOT_CERT_DIR -dn "CN=Root,C=US" -cert $ROOT_CERT_DIR/b64certificate.txt -pwd welcome1
    
    ./orapki wallet create -wallet $TNS_ADMIN_SERVER -auto_login -pwd welcome1
    
    ./orapki wallet add -wallet $TNS_ADMIN_SERVER -dn "CN=Server,OU=ST,O=Oracle,ST=California,C=US" -keysize 2048 -pwd welcome1
    
    ./orapki wallet export -wallet $TNS_ADMIN_SERVER -dn "CN=Server,OU=ST,O=Oracle,ST=California,C=US" -request $TNS_ADMIN_SERVER/creq.txt -pwd welcome1
    
    ./orapki cert create -wallet $ROOT_CERT_DIR -request $TNS_ADMIN_SERVER/creq.txt -cert $TNS_ADMIN_SERVER/cert.txt -validity 3650 -pwd welcome1
    
    ./orapki wallet add -wallet $TNS_ADMIN_SERVER -trusted_cert -cert $ROOT_CERT_DIR/b64certificate.txt -pwd welcome1
    
    ./orapki wallet add -wallet $TNS_ADMIN_SERVER -user_cert -cert $TNS_ADMIN_SERVER/cert.txt -pwd welcome1
    
    ./orapki wallet create -wallet $TNS_ADMIN_CLIENT -auto_login -pwd welcome1
    
    ./orapki wallet add -wallet $TNS_ADMIN_CLIENT -dn "CN=Client,OU=ST,O=Oracle,ST=CA,C=US" -keysize 2048 -pwd welcome1
    
    ./orapki wallet export -wallet $TNS_ADMIN_CLIENT -dn "CN=Client,OU=ST,O=Oracle,ST=CA,C=US" -request $TNS_ADMIN_CLIENT/creq.txt -pwd welcome1
    
    ./orapki cert create -wallet $ROOT_CERT_DIR -request $TNS_ADMIN_CLIENT/creq.txt -cert $TNS_ADMIN_CLIENT/cert.txt -validity 3650 -pwd welcome1
    
    ./orapki wallet add -wallet $TNS_ADMIN_CLIENT -trusted_cert -cert $ROOT_CERT_DIR/b64certificate.txt -pwd welcome1
    
    ./orapki wallet add -wallet $TNS_ADMIN_CLIENT -user_cert -cert $TNS_ADMIN_CLIENT/cert.txt -pwd welcome1
    
    ./orapki wallet add -wallet $TNS_ADMIN_CLIENT -trusted_cert -cert $TNS_ADMIN_SERVER/cert.txt -pwd welcome1
    
  • wallet.oraファイルを作成/編集します

    cd jnetadmin_s

    vim wallet.ora

    内容は次のとおり。

    
    WALLET_LOCATION=
    
      (SOURCE=
    
         (METHOD=FILE)
    
         (METHOD_DATA=
    
             (DIRECTORY=/scratch/alice/work/db1427/jnetadmin_s/)
    
         )
    
      )
    
  • sqlnet.oraを編集します

    
    SSL_VERSION=1.2
    
    ssl_client_authentication=false
    
    ifile=/scratch/alice/work/db1427/jnetadmin_s/wallet.ora
    
  • listener.oraを編集します

    
    LISTENER =
    
      (DESCRIPTION_LIST =
    
        (DESCRIPTION =
    
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    
          (ADDRESS = (PROTOCOL = TCP)(HOST = slc03rvu.us.oracle.com)(PORT = 1521))
    
            (ADDRESS=(PROTOCOL=tcps)(HOST=slc03rvu.us.oracle.com)(PORT=5551))
    
        )
    
      )
    
    ADR_BASE_LISTENER = /scratch/work
    
    ssl_client_authentication=false
    
    ifile=/scratch/alice/work/db1427/jnetadmin_s/wallet.ora
    
    SSL_VERSION=1.2
    
    SID_LIST_listener=(SID_LIST=
    
      (SID_DESC=(SID_NAME=db1427)(ORACLE_HOME=/scratch/alice/work/db1427))
    
      (SID_DESC=(SID_NAME=db1427)(GLOBAL_DBNAME=db1427.us.oracle.com))
    
    )
    
  • データベースとリスナーを再起動します

    restart DB

    lsnrctl stop

    lsnrctl start

  • opensslを使用して、TLSv1.2を検証します

    openssl s_client -showcerts -tls1_2 -connect slc03rvu.us.oracle.com:5551

WLS JDBC TLSデータ・ソースを追加します。

  • ステップ3で生成したDBサーバー証明書をWLS Demo Trust.jksにインポートします

    keytool -importcert -trustcacerts -alias dbroot -keystore $MW_HOME/wlserver/server/lib/DemoTrust.jks -storepass DemoTrustKeyStorePassPhrase -file $ROOT_CERT_DIR/b64certificate.txt
  • wlsコンソール->「サービス」->「データ・ソース」と移動し、TLS接続の詳細を使用して次のJDBCデータ・ソースを更新します。

  • 各データ・ソースを開いて、次のように接続プール、更新URLおよびプロパティをクリックします。

    URLの例:

    jdbc:oracle:thin:/@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCPS)(HOST=slc03sfc.us.oracle.com)(PORT=2484)))(CONNECT_DATA=(SERVICE_NAME=db4758..us.oracle.com))(SECURITY=(SSL_SERVER_CERT_DN="CN=slc03sfc.us.oracle.com")))

    プロパティ例:

    
    javax.net.ssl.trustStoreType=JKS
    
    javax.net.ssl.trustStorePassword=DemoTrustKeyStorePassPhrase
    
    javax.net.ssl.trustStore=/net/slc03sfc/scratch/work/mw4838/wlserver_10.3/server/lib/DemoTrust.jks
    
  • サーバーを再起動します。

複数のモードを使用してWLS上のOAPチャネルのTLSを有効化します。

「Oracle HTTP Server WebGate for Oracle Access Managerの構成」を参照して、12c証明書および簡易モードを構成します。

簡易モードの場合、java.securityファイルでjdk.certpath.disabledAlgorithmsオプションからMD5を削除し、$OHS_ORACLE_HOME/user_projects/domains/base_domain/config/fmwconfig/components/OHS/ohs1/ohs.plugins.nodemanager.propertiesファイルに次のプロパティを追加します。
environment.ORACLE_SSL_ALLOW_MD5_CERT_SIGNATURES=1

OAMとユーザー・アイデンティティ・ストア間のTLS1.2通信を有効化します

次のステップに従います:

  • OAMコンソールにログインします。

  • 新しいOAM IDストアを作成します。

    新しいOAMIDストアを作成します。
  • デフォルト・ストアを、作成したIDストアに更新します。

    ユーザー・アイデンティティ・ストア
  • LDAP認証モジュールを、作成したIDストアに更新します。

    LDAP認証モジュール
  • すべてのサーバーをシャットダウンし、OUDの証明書をJDKキーストアにインポートします。

    openssl s_client -showcerts -connect slc06bku.us.oracle.com:1636 </dev/null2>/dev/null|openssl x509 -outform PEM >cert.pem
    openssl x509 -outform der -in cert.pem -out cert.der
    keytool  -importcert -alias oud -file cert.der -keystore cacerts  -storepass changeit
  • LDAPサーバーへのTLSv1.2接続をサポートするには、oam-config.xmlファイルでLDAP_URLパラメータの後に、LDAP_SSL_PROTOCOLパラメータを値TLSv1.2を指定して追加します。

    oam-config.xmlにパラメータを設定するには:
    1. exportメソッドを使用して、OAM構成ファイルを/tmp/oam-config.xmlにエクスポートします。詳細は、「OAM構成の更新」を参照してください。
    2. エクスポート済の/tmp/oam-config.xmlファイルで「IdentityStore」セクションを特定し、次の行を検索します:

      <Setting Name="LDAP_URL" Type="xsd:string">ldaps://myldap.example.com:1636</Setting>

      ノート:

      LDAP_URLに、ldapsプロトコルおよび使用中のディレクトリ・サービス・アイデンティティ・ストアのLDAPSポートが含まれていない場合、LDAPSを使用するように更新します。たとえば、ldap://myldap.example.com:1389ldaps://myldap.example.com:1636に更新します。
    3. LDAP_URLエントリの後にLDAP_SSL_PROTOCOLパラメータを追加します:

      <Setting Name="LDAP_SSL_PROTOCOL" Type="xsd:string">TLSv1.2</Setting>

      oam-config.xmlファイルのエントリは、次の例のようになっている必要があります:

      <Setting Name="LDAP" Type="htf:map">
        ...
        <Setting Name="LDAP_URL" Type="xsd:string">ldaps://myldap.example.com:1636</Setting>
        <Setting Name="LDAP_SSL_PROTOCOL" Type="xsd:string">TLSv1.2</Setting>
    4. importメソッドを使用して、更新済の構成を/tmp/oam-config.xmlからインポートします。詳細は、「OAM構成の更新」を参照してください。
  • config/fmwconfig/servers/oam_server1/logging.xmlおよびconfig/fmwconfig/servers/AdminServer/logging.xmlに次の行を追加します

    <logger name='oracle.oam.user.identity.provider' level='TRACE:32'useParentHandlers='false'>
    <handler name='odl-handler'/>
    </logger>
  • サーバーを起動して保護リソースにアクセスすると、oam_server1-diagnostic.logへのtlsログインが記録されます。

    [2016-08-09T01:46:49.398-07:00] [oam_server1] [TRACE:32] [] [oracle.oam.user.identity.provider] [tid: [ACTIVE].ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 036b5306-7533-4458-ad54-5f5be25adadf-00000106,0] [APP: oam_server] [partition-name: DOMAIN] [tenant-name: GLOBAL] [SRC_CLASS: oracle.security.am.engines.common.identity.provider.impl.ids.IDSLDAPConfigurator] [SRC_METHOD: getIDSInstance] Setting ssl protocol as TLSv1.2

IDSプロファイルを使用してOAM用TLSを有効化します

次のステップに従います:

  • OAMコンソールにログインします。

  • IDSプロファイルを作成します。

    IDSプロファイルの作成
  • 「IDSプロファイルの同期」をクリックし、デフォルト・ストアを、作成したIDSプロファイルに更新します。

    ユーザー・アイデンティティ・ストア
  • LDAP認証モジュールを、作成したIDストアに更新します。

    LDAP認証モジュール
  • wlstを使用してID libovdにTLSパラメータを追加し、

    modifyLDAPAdapter(adapterName='IdsProfile', attribute='Protocols', value='TLSv1.2', contextName='ids')

  • ids libovdにキーストアを作成し、

    export ORACLE_HOME=/scratch/work/mw169

    export WL_HOME=/scratch/work/mw169/wlserver

    export JAVA_HOME=/scratch/work/view/nowang_dte8461/bootstrap/java/1.8.0-51-16-150608.1.8.0.51.0016/jdk

    ./libovdconfig.sh -host slc03sfc.us.oracle.com -port 22899 -userName weblogic -domainPath /scratch/work/mw169/user_projects/domains/WLS_IDM -createKeystore -contextName ids

  • libOVDキーストアにOUD証明書を追加し、

    openssl s_client -showcerts -connect slc06bku.us.oracle.com:1636 </dev/null 2>/dev/null|openssl x509 -outform PEM >cert.pem

    openssl x509 -outform der -in cert.pem -out cert.der

    keytool -import -keystore adapters.jks -storepass weblogic1 -alias oud -file cert.der

  • "-Dssl.debug=true -Dweblogic.StdoutDebugEnabled=true -Djavax.net.debug=all"setDomainEnv.shに追加して、oam_server1出力コンソール・リダイレクト・ファイルからのTLS接続メッセージをログで確認します。

  • すべてのサーバーを再起動し、保護リソースにアクセスします。

B.2.5 証明書モードのOAMテスターのクライアント・キーストア生成

証明書モードのOAMテスターとともに使用するJKSキーストアを生成する場合のみ(それ以外の場合、このトピックをスキップします)。

この項ではimportcertコマンドを使用して、インポートした信頼できる証明書チェーンを含むための、証明書モードのOAMテスター用のクライアント・キーストアを生成する方法を説明します。

関連項目:

Importcertツール

証明書モードのOAMテスター用のクライアント・キーストアを生成する手順

  1. ImportCertツールを使用して、JKSキーストア(-privatekeyfileおよび-signedcertfileにより指定されたファイル名)を作成します。たとえば:
    - java -cp importcert.jar
    oracle.security.am.common.tools.importcerts.CertificateImport -keystore <Keystore path> -privatekeyfile <Private key file> -signedcertfile  <Signed certificate file> path -storetype <JKS> genkeystore <yes> 
    

    キーストア・パスワードを、求められたら入力します。

  2. 使用する環境の必要に応じて次に進みます:
  3. キーストアの削除: 次のコマンドを使用して、JKSキーストアを削除します。たとえば:
    keytool -delete -alias <alias> -keystore  <path to clientkey.JKS> -storetype <JKS> 
     

    キーストア・パスワードを、求められたら入力します。

B.3 OAP over RESTを使用したOAMサーバーとWebGates間の通信の保護

OAP over RESTでは、HTTP(S)転送を使用してOAMサーバーとWebGates間の安全な通信を確保します。

B.3.1 OAP over REST通信について

OAP over RESTを使用すると、WebGateとOAMサーバー間のHTTP(S)転送メカニズムが有効になります。この転送メカニズムにより、クラウド・デプロイメントとハイブリッド・デプロイメント(一部のコンポーネントがオンプレミスで、その他のコンポーネントがクラウドに移行されている)の両方の運用コストが削減されます。

OAPは、デフォルトでRESTPayloadEncryptionを使用してサーバーに送信されるメッセージを暗号化することで、追加のセキュリティ・レイヤーを提供します。

HTTP(S)通信をサポートするために、OAMサーバーでは次を使用します:

この12.2.1.4.0リリースのOracle Access Managementでは、OAP over RESTがデフォルトの通信方法です。SSOエージェントを作成するたびに、デフォルトで次の追加パラメータが設定されます。

OAMRestEndPointHostName=host1.comOAMRestEndPointPort=443およびOAMServerCommunicationMode=HTTPS

「マルチデータ・センターでのマスターおよびクローンの設定」も参照してください

B.3.2 OHSでのOracle mod_wl_proxyを使用したロード・バランサの構成

WebGateと管理対象サーバー間のロード・バランサとしてmod_wl_proxyプラグインを構成し、サーバーの負荷を検出して、クライアントのリクエストを適切に転送します。

mod_wl_proxyプラグインの構成の詳細は、WebLogicプロキシ・プラグインの構成に関する項を参照してください。

図B-2 ロード・バランサとしてのmod_wl_proxy

図B-2の説明が続きます
「図B-2 ロード・バランサとしてのmod_wl_proxy」の説明

host1.comのSSLポート443で実行されているOHSでmod_wl_proxyが構成され、2つの管理対象サーバー・インスタンスがclst1.example.com:24100およびclst2.example.com:24100で実行されているデプロイメントについて考えてみましょう

WebGate構成は次のようになります:

OAMRestEndPointHostName=host1.com
OAMRestEndPointPort=443
OAMServerCommunicationMode=HTTPS

mod_wl_proxy構成は次のようになります:

<IfModule weblogic_module>
WebLogicCluster clst1.example.com:24100,clst2.example.com::24100
DynamicServerList ON
MatchExpression /iam/access/binding/api/v10/oap
KeepAliveSecs 90
</IfModule>

mod_wl_proxyは、ロード・バランシングにDyanamicServerListプロパティを使用し、これにより負荷を動的に検出して、クラスタ内のサーバーの追加または削除を適宜実行します。

mod_wl_proxyでは、次のロード・バランシング・アルゴリズムがサポートされます:
  • ラウンドロビン - これは、他のアルゴリズムが指定されていない場合に使用されるデフォルトのロード・バランシング戦略です。ラウンドロビン・アルゴリズムは、クラスタ化されたサーブレットをホストするサーバー・インスタンスのリストを順番に従って周期的にロード・バランシングします。
  • 重みベース - このロード・バランシング戦略では、各サーバー・インスタンスに割り当てる相対的な重みを慎重に決定します。
  • ランダム - リクエストはランダムにサーバーにルーティングされ、クラスタ内のサーバー・インスタンス間で均等に分散されます。
  • アフィニティ・ベース - このアルゴリズムは、標準のロード・バランシング方式(ラウンドロビン、重みベース、ランダムなど)のいずれか1つと組み合せて使用されます。

B.3.3 OAP over REST用のワーク・マネージャの構成

HTTP(S)操作をサポートするために、OAMサーバーではOAP over REST専用のワーク・マネージャwm/OAPOverRestWMを使用します。

OAP over RESTを使用してアプリケーションの作業を管理するワーク・マネージャを構成します:
  1. WebLogic管理コンソールにログインします。
  2. 管理コンソールの左ペインで、「環境」を展開して「サーバー」を選択します。
  3. 「oam_server」をクリックします。
  4. 「oam_serverの設定」ページで、「デプロイメント」タブを選択します。
  5. 「oam_server」「モジュール」の順に展開して、/iam/access/bindingリンクを選択します。
  6. 「構成」タブをクリックし、「ワークロード」タブを選択します。
  7. ワーク・マネージャwm/OAPOverRestWMを選択し、「アプリケーション・スコープのワーク・マネージャ・コンポーネント」の下で、次のパラメータを構成します:
    • Capacity - 容量には、制約対象の作業セットからのすべてのリクエスト(キュー済または実行済)が含まれます。容量のしきい値を超えると、作業は拒否されます。
    • MaxThreadsCount - この制約を共有するリクエストを同時に実行可能な最大スレッド数。
  8. 「保存」をクリックします。

B.3.4 WebGateとAccess Manager間のHTTPおよびHTTPS通信の構成

このトピックでは、WebGateとAccess Manager間のHTTPおよびHTTPS通信の構成方法について説明します。

前提条件:

次のステップを実行したことを確認します:

  1. プロキシ/ロードバランサ/WebLogicに対してSSLを構成した。詳細は、「Web層でのSSLの構成」を参照してください。
  2. OHSに対してSSLウォレットを作成し、SSLを有効にした。詳細は、「Fusion Middleware Controlを使用してOracle HTTP ServerのSSLを有効にする方法」を参照してください

OAMサーバーがインストールされてWebGateがプロビジョニングされると、デフォルトで、次の表のパラメータが構成され、値が自動的に移入されます。WebGateのユーザー定義パラメータには、次の必須構成が設定されます:

表B-2 WebGateの「ユーザー定義パラメータ」フィールドの必須構成

パラメータ名 説明

OAMServerCommunicationMode

エージェントとサーバー間で設定する必要がある通信モードを指定します。WebGateは、構成済のプロトコル(HTTP/HTTPS)を使用して、OAM管理対象サーバーと通信します。

デフォルト値: HTTP/HTTPS (「Access Managerの設定」で構成したWebGateトラフィック・ロード・バランサの値に基づく詳細は、「WebGateトラフィック・ロード・バランサの管理」を参照してください)

許可された値: HTTPおよびHTTPS

OAP over RESTに対して一方向または双方向SSLチャネルを有効にするには、OAMServerCommunicationModeHTTPSに設定されていることを確認します。

HTTPSの場合、WebGateにバンドルされているデフォルトの信頼できる証明書ファイルが次の場所にあります
WEBGATE_ORACLE_HOME/webgate/ohs/tools/curl/cacert.pem
aaa_chain.pemが構成されていない場合、デフォルトでcacert.pemになります。
信頼できる証明書を次の場所にコピーする必要があります
$WEBGATE_INSTANCE_DIR/webgate/config/cacert.pem

OAMRestEndPointHostName

サービスを実行しているサーバーのホスト名、またはRESTエンドポイントを指しているロード・バランサURLを指定します。

デフォルト値: 「Access Managerの設定」で構成したWebGateトラフィック・ロード・バランサの値に基づきます。

OAMRestEndPointPort

サービスを実行しているサーバーのポートを指定します。

デフォルト値: 「Access Managerの設定」で構成したWebGateトラフィック・ロード・バランサの値に基づきます。

ノート:

次のWebGate構成は、OAMServerCommunicationModeHTTPまたはHTTPSに設定されている場合は使用されません:
  • セキュリティ - OpenSimpleおよびCertの各モード
  • アクセス・クライアント・パスワード
  • 最大セッション時間
  • Access Managerのプライマリおよびセカンダリ・サーバーのリスト。最大接続プール・サイズと最小接続プール・サイズは、MaxPoolSizeおよびMinPoolSize設定を使用して指定できます。詳細は、「OAP over REST用の接続チューニング」を参照してください。

次の表に、OAP over RESTに固有のWebGateユーザー定義構成パラメータを示します:

表B-3 WebGateのユーザー定義構成パラメータ

パラメータ名 説明

OAMRestEndPointUrl

サービスのURLを指定します。

デフォルト値: /oam/services/proxy/oapoverrest/v1

RESTPayloadEncryption

WebGateエージェント・キーを使用してOAPメッセージを暗号化します。OAP通信モードでは使用されません。

デフォルト値: True

許可された値: True/False

IdleConnectionTimeout

接続がクローズされるまでのアイドル時間(秒単位)。

デフォルト値: 60秒

MinPoolSize

オープンしておく接続の最小数。

デフォルト値: 2

MaxPoolSize

WebGateでオープンできる最大接続数。

デフォルト値: 100

SSLVerfifyHostname

このオプションでは、サーバー証明書が実際のサーバーと一致することをWebGateで確認するかどうかを指定します。

デフォルト値: True

SSLVerifyPeerCert

このオプションでは、WebGateでピアの証明書の信頼性を確認するかどうかを指定します。

デフォルト値: True

B.3.4.1 OAP over RESTの双方向SSLの有効化

WebGatesとOAMサーバーの間でOAP over RESTの双方向SSLチャネルを有効にするには、次のステップを実行します

ノート:

この機能は、AIXプラットフォームのIHS WebGateではサポートされていません。
  1. 「WebGateとAccess Managerの間のHTTPおよびHTTPS通信の構成」で説明されている構成を設定します。
  2. WebGate証明書署名リクエスト(CSR)を生成し、信頼できるCAまたはルートCAによる署名を取得します。

    ノート:

    生成された証明書および秘密キーは.pem形式である必要があります。
    たとえば、
    1. パスフレーズありまたはパスフレーズなしで秘密キーを生成します:
      • パスフレーズあり:
        openssl genrsa -des3 -passout pass:1234 -out webgate_key.pem 2048
      • パスフレーズなし:
        openssl genrsa -out webgate_key.pem 2048
    2. 前述の秘密キーを使用してCSRを生成します:
      openssl req -out webgate.csr -new -nodes -key webgate_key.pem -sha256
    3. 署名付き証明書を取得するために、CSRを信頼できるCAに送信します。次の例は、自己署名付きCA証明書を使用したCSRへの署名を示しています:
      openssl x509 -req -days 360 -in webgate.csr -CA ../ca.cert.pem -CAkey ../ca.key.pem -CAcreateserial -out webgate_cert.pem -sha256
  3. 生成されたwebgate_cert.pemおよびwebgate_key.pemファイルを$WEBGATE_INSTANCE_DIR/webgate/config/ディレクトリに配置します。
  4. パスフレーズを使用してWebGateキーを生成した場合は、マップ名をWG_Cert_PassPhrase、マップ・キー名をphrase_key、キー名をphraseにして、パスフレーズを$WEBGATE_INSTANCE_DIR/webgate/config/wallet/cwallet.ssoに追加します。
    mkstoreユーティリティを使用して、ウォレットでWebGate証明書パスフレーズを設定します(webgate_key.pemの作成に使用する場合)。
    1. JAVA_HOMEを設定します
    2. <WebGate_Oracle_Home>/oracle_common/bin/mkstoreに移動します
    3. 次のmkstoreユーティリティを実行します: ./mkstore -wrl $WEBGATE_INSTANCE_DIR/config/wallet -createUserCredential <mapName> <mapkeyName> <name> <Passphrase>
      たとえば:
      ./mkstore -wrl ./ -createUserCredential WG_Cert_PassPhrase phrase_key phrase 1234
    4. マップとキー・エントリがウォレットに格納されているかどうかを確認します:
      ./orapki wallet display -wallet wallet/

      これにより、シークレット・ストア・エントリが表示されます。たとえば、WG_Cert_PassPhrase@#3#@phrase_keyです

      ノート:

      双方向SSLを有効にすると、WebGateは"OAP over Rest (HTTPS): 2 way SSL config files are present in webgate instance directory"を示すINFOレベルのログを出力します

      このログは、webgate_cert.pemファイルとwebgate_key.pemファイルの両方がWebGateインスタンス・ディレクトリに追加されている場合にのみ出力されます。

B.3.5 OAP over REST用の接続チューニング

WebGateでは、WebGateとRESTエンドポイント(OAMサーバーなど)間の接続に動的接続プールを使用します。WebGateでオープンされる接続の数は固定ではなく、MinPoolSizeおよびMaxPoolSizeによって制御されます。

MinPoolSize。これは、WebGateによって確立される最小接続数です。WebGateでは、負荷に関係なく、MinPoolSizeで定義された数の接続を常にオープンしておきます。

MaxPoolSize。これは、負荷シナリオでオープンする最大接続数です。MinPoolSizeを超過した接続がIdleConnectionTimeoutで定義された指定期間アイドル状態である場合、その接続はWebGateによってクローズされます。

たとえば、WebGateでは、MinPoolSizeを超過した接続がIdleConnectionTimeoutで定義された秒数を超えてアイドル状態になっているかどうかを60秒ごとにチェックします。「はい」の場合、該当する接続はクローズされます。

WebGateとOAMサーバーまたはロード・バランサとの間で確立された接続は、常に永続的です。ただし、一部のサーバーまたはロード・バランサでは、永続的な接続がデフォルトでは許可されません。

そのため、このようなサーバーについては、接続タイムアウトの設定を変更して、WebGateのIdleConnectionTimeoutで定義されている値よりも大きくする必要があります。

たとえば、OHS上で実行されているmod_wl_proxyプラグインの場合は、次の設定をOHSのhttpd.confファイルに追加します:

KeepAlive on
MaxKeepAliveRequests 0
KeepAliveTimeOut 90

また、KeepAliveSecs 90の設定をmod_wl_proxy.confファイルに追加します:

これが2ノードの管理対象サーバー・クラスタと仮定すると、mod_wl_proxyファイルは次の例のようになる必要があります:

<IfModule weblogic_module>
WebLogicCluster den01cbc.us.oracle.com:24100,den02kra.us.oracle.com:24100
WlSSLWallet /scratch/ranjakha/SSL_Certs
DynamicServerList ON
MatchExpression /oam
KeepAliveSecs 90
</IfModule>

B.3.6 OAP over RESTのトラブルシューティング

この項では、OAP over RESTに関連する問題のトラブルシューティング・ステップについて説明します。

B.3.6.1 Libcurl操作の実行時のエラー

デフォルト(OAP over REST)以外の通信方法に切り替えると、WebゲートおよびOAMサーバーでエラーがスローされます。

問題

デフォルトのOAP over RESTから他の通信方法に切り替えると、次のエラーが発生します:
oracle.security.am.proxy.oam.requesthandler.ObMessageIntegrityFailException: Message Integrity Check Failed

解決策1

この問題を解決するには、必要に応じて、解決策1または解決策2に示されたステップを実行します。

  1. ブラウザまたはcurlコマンドを使用して、http(s)://<OAMHOST>:<OAMPort>/iam/access/binding/api/v10/oapへのアクセスを検証します。

    ノート:

    プロキシがOAM HTTP/HTTPSポートの前面にある場合は、プロキシ設定に/iamのマッピングが含まれていることを確認します。
  2. RESTエンドポイントを参照するようにOAMサーバー設定を更新します:
    1. OAMコンソールにログインします
    2. 「構成」タブをクリックし、「設定」「Access Manager」を選択します。
    3. 必要に応じて、「WebGateトラフィック・ロード・バランシング」の下の「OAMサーバー・ホスト」「OAMサーバー・ポート」および「OAMサーバー・プロトコル」フィールドを更新します。
    4. 「適用」をクリックします。
  3. RESTエンドポイントを参照するようにWebゲート・エージェントを更新します:
    1. OAMコンソールの「アプリケーション・セキュリティ」タブで、「SSOエージェント」をクリックします。
    2. 「SSOエージェントの検索」ウィンドウで、必要な12cエージェントを検索し、そのエージェントをクリックします。
    3. 「ユーザー定義パラメータ」で、次のパラメータが「WebGateトラフィック・ロード・バランシング」で指定されたものと同じデータを参照していることを確認します。
      OAMRestEndPointHostName=<hostname>
      OAMRestEndPointPort=<port>
      OAMServerCommunicationMode=<HTTP/HTTPS>
    4. 「適用」をクリックします。

解決策2

  1. OAMコンソールにログインします
  2. OAMコンソールの「アプリケーション・セキュリティ」タブで、「SSOエージェント」をクリックします。
  3. 「SSOエージェントの検索」ウィンドウで、登録済エージェントを検索し、そのエージェントをクリックします。
  4. 「ユーザー定義パラメータ」から次のパラメータを削除します:
    OAMRestEndPointHostName
    OAMRestEndPointPort
    OAMServerCommunicationMode
  5. 「適用」をクリックします。
  6. 新しく作成したアーティファクト・ファイルをOHS/Webゲートの場所にコピーします。
  7. ObAccessClient.xmlをキャッシュ・ディレクトリ$DOMAIN_HOME/servers/<inst>/cacheから削除します
  8. OHS/Webゲート・サーバーを再起動します。

B.4 Oracle Access ManagementでのFIPSモードの有効化

B.4.1 OAMサーバーでのFIPSモードの有効化

OAMサーバーでFIPSモードを有効にするには:

ノート:

  • 前提条件として、OAMサーバーをインストールして構成する必要があります。

  • 使用されるJDKは、Oracle JDK 1.8.0_271-b09です。

  • 詳しいステップは、『Oracle WebLogic Serverセキュリティの管理』の「JavaオプションでのFIPS 140–2モードの有効化」を参照してください。

  1. IDM WebLogicドメインによって参照されるJDKインスタンスのjavaセキュリティ・ファイルを次のように更新します。

    ノート:

    JAVA_HOME参照は、SetDomainEnvスクリプトから取得できます。

    1. RSAセキュリティ・プロバイダをセキュリティ・ファイルJAVA_HOME /jre/lib/security/java.securityの先頭に追加します。
    2. 次に示すように、その他のプロバイダの順序番号を更新します。
      security.provider.1=com.rsa.jsafe.provider.JsafeJCE
      security.provider.2=com.rsa.jsse.JsseProvider
  2. FIPS固有のjarでWLS Pre-Class設定を更新します。これを行うには:
    1. WL_HOME /server/lib/ディレクトリにあるjcmFips.jarおよびsslj.jarを指すように、WLS PRE_CLASSPATH変数を設定します。
    2. DOMAIN_HOME/bin/ディレクトリにあるsetDomainEnv.shスクリプトにエントリを追加して、PRE_CLASSPATHをエクスポートします。次に、サンプル・エントリを示します。
      PRE_CLASSPATH="WLS_HOME/server/lib/jcmFIPS.jar:WLS_HOME/server/lib/sslj.jar"
      export PRE_CLASSPATH

      ここで、jcmFIPS.jarおよびsslj.jarが指定した場所に存在することを確認した後で、WLS_HOMEをご使用の環境のWLS_HOMEの絶対パスで置き換えます。これにより、WLSドメイン全体のPRE_CLASSPATH変数が設定されます。

  3. WebLogic管理サーバーとすべての管理対象サーバーを再起動します。

B.4.2 FIPS用のSAMLフェデレーションの構成

OAMサーバーでFIPSを有効にする必要があります。詳細は、「OAMサーバーでのFIPSモードの有効化」を参照してください
FIPSに準拠するようにSAMLの構成とプロファイルを更新するには、次のステップを実行します。
  1. OAMサーバーでFIPSを有効にします。
  2. 署名キーのサイズは2048ビット以上である必要があります。そうでない場合は、次のステップを実行して、キー・サイズ2048のキーを生成します。
    1. 次のコマンドを実行します。
      <JAVA_HOME>/bin/keytool -genkeypair -alias samlsigning -keyalg 
      RSA -keysize 2048 -sigalg sha256withrsa -dname cn="ACME SAML Signing" 
      -validity 1000 -keystore $DOMAIN_HOME/config/fmwconfig/.oamkeystore -storetype JCEKS
    2. 次のコマンドを実行します。
      <JAVA_HOME>/bin/keytool -genkeypair -alias samlencryption -keyalg 
      RSA -keysize 2048 -sigalg sha256withrsa -dname cn="ACME SAML Encryption" 
      -validity 1000 -keystore $DOMAIN_HOME/config/fmwconfig/.oamkeystore -storetype JCEKS
    3. OAM管理コンソール(http(s)://<oam-admin-host>:<oam-admin-port>/oamconsole)にログインします。
    4. 「構成」「フェデレーション設定」に移動します
    5. 「キーストア」セクションで、新しいエントリを作成します。
      1. 「キーストア」セクションで「+」ボタンをクリックします
      2. 新しいエントリのKeyIDを入力します(たとえば、saml-signing)
      3. 新しいキー・エントリの別名をドロップダウンで選択します。このドロップダウンには、.oamkeystoreのキー・エントリがリストされます(たとえば、samlsigning)
      4. そのキーの作成時に設定したキー・エントリのパスワードを入力します。
      5. 必要に応じて、他のエントリに対してプロセスを繰り返します。
      6. 「適用」をクリックします
    6. 「一般」セクションで:
      1. キー・エントリのドロップダウン・リストで署名キーを選択します(これらのエントリは「キーストア」セクションで定義されています)。たとえば、saml-signingを選択します
      2. キー・エントリのドロップダウン・リストで暗号化キーを選択します(これらのエントリは「キーストア」セクションで定義されています)。たとえば、saml-encryptionを選択します
      3. 「適用」をクリックします
    7. 証明書またはSAML 2.0メタデータ(あるいはその両方)をパートナに再配布します
  3. URL: http(s)://<oam-host>:<manage_server_port>/oamfed/idp/metadata?signid=saml_signing&encid=saml_encryption&sigalgm=SHA-256を使用してメタデータをダウンロードします。signidおよびencidの値は、前のステップで説明したとおりです。
  4. 新しいメタデータでパートナを更新します。
  5. WLSTに接続して次のコマンドを実行します。
    getStringProperty("/fedserverconfig/signaturedigestalgorithm")
    
    putStringProperty("/fedserverconfig/signaturedigestalgorithm", "SHA-256")
    
  6. サーバーを再起動し、リソースにアクセスします。

B.4.3 OAMクライアントでのFIPSモードの有効化

WebGate

FIPSモードは、WebGate OAPがCERTモードで構成されている場合にのみ機能します。FIPSは簡易モードではサポートされていません。詳細は、「ユーザー定義のWebゲート・パラメータ」を参照してください

ノート:

Webゲートの場合、OAP over TCPのみがFIPS準拠です。

ASDKクライアント

  1. セキュリティ・プロバイダおよびクラスパスの設定を更新します。次のセキュリティ・プロバイダをjavaセキュリティ・ファイル(<JAVA_HOME>/jre/lib/security/java.security)に追加し、それに応じて既存のプロバイダの順序を変更します
    security.provider.1=com.rsa.jsafe.provider.JsafeJCE
    security.provider.2=com.rsa.jsse.JsseProvider
  2. ASDKクライアントを起動します。IDMドメインからWLSTを使用してSimpleModeGlobalPassphraseを取得します。
    <JAVA_HOME>/jre/bin/java -cp .:<ASDK_HOME>/lib/*:<MW_HOME>/oracle_common/modules/oracle.jps/jps-manifest.jar -Dopss.tenant.mode=JPS_API -Djava.util.logging.config.file=
    <ASDK_HOME>/log/log.properties -Djava.security.properties=<JAVA_HOME>/jre/lib/security/java.security -Dkeystore_passwd=<SimpleModeGlobalPassphrase> -Djava.security.debug=access TestASDK_OAM11g
    

簡易モードおよび証明書モードでのASDKクライアントの構成

ASDKクライアントが簡易モードと証明書モードで作動するためには、ASDK構成ディレクトリのpassword.xmlファイルにpasswdkeystore_passwd両方のエントリが含まれている必要があります。

passwd値は、Webゲート・クライアントが簡易モードおよび証明書モードで作成されると作成されます。たとえば:
<?xml version="1.0"?>
<ParamsCtlg xmlns="http://www.acme.com" CtlgName="password">
	<ValNameList ListName="">
		<NameValPair ParamName="passwd"
Value="9a5cec58ce96dadf07f68a3616a20a3ebfcff90e05e15db8d47f45f84a78f6cf775abf3
2c89beeb75ce3b3045a1e6fd0"/>
	</ValNameList>
</ParamsCtlg>
keystore_passwd値を追加するには、次を実行します。
  1. <OAM_DOMAIN_DIRECTORY>/output/webgate-ssl-SHA-256/に移動し、password.xmlファイルを開きます。次に、ファイルの内容の例を示します。
    <?xml version="1.0"?>
    <ParamsCtlg xmlns="http://www.acme.com" CtlgName="password">
    	<ValNameList ListName="">
    		<NameValPair ParamName="passwd"
    Value="02434507010457010c594505535b0d5f0e5b0d534b45025252500c0557"/>
    	</ValNameList>
    </ParamsCtlg>
  2. passwdの値をコピーし、ASDK構成ディレクトリのpassword.xmlkeystore_passwdエントリの下に追加します。たとえば、
    <?xml version="1.0"?>
    <ParamsCtlg xmlns="http://www.acme.com" CtlgName="password">
    	<ValNameList ListName="">
    		<NameValPair ParamName="passwd"
    Value="9a5cec58ce96dadf07f68a3616a20a3ebfcff90e05e15db8d47f45f84a78f6cf775abf3
    2c89beeb75ce3b3045a1e6fd0"/>
    		<NameValPair ParamName="keystore_passwd"
    Value="02434507010457010c594505535b0d5f0e5b0d534b45025252500c0557"/>
    	</ValNameList>
    </ParamsCtlg>
  3. ファイルを保存します。

B.5 Access Managerの証明書モード通信の構成

少なくとも1つのOAMサーバー・インスタンスがエージェントと同じモードで実行されているAccess Manager用の証明書モード通信を構成します。

このトピックでは、Access Manager用の証明書モード通信の構成方法について説明します。次のタスクは証明書モードにのみ適用されます。

ノート:

簡易モードでは、バンドルされたAccess Manager-CA署名付き証明書が使用されて、次のタスクのほとんどは必要ありません。

Prerequisites

エージェントの登録中に、少なくとも1つのOAMサーバー・インスタンスがエージェントと同じモードで実行していることが必要です。それ以外の場合、登録は失敗します。ただし、エージェントの登録後、OAMサーバーの通信モードを変更できます。

タスク概要: OAMサーバーの証明書の追加には次のものが含まれます。

  1. 次の内容の確認:

  2. OAMサーバー用の証明書リクエストおよび秘密キーの生成

  3. 信頼できる、署名された証明書チェーンをキーストアへインポート

  4. 証明書詳細をAccess Manager設定に追加

  5. Webゲート用の秘密キーおよび証明書リクエストの生成

  6. 証明書を使用するようにWebゲートを更新

B.5.1 証明書モードの暗号化およびファイルについて

証明書リクエストを作成し、CAに送信する必要があります。証明書が戻されると、それをOAMサーバーにインポート(またはWebGateにコピー)する必要があります。

Webゲートの証明書リクエストによって、リクエスト・ファイルaaa_req.pemが生成されます。これを、OAMサーバーにより信頼されているルートCAに送信する必要があります。ルートCAが戻す証明書は、OAM Webgateのインストールおよび構成の後で、手動でWebgateインスタンス領域にコピーする必要があります。

  • aaa_key.pem (Webゲート・キー・ファイルの予約名。変更できません)

  • aaa_cert.pem (Webゲート証明書ファイルの予約名。変更できません)

  • aaa_chain.pem (Webゲート側のCA証明書の予約名)

証明書モードでのコンポーネントのインストール中に、外部CAから取得した証明書が存在するかどうかを尋ねられます。証明書をまだ所有していない場合、リクエストできます。証明書を受領するまでは、WebGateを簡易モードで構成できます。ただし、証明書が発行されインストールされるまで、OAMデプロイメントは完了できません。

WebゲートをOAMエージェントとして登録するときに証明書モードを選択すると、エージェント・キー・パスワードを入力するフィールドが表示されます。OAM WebGate登録の編集時に、モードがオープンから証明書へ、または簡易から証明書へ変更される場合にのみpassword.xmlが更新されます。証明書モードでは、一度生成されるとpassword.xmlは更新できません。エージェント・キー・パスワードを編集しても、新しいpassword.xmlは生成されません。

B.5.2 OAMサーバー用の証明書リクエストおよび秘密キーの生成

OAMサーバーの秘密キー、証明書およびCA証明書を取得します。

ノート:

動作保証されたツールは、openSSLです。証明書およびキーをPEM形式で生成するには、他のツールではなくopenSSLを使用することをお薦めします。

OAMサーバーの秘密キーおよび証明書を取得するには:

  1. 次のような証明書リクエスト(aaa_req.pem)および秘密キー(aaa_key.pem)の両方を生成します。
    openssl req -new -keyout aaa_key.pem -out aaa_req.pem -utf8 -sha256
  2. rootCA.keyおよびaaa_chain.pemファイルを生成する認証局(CA)を作成します。
    penssl genrsa -aes256 -out rootCA.key 4096
    openssl req -x509 -new -nodes -key rootCA.key -days 7300 -sha256 -out aaa_chain.pem
  3. 信頼できるCAに証明書リクエスト(aaa_req.pem)を送信して、署名された(aaa_cert.pem)証明書を取得します。
    openssl x509 -req -in aaa_req.pem -CA aaa_chain.pem -CAkey rootCA.key -CAcreateserial -sha256 -out aaa_cert.pem -days 500
  4. aaa_cert.pemをDER形式に変換します。
    openssl x509 -in aaa_cert.pem -inform PEM -out aaa_cert.der -outform DER
  5. aaa_key.pemをDER形式に変換します。
    openssl pkcs8 -topk8 -nocrypt -in aaa_key.pem -inform PEM -out aaa_key.der -outform DER

    ヒント:

    OAMサーバーに対する証明書リクエストを生成するための共通名には、クラスタ環境ではOAMクラスタのロード・バランサのホスト名を、非クラスタ環境ではOAMサーバーがデプロイされているホストの名前を使用できます。

B.5.3 UDMに格納された.OAMKeystoreパスワードの取得

Oracle Enterprise Manager Fusion Middleware Controlコンソールでキーストア資格証明を取得できます。

  1. コンテキストURL (/em) を使用してOracle Enterprise Manager Fusion Middleware Control 12cコンソールにログインします。
  2. システムMBeanブラウザ・ページに移動して、「操作」タブを選択します。
  3. credentialFromUDM操作を検索します。
  4. credentialFromUDM操作リンクをクリックすると、対応するページが開きます。
  5. .OAMKeystoreパスワードを取得するには、次のパラメータ値を入力して、「呼出し」をクリックします。
    • p1 = oracle.oam.OAMStore (mapname)
    • p2 = JKS (key)
    パスワードは、「戻り値」ペインに表示されます。

B.5.4 信頼できる、署名された証明書チェーンをキーストアへインポート

Oracleが提供するimportcertツールは、既存の秘密キー、署名済証明書(公開キー)ファイルを指定のキーストア形式であるJKS (クライアント・キーストア形式)またはJCEKS (OAMサーバー・キーストア形式、たとえば .oamkeystore)へインポートするために使用します。

Access Managerに関連付けられたキーストアはPKCS8 DER形式の証明書のみを受け入れます。

  • PEM形式の証明書が認証局(CA)によって署名されている場合、次の手順ではAccess Managerに付属しているimportcertを使用してこれらの証明書を変換した後にインポートする方法を説明します。

  • PEM形式の証明書がない場合は、証明書リクエストを作成してCAで署名を受けた後で、次の手順を開始してください。

次にJDKバージョン8のkeytoolを使用するためのステップを示します。異なるバージョンのkeytoolの場合、そのJDKバージョンのドキュメントを参照してください。

ノート:

keytoolユーティリティを使用する場合、デフォルトのキー・ペア生成アルゴリズムはDSA (Digital Signature Algorithm)です。ただし、Oracle Access ManagementおよびWebLogic ServerはDSAをサポートしないので、別のキー・ペア生成および署名アルゴリズムを指定する必要があります。

Prerequisites

信頼できる証明書チェーンをキーストアにインポートするには:

  1. 証明書モードでOAMサーバーを設定する場合、.oamkeystoreを変更する前に、オフラインのWLSTコマンドを使用してアーティファクトをダウンロードします。

    downloadAccessArtifacts(domainHome="/new/path/base_domain", propsFile="/path/dbschema.properties")
    
    ---- contents of dbschema.properties ----
    oam.entityStore.schemaUser=MYPREFIX_OAM
    oam.entityStore.schemaPassword=Secret
    oam.entityStore.ConnectString=jdbc:oracle:thin:@dbhost.us.oracle.com:1521/servicename.us.oracle.com

    ノート:

    管理サーバーが再起動するたびに、変更がDBから取得されます。そのため、downloadAccessArtifactsおよびsaveAccessArtifactsを実行して、証明書モードの変更を保存する必要があります。
  2. 次のパスでキーツールを探します。

    $MW_HOME/jdk8/bin/keytool
    
  3. importcert.zipを解凍して、次のパスでReadMeファイルを探します。

    $ORACLE_IDM_HOME/oam/server/tools/importcert/README 
    
  4. aaa_chain.pem: テキスト・エディタを使用してaaa_chain.pemファイルを変更して、CERTIFICATEブロック内に含まれるデータを除くすべてのデータを削除してからそのファイルを保存します。

      ----BEGIN CERTIFICATE-----
          ...
          CERTIFICATE
          ...
       -----END CERTIFICATE-----
    
  5. 次のコマンドと環境に応じた詳細を使用して、信頼された証明書チェーンをインポートします。たとえば:

    keytool -importcert -file aaa_chain.pem -trustcacerts -storepass <password>
    -keystore $ORACLE_HOME\user_projects\domains\$DOMAIN\config\fmwconfig\ 
    .oamkeystore -storetype JCEKS 
    
  6. 証明書を信頼するかどうか尋ねられたら、「yes」と入力します。

  7. aaa_cert.pem:

    1. TextPadを使用してaaa_certn.pemを編集し、CERTIFICATEブロック内に含まれるデータを除くすべてのデータを削除し、そのファイルを新しい場所に保管して元のファイルを保持します。たとえば:

        ----BEGIN CERTIFICATE-----
            ...
            CERTIFICATE
            ...
         -----END CERTIFICATE-----
      
    2. 次のコマンドを入力して署名された証明書(aaa_cert.pem)を、openSSLまたは他のツールを使用してDER形式に変換します。たとえば:

      openssl x509 -in aaa_cert.pem -inform PEM -out aaa_cert.der -outform DER
      
  8. aaa_key.pem:

    1. aaa_key.pemを編集し、CERTIFICATEブロック内に含まれるデータを除くすべてのデータを削除し、そのファイルを新しい場所に保管して元のファイルを保持します。たとえば:

        ----BEGIN CERTIFICATE-----
            ...
            CERTIFICATE
            ...
         -----END CERTIFICATE-----
      
    2. 次のコマンドを入力して秘密キー(aaa_key.pem)を、openSSLまたは他のツールを使用してDER形式に変換します。たとえば:

      openssl pkcs8 -topk8 -nocrypt -in aaa_key.pem -inform PEM -out aaa_key.der  
      -outform DER
      
  9. キーストアに署名付きDER形式の証明書をインポートします。たとえば:

    1. 環境に応じた次のコマンド行引数および詳細を使用してaaa_key.derをインポートします。たとえば:

      c:\Middleware\idm_home\oam\server\tools\importcert

      - java -cp importcert.jar
      oracle.security.am.common.tools.importcerts.CertificateImport  
      -keystore <> -privatekeyfile <path> -signedcertfile  <path> 
      -alias [ -storetype <> genkeystore <> -help]
      

      ノート:

      キーストア・パスワードと別名パスワードを、求められたら入力します。Windowsシステムでは、コロン(:)のかわりにセミコロン(;)をコマンド行で使用してください。

  10. 変更の後で、saveAccessArtifacts(domainHome="/mwhome/user_projects/domains/base_domain", propsFile="/path/dbschema.properties")というオフラインのWLSTコマンドを使用してDBに変更をアップロードしてください。

  11. 「証明書詳細をAccess Manager設定に追加」に進みます。

B.5.5 証明書詳細をAccess Manager設定に追加

証明書をキーストアにインポートした後で、前に指定した別名およびパスワードを、Oracle Access ManagementコンソールでAccess Manager設定構成に追加します。

ノート:

簡易モードには明示的な構成は必要なく、即時可能な状態で提供されます。

証明書詳細をAccess Manager設定に追加する手順

  1. Oracle Access Managementコンソールで、ウィンドウの上部にある「構成」をクリックします。
  2. 「起動パッド」タブで、「設定」セクションの「表示」ドロップダウン・メニューから「Access Manager」を選択します。
  3. 「アクセス・プロトコル」セクションで、前の手順で取得した別名および別名パスワード詳細を入力します。たとえば:

    証明書モードの構成

    PEMキーストア別名: my_keystore_alias

    PEMキーストア別名のパスワード: my_keystore_alias_pw

  4. 「適用」をクリックして、構成を保存します。
  5. ページを閉じます。
  6. OAMサーバー登録ページを開いて「プロキシ」タブをクリックし、「プロキシ・モード」「証明書」に変更して、「適用」をクリックします。
  7. OAMサーバーを再起動します。
  8. 次のトピックに進みます。

B.5.6 Webゲート用の秘密キーおよび証明書リクエストの生成

openSSLを使用してWebゲートの秘密キー、証明書およびCA証明書を取得します。

動作保証されたツールは、openSSLです。証明書およびキーをPEM形式で生成するには、他のツールではなくopenSSLを使用することをお薦めします。

WebGateの秘密キーおよび証明書を取得する手順

  1. 次のような証明書リクエスト(aaa_req.pem)および秘密キー(aaa_key.pem)の両方を生成します。
    openssl req -new -keyout aaa_key.pem -out aaa_req.pem -utf8 -nodes -sha256
  2. 証明書リクエスト(aaa_req.pem)を信頼されているCAに送信します。
  3. base64でのCA証明書をaaa_chain.pemとしてダウンロードします。
  4. base64形式での証明書をformat as aaa_cert.pemとしてダウンロードします。
  5. 次のようにパスワードを使用して秘密キー(aaa_key.pem)を暗号化します。
    openssl rsa -in aaa_key.pem -passin pass: -out aaa_key.pem -passout pass: 
    ******** -des

    ヒント:

    Webゲートに対する証明書リクエストを生成するための共通名には、エージェントがデプロイされているWebサーバーのホスト名を使用できます。

  6. 「証明書を使用するようにWebゲートを更新」に進みます。

B.5.7 証明書モード通信での双方向SSLのサポート

証明書モード通信での双方向SSLのサポートでは、SSLハンドシェイクの実行中にユーザー証明書がサーバーと共有されます。そのため、ユーザー証明書をcwallet.ssoに追加する必要があります。

ユーザー証明書は、orapkiユーティリティを使用して手動でcwallet.ssoに追加する必要があります。『Oracle Fusion Middlewareの管理』キーストア管理ツールに関する項を参照してください

ウォレットにユーザー証明書を追加する前に、ユーザー証明書のDNをノートにとっておきます。
  1. 信頼できる証明書がcwallet.ssoに存在するかどうかをチェックします。
    $MW_HOME/oracle_common/bin/orapki wallet display -wallet ./
    コマンドによって、信頼できる証明書がウォレットの内容に表示されたら、次のステップに進みます。信頼できる証明書が表示されない場合、それをウォレットに追加します。
    $MW_HOME/oracle_common/bin/orapki wallet add -wallet ./ -trusted_cert -cert aaa_chain.pem -auto_login_only
  2. ユーザー証明書リクエストを追加します。

    たとえば、

    $MW_HOME/oracle_common/bin/orapki wallet add -wallet ./ -dn 'CN=oamserver,OU=OAM,O=Oracle,L=Canada,ST=Canada,C=US' -keysize 2048 -auto_login_only
  3. ユーザー証明書リクエストをエクスポートします

    たとえば、

    $MW_HOME/oracle_common/bin/orapki wallet export -wallet ./ -dn 'CN=oamserver,OU=OAM,O=Oracle,L=Canada,ST=Canada,C=US' -request certreq.pem
  4. 信頼できるCAにユーザー証明書リクエスト(certreq.pem)を送信して、署名された(aaa_cert_file.pem)証明書を取得します。
    openssl x509 -req -days 1825 -in certreq.pem -CA aaa_chain.pem -CAkey aaa_key.pem -set_serial 01 -out aaa_cert_file.pem

    必要に応じて、-sha256フラグを追加します。

  5. ユーザー証明書をウォレットに追加します

    たとえば、

    $MW_HOME/oracle_common/bin/orapki wallet add -wallet ./ -cert aaa_cert_file.pem -user_cert -auto_login_only
  6. ウォレットのユーザー証明書を確認します
    $MW_HOME/oracle_common/bin/orapki wallet display -wallet ./
サーバー・インスタンスを起動して、証明書モードの双方向SSLをテストします。

B.5.8 証明書を使用するようにWebゲートを更新

すべての通信モード(オープン、簡易または証明書)で、エージェント登録はOracle Access Managementコンソールから更新する必要があります。

  • エージェントの登録: OAMエージェントの登録時に証明書モードを選択すると、エージェント・キー・パスワードを入力するフィールドが表示されます。

  • エージェントの編集/更新: OAM Webゲート登録の編集時に、モードがオープンから証明書へ、または簡易から証明書へ変更される場合にのみpassword.xmlが更新されます。

    エージェント・キー・パスワードを編集しても、新しいpassword.xmlは生成されません。証明書モードでは、一度生成されるとpassword.xmlは更新できません。

前提条件

証明書詳細をAccess Manager設定に追加

WebGateエージェント登録の通信モードを更新する手順

  1. Oracle Access Managementコンソールで、ウィンドウの上部にある「アプリケーション・セキュリティ」をクリックします。
  2. 「起動パッド」タブで、「エージェント」をクリックします。
  3. 「検索」ページで、「Webゲートの検索コントロール」の説明に従って、検索基準を定義して目的のエージェント登録を開きます。
  4. エージェントの登録ページで「セキュリティ」オプションを見つけて、「証明書」(または「簡易」)をクリックします。
  5. 証明書モード: 「Webゲート用の秘密キーおよび証明書リクエストの生成」のステップ5の指定に従って、「エージェント・キー・パスワード」に入力します。
  6. 「適用」をクリックして変更を送信します。
  7. 更新したWebゲート・ファイルを、次のようにコピーします。

    OAM Webゲート:

    • ObAccessClient.xml
    • cwallet.sso (OAM WebGateのみ)
    • password.xml
    • コピー元: $IDM_DOMAIN_HOME/output/AGENT_NAME

    • コピー先: $OHS_INSTANCE_HOME/config/OHS/ohs2/webgate/config

  8. Webゲート用の秘密キーおよび証明書リクエストの生成時に作成された次のファイルは、orapkiコマンドを使用してcwallet.ssoファイルに追加されたため、WebGateサーバーにコピーする必要はありません。
    • aaa_key.pem: WebGate11g_home/webgate/ohs/tools/openssl
    • aaa_cert.pem: CAからの受信後にこのファイルが保存された場所
    • aaa_chain.pem: CAからの受信後にこのファイルが保存された場所
  9. OAMサーバーおよびOracle HTTP Serverインスタンスを再起動します。

B.5.9 WebゲートでOAPの簡易/証明書モード通信にPFSおよび承認済の暗号スイートを使用する方法について

簡易/証明書モードのOAP通信が発生すると、WebGateでは、管理者によって定義された有効な承認済の暗号スイートが必ず使用されます。

管理者は、WebGateのユーザー定義パラメータTLSCipherSuiteを使用して暗号化方式を定義します。簡易/証明書モードのOAP通信に使用されるデフォルトの暗号化方式は、PFS暗号スイートです。PFS暗号スイートでサポートされている暗号スイートは次のとおりです:

表B-4 PFS暗号スイート

暗号名

TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

TLS_RSA_WITH_AES_128_CBC_SHA

管理者が暗号化方式の定義に使用する、サポートされた承認済の暗号スイートを次に示します:

表B-5 サポートされている暗号スイート

暗号名

TLS_AES_256_GCM_SHA384

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256

TLS_DHE_RSA_WITH_AES_128_CBC_SHA256

TLS_DHE_RSA_WITH_AES_256_CBC_SHA256

TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256

TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384

TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256

TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384

TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256

TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384

TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256

TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384

TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

TLS_RSA_WITH_AES_128_CBC_SHA

TLS_AES_128_GCM_SHA256

B.6 Access Managerの簡易モード通信の構成

トランスポート・セキュリティ通信モードはOAMのインストール中に選択されます。簡易モードのとき、インストーラは最初にランダムなグローバル・パスフレーズを生成しますが、これは後で必要に応じて編集できます。

ノート:

エージェントとサーバー間の通信は、Webゲート・モードがOAMサーバー・モードと同じか、それ以上であれば動作します。

OAMエージェントまたは新しいOAMサーバーを登録する際には、簡易モードを指定できます。ただし、グローバル・パスフレーズの変更には、簡易モードを使用するすべてのエージェントと新しいグローバル・パスフレーズの再構成が必要です。

ノート:

エージェントの登録中に、少なくとも1つのOAMサーバー・インスタンスがエージェントと同じモードで実行していることが必要です。それ以外の場合、登録は失敗します。ただし、エージェントの登録後、OAMサーバーの通信モードを変更できます。

最高レベルのセキュリティは証明書モードで、最も低いのはオープン・モードです。エージェント・モードは高くても問題ありませんが、低くしないでください。たとえば、オープン・モードは簡易または証明書モードに更新できます。

この項では、簡易モード通信の構成に必要な情報を提供します。

タスク概要: 簡易モード通信の構成には次のことが含まれます

  1. 次の内容の確認:

  2. 簡易モード用のグローバル・パスフレーズの取得

  3. 簡易モード用Webゲート登録の更新

  4. 簡易モード構成の検証

B.6.1 簡易モード、暗号化およびキーについて

簡易モード暗号化の場合、Access Managerには認証局がその固有の秘密キーとともに含まれ、すべてのWebゲートおよびOAMサーバーにインストールされます。

インストール中に、OAMサーバーの秘密キー-公開キーのペアが生成され、保存されます。OAMエージェントのインストールでも同様にOracle認証局がインストールされます。

インストーラは最初にランダムなグローバル・パスフレーズを生成しますが、これは必要に応じて編集または表示できます。エージェントがSIMPLE(簡易)モードで登録されていると、次のクライアント証明書が生成され、クライアントにより使用されます。

  • aaa_key.pem: 秘密キーが含まれています

  • aaa_cert.pem: 署名された証明書

  • password.xml: ランダムなグローバル・パスフレーズが不明瞭化された形式で含まれています

ノート:

グローバル・パスフレーズを変更すると、「簡易」モードですでに構成されているすべてのエージェントの再構成が必要になります。

B.6.2 簡易モード用のグローバル・パスフレーズの取得

インストール中に簡易モード通信用にAccess Managerによって生成されたランダムなグローバル・パスフレーズを取得します。

「簡易」モード通信用のランダムなグローバル・パスフレーズを取得する手順

  1. Oracle Access Managementコンソールが実行中であることを確認します。
  2. Oracle Access Managementコンソールをホストしているコンピュータで、次のパスにあるWebLogic Scripting Toolを探します。たとえば:
    $ORACLE_IDM_HOME/common/bin
    

    ここで、$ORACLE_IDM_HOMEはベース・インストール・ディレクトリで、/common/binはスクリプト・ツールが置かれているパスです。

  3. WebLogic Scripting Toolを起動します。たとえば、Unixシステムで:
    ./ wlst.sh
    
  4. WLSTシェルで、接続するコマンドを入力してからリクエスト情報を入力します。たとえば:
    wls:/offline> connect()
    Please enter your username [weblogic] :
    Please enter your password [weblogic] :
    Please enter your server URL [t3://localhost:7001] :
    wls:/base_domain/serverConfig>
    
  5. 次のコマンドを入力して、場所を読取り専用のdomainRuntimeツリーに変更します(ヘルプを表示するにはhelp(domainRuntime)を使用します)。たとえば:
    wls:/OAM_AC>domainRuntime()
    
  6. 次のコマンドを入力して、グローバル・パスフレーズを表示します。たとえば:
    wls:/OAM_AC> displaySimpleModeGlobalPassphrase()
    
  7. 「簡易モード用Webゲート登録の更新」に進みます。

B.6.3 簡易モード用Webゲート登録の更新

簡易セキュリティ・モード用に生成されたアーティファクトはグローバル・パスフレーズを使用し、変更はWebゲートに伝播される必要があります。

簡易モード用に既存のWebゲート登録を更新するには、Oracle Access Managementコンソールを使用してWebゲート登録をいったん削除してから、再登録できます(簡易モードを指定し、ポリシーの自動生成を無効にします)。または、ここで説明するように、Webゲート登録を編集してから、アーティファクトをコピーすることもできます。

簡易モード用WebGate登録を更新する手順

  1. Oracle Access Managementコンソールで、ウィンドウの上部にある「アプリケーション・セキュリティ」をクリックします。
  2. 「起動パッド」タブで、「エージェント」をクリックします。
  3. 「検索」ページで、「Webゲートの検索コントロール」の説明に従って、検索基準を定義して目的のエージェント登録を開きます。
  4. 登録ページで「セキュリティ」オプションを探して「簡易」をクリックします。
  5. 「適用」をクリックして変更を送信します。
  6. 更新したWebゲート・ファイルを、次のようにコピーします。

    OAM Webゲート:

    • ObAccessClient.xml
    • cwallet.sso (OAM WebGateのみ)
    • password.xml
    • コピー元: $WLS_DOMAIN_HOME/output/AGENT_NAME (OAM AdminServerがインストールされているWebLogicドメイン・ホーム)

    • コピー先: $OHS_INSTANCE_HOME/config/OHS/ohs2/webgate/config

  7. 次のファイルを、Webゲート・リリースでの指示に従ってコピーします。
    • aaa_key.pem
    • aaa_cert.pem

    OAM Webゲート:

    11g Webgateの場合

    • コピー元: $IDM_DOMAIN_HOME/output/AGENT_NAME

    • コピー先: $OHS_INSTANCE_HOME/config/OHS/ohs2/webgate/config/simple

    12c Webgateの場合

    • コピー元: $IDM_DOMAIN_HOME/output/AGENT_NAME

    • コピー先: ${Oracle_Home}/user_projects/domains/base_domain/config/fmwconfig/components/OHS/ohs1/webgate/config/simple

  8. OAMサーバーおよびOracle HTTP Serverインスタンスを再起動します。

B.6.4 簡易モード構成の検証

簡易モードへの変更をインスタンス化して結果を検証するために、Webサーバーを再起動します

簡易モードの変更を検証するには:

  1. コマンドライン・ウィンドウからWebサーバーを再起動します。次の例を参照してください。
    11g Webgateの場合
    d:\middleware\ohs_home\instances\ohs_webgate11g\bin
    opmnctl stopall
    opmnctl startall
    12c Webgateの場合
    $(Oracle_Home)/user_projects/domains/base_domain/bin/stopComponent.sh ohs1
    ( stopComponent.sh ohs1 ) $(Oracle_Home)/user_projects/domains/base_domain/bin/startComponent.sh ohs1
  2. ブラウザ・ウィンドウで、簡易モードを使用してWebGateにより保護されているリソースへのURLを入力します。
  3. 求められたら、ログイン資格証明を入力します。
  4. リソースが実行中であることを確認してください。

B.7 IHSWebServerでのSSLの構成

IHSWebServerでSSLを構成するには、次のコマンドを実行します:
  1. ./gskcapicmdが配置されているパスに移動します:
    <ihsroot>/bin
  2. ./gskcapicmdが存在するディレクトリから次のコマンドを実行し、キーストア・ファイル形式でキーストアを作成します:

    構文:

    <ihsroot>/bin/gskcapicmd -keydb -create -db <database file> -pw <password> -stash

    例:

    ./gskcapicmd -keydb -create -db /opt/IBM/HTTPServer/certs/testkey1.kdb -pw Welcome1 -stash
  3. 次のコマンドを実行して、証明書リクエストを作成します:

    構文:

    <ihsroot>/bin/gskcapicmd -certreq -create -db <database> -pw <password> \
         -dn <distinguished name> -label <labelname> -size <size> -file <outputfilename>

    例:

    ./gskcapicmd -certreq -create -db /opt/IBM/HTTPServer/certs/testkey1.kdb -pw Welcome1 -label testaix -dn "cn=slc00ywe.us.oracle.com,O=ORACLE,OU=IHS,L=RTP,ST=PUN,C=IN" -size 2048 -file /opt/IBM/HTTPServer/certs/cert.csr
  4. 次のコマンドを実行して、認証局の秘密キー(証明書の署名に使用)を作成します。このコマンドは任意の場所で実行できます:
    openssl genrsa -out /opt/IBM/HTTPServer/certs/rootCA.key 2048 
  5. 次のコマンドを実行して、認証局の信頼できる証明書を作成します。このコマンドは任意の場所で実行できます:
    openssl req -x509 -new -nodes -key /opt/IBM/HTTPServer/certs/rootCA.key -sha256 -days 1024 -out /opt/IBM/HTTPServer/certs/rootCA.pem
  6. 次のコマンドを実行して、署名付き証明書を.pem形式で生成します。このコマンドは任意の場所で実行できます:
    openssl x509 -req -in /opt/IBM/HTTPServer/certs/cert.csr -CA /opt/IBM/HTTPServer/certs/rootCA.pem -CAkey /opt/IBM/HTTPServer/certs/rootCA.key -CAcreateserial -out /opt/IBM/HTTPServer/certs/aaa_cert.pem -days 500
  7. 次のコマンドを実行して、キーストア・ファイル内に存在するすべての証明書をリストします:
    ./gskcapicmd -cert -list -db /opt/IBM/HTTPServer/certs/testkey1.kdb -pw Welcome1
  8. 次のコマンドを実行して、キーストア・ファイル内のすべてのラベルをリストします:
    To list the label : ./gskcapicmd -certreq -list -db /opt/IBM/HTTPServer/certs/testkey1.kdb -pw Welcome1
  9. 次のコマンドを実行して、署名付き証明書をキーストア・ファイルにインポートします:

    構文:

    <ihsroot>/bin/gskcapicmd -cert -import -db <inputp12file> -pw <pkcs12password>\
          -target <existingkdbfile> -target_pw <existingkdbpassword>

    例:

    ./gskcapicmd -cert -import -db /opt/IBM/HTTPServer/certs/aaa_cert.pem -pw Welcome1 -target /opt/IBM/HTTPServer/certs/testkey1.kdb -target_pw Welcome1
  10. 次のコマンドを実行して、ルートCA証明書をキーストア・ファイルにインポートします:

    構文:

     <ihsroot>/bin/gskcapicmd -cert -import -db <Root CA certificate file> -pw <pkcs12password>\
          -target <existingkdbfile> -target_pw <existingkdbpassword>

    例:

    ./gskcapicmd -cert -import -db /opt/IBM/HTTPServer/certs/rootCA.pem -pw Welcome1 -target /opt/IBM/HTTPServer/certs/testkey1.kdb -target_pw Welcome1
  11. 次のようにして、個人証明書をキーストア.kdbファイルに追加する必要があります:
    1. binディレクトリに移動します。

      <<root directory>>/bin

    2. 次のコマンドを実行して、IBM Key Managerユーティリティを起動します:

      ./ikeyman

    3. 「IBM Key Management」ウィンドウで、「Key Database File」メニューから「Open」を選択して.kdbファイルを開きます。
    4. 「File Name」フィールドに.kdbファイルの実際のファイル名を入力し、「Location」フィールドに.kdbファイルが配置されているディレクトリのパスを入力します。
    5. プロンプトが表示されたら、.kdbファイルのパスワードを入力します。
    6. 「IBM Key Management」ウィンドウで、ドロップダウン・リストから「Personal Certificates」を選択します。
    7. 「New-Self Signed」をクリックして、新しい自己署名証明書を作成します。
      • 「Key Label」フィールドにラベル名を入力し、すでに使用されているラベル名が指定されていないことを確認します。
      • 「Common Name」「Organization」「Organizational Unit」「Locality」「State/Province」および「Zipcode」の各フィールドに値を入力します。
      • 「OK」をクリックします
  12. <<root directory>>/conf/httpd.confを開き、httpd.confファイルを変更します。
    • httpd.confの「SSL」セクションが、次のように表示されていることを確認します:
      LoadModule ibm_ssl_module modules/mod_ibm_ssl.so		
      Listen ihs_host:ihs_ssl_port 
      #SSLCheckCertificateExpiration 30
      <VirtualHost ihs_host:ihs_sslport>
      SSLEnable
      SSLServerCert <Provide the labelname mentioned in step 11g) 
      </VirtualHost>
      SSLDisable
      KeyFile <path of the .kdb file>
      # End of example SSL configuration
  13. IHSWebServerを再起動し、httpsプロトコルおよびhttpsポートを介してリソースにアクセスします。