18 WDTを使用したOracle Access Managerの構成

エンタープライズ・デプロイメントの開始点として使用できる初期ドメインをインストールおよび構成します。後でドメインを構成します。

完全なOracle Identity and Access Managementでは、ドメインを分割してデプロイします。つまり、Oracle Access Management用に1つのドメインがあり、Oracle Identity Governance用に別のドメインがあります。

WebLogic Kubernetes Operatorのバージョン4.1.2では、Oracle WebLogicドメインを作成するための2つの異なる方法を使用できます。従来のWLSTの方法では、WLSTスクリプトを使用してドメインを作成します。これは、エンタープライズ・デプロイメント・ガイドでいくつかのリリースに使用されている方法です。

このリリース以降、エンタープライズ・デプロイメント・ガイドでは、Weblogicデプロイメント・ツール(WDT)を使用してドメインを作成します。WDTはテンプレートを使用してドメインを作成し、インストール手順を簡素化します。WebLogicデプロイメント・ツールの詳細は、WebLogic Deploy Toolingを参照してください

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

初期インフラストラクチャ・ドメインについて

初期インフラストラクチャ・ドメインを作成する前に、重要な概念を確認してください。

ソフトウェア・ディストリビューションについて

エンタープライズ・デプロイメントの初期インフラストラクチャ・ドメインの作成には、Oracle Weblogic Operatorを使用します。Oracle Access Managerソフトウェアは、事前作成済のコンテナ・イメージとして配布されます。「エンタープライズ・デプロイメント用のソフトウェア・ディストリビューションの特定と取得」を参照してください。このディストリビューションには、Oracle Access Managerのインストールと構成に必要なすべてのコンポーネントが含まれています。

『Oracle Fusion Middlewareの理解』Oracle Fusion Middlewareの理解に関する項を参照してください。

ドメインの特徴

次の表に、作成するドメインの主な特徴を示します。これらの特徴を確認することで、ドメインの構成手順の目的やコンテキストに対する理解が深まります。

これらの特徴の多くについては、「標準的なエンタープライズ・デプロイメントの理解」で詳しく説明しています。

ドメインの特徴 詳細情報

各WebLogic Serverは、Kubernetesクラスタ内のポッドに配置されます。

「Kubernetesデプロイメントについて」を参照してください。

各Kubernetesドメイン・オブジェクトを専用のKubernetesネームスペースに配置します。

「Kubernetesデプロイメントについて」を参照してください。

Kubernetesサービスを使用して、WebLogic管理対象サーバーと対話します。

「Kubernetesサービスの作成」を参照してください。

Kubernetes永続ボリュームを使用して、ドメイン構成を保持します。

unresolvable-reference.html#GUID-373A3448-D7BA-41F6-BFDB-4D7DDB2B03F1を参照してください。

各Kubernetesポッドは、事前作成済のOracleコンテナ・イメージから作成されます。

「エンタープライズ・デプロイメント用のソフトウェア・ディストリビューションの特定と取得」を参照してください。

ドメインごとのノード・マネージャ構成を使用。

「標準的なエンタープライズ・デプロイメントのノード・マネージャ構成について」を参照してください。

別途インストールされたLDAPベースの認証プロバイダが必要。

「Oracle Unified Directoryのインストールおよび構成」を参照してください。

証明書は、Oracleキーストア・サービスに格納されます。

「Oracle OPSSキーストア・サービスの構成」を参照してください。

この章で使用される変数

この章の以降の項では、多数のファイルを作成する手順について説明します。これらのサンプル・ファイルには、デプロイメントに適用可能な値に置換する必要がある変数が含まれています。

変数の形式は<VARIABLE_NAME>です。次の表に、これらの各変数に設定する必要がある値を示します。

表18-1 変更する必要がある変数

変数 サンプル値 説明

<REGISTRY_ADDRESS>

iad.ocir.io/<mytenancy>

コンテナ・レジストリの場所。

<REGISTRY_SECRET_NAME>

regcred

コンテナ・レジストリ資格証明を含むKubernetesシークレットの名前。コンテナ・レジストリから直接イメージをプルする場合にのみ必要です。「コンテナ・レジストリ・シークレットの作成」を参照してください。

<REG_USER>

mytenancy/oracleidentitycloudservice/myemail@email.com

コンテナ・レジストリへのログインに使用するユーザーの名前。

<REG_PWD>

<password>

コンテナ・レジストリ・ユーザー・パスワード。

<OAM_REPOSITORY>

oracle/oam

local/oracle/oam

container-registry.oracle.com/middleware/oam_cpu

<REGISTRY_ADDRESS>/oracle/oam

OAMソフトウェア・リポジトリの名前。

コンテナ・イメージをダウンロードしてステージングした場合、この値はoracle/oamになります。OLCNEを使用する場合、値はlocal/oracle/oamになります。

Oracleコンテナ・レジストリを使用している場合、値はcontainer-registry.oracle.com/middleware/oam_cpuになります。

コンテナ・レジストリを使用している場合、値は製品名を含むレジストリの名前になります: <REGISTRY_ADDRESS>/oracle/oam

<OAM_VER>

12.2.1.4-jdk8-ol7-220418.0839

latest

使用するイメージのバージョン。この値は、ダウンロードしてローカルまたはコンテナ・レジストリにステージングしたバージョンです。

<PVSERVER>

nfsserver.example.com

NFSサーバーの名前またはIPアドレス。

ノート: この名前は、Kubernetesクラスタ内で解決可能である必要があります。

<OAMNS>

oamns

OAMオブジェクトを格納するために使用されるドメイン・ネームスペース。

<WORKDIR>

workdir/OAM

OAMの作業ディレクトリを作成する場所。

<K8_WORKDIR>

/u01/oracle/user_projects/workdir

Kubernetesコンテナ内の作業ディレクトリ。

<OAM_SHARE>

/exports/IAMPVS/oampv

永続ストアのNFSエクスポート。

<OAM_DB_SCAN>

dbscan.example.com

データベース・クラスタのSCANアドレス。

<OAM_DB_LISTENER>

1521

データベース・リスナーのポート番号

<OAM_DB_SERVICE>

iadedg.example.com

使用するデータベース・サービスの名前。

<OAM_DB_SYS_PWD>

MySysPWD__001

データベースのSYSパスワード。

<OAM_RCU_PREFIX>

IADEDG

データベース・スキーマの作成時に使用される接頭辞。

<OAM_COOKIE_DOMAIN>

.example.com

OAM Cookieを関連付けるドメインで、これは通常、ドメイン形式の<LDAP_SEARCHBASE>と同じです。

<OAM_OIG_INTEG>

false

Oracle Identity Governanceでパスワードを忘れた場合の機能に対応するには、このパラメータをtrueに設定します。パスワードを忘れた場合のOAMの新機能を使用するには、値をfalseに設定します。

<OAM_SCHEMA_PWD>

MySchemaPWD__001

作成される製品スキーマに設定するパスワード。

<OAM_DOMAIN_NAME>

accessdomain

作成されるKubernetesドメインの名前。

<OAM_DOMAIN_SECRET>

accessdomain-weblogic-credentials

使用されるネームスペースに対して作成するシークレットの名前。シークレットの名前は<OAM_DOMAIN_NAME>-weblogic-credentialsである必要があります。

<OAM_ADMIN_LBR_HOST>

iadadmin.example.com

OAM管理機能の仮想ホスト。

<OAM_RCU_SECRET>

accessdomain-rcu-credentials

RCUシークレットの名前。シークレットの名前は<OAM_DOMAIN_NAME>-rcu-credentialsである必要があります。「RCUシークレットの作成」を参照してください。

<OAM_LOGIN_LBR_HOST>

login.example.com

ログイン・ロード・バランサ仮想名の名前。

<OAM_LOGIN_LBR_PROTOCOL>

https

ログイン・ロード・バランサに使用されるアクセス・プロトコルのタイプ。SSL終端環境では、この値はhttpsになります。

<OAM_LOGIN_LBR_PORT>

443

ログイン・ロード・バランサ仮想名のポート。

<OAM_OAP_HOST>

oap.example.com

accessdomain-oap.oamns.svc.cluster.local.

レガシーWebGate通信のための、外部で解決可能なホスト名。このホストは、1つのKubernetesワーカー・ノードか、複数のKubernetesワーカー・ノードを指し示すロード・バランサ・エントリ・ポイントのいずれかです。

Kubernetesクラスタ内でのみ対話している場合、ホスト名は<OAM_DOMAIN_NAME>-oap.<OAMNS>.svc.cluster.localになります。

<OAP_MODE>

openまたはcert

WebGateからのネイティブOAPコールを使用している場合に使用するOAPセキュリティ・モード。OAMとの対話は、RESTを介してOAPを使用して行うことをお薦めします。その場合、転送モードは使用されません。これらのシナリオでは、証明書を管理する必要がなくなるように、<OAP_MODE>をOpenに設定します。

<WG_CONNECTIONS>

20

WebGateエージェントでサポートされる接続の最大数。

<OAM_SERVER_COUNT>

5

必要な管理対象サーバーの数。この値は、システムの存続期間中に予想されるニーズより大きい数に設定することを強くお薦めします。これにより、WebLogicドメインに複数のサーバー定義が作成され、需要の増加時にシステムをスケール・アップする単純なメカニズムが確保されます。この値は、実際に起動するサーバー・インスタンスの数を反映するものではなく、ニーズの変化に応じて追加のサーバーを起動できます。ドメイン作成後のサーバー定義の追加は複雑なタスクであるため、可能であれば避けてください。

<OAM_INITIAL_SERVERS>

1

起動する管理対象サーバーの数。この値は、構成期間中は1に設定することをお薦めします。

<OAM_MAX_CPU>

1

OAM_SERVERポッドが消費できるCPUの最大数。CPUは、CPUコアで測定されます。1の値は、1 CPUコアまたは1仮想コアと等しくなります。

<OAM_CPU>

500m

OAM_SERVERポッドが消費できるCPUの初期数。これはCPUサイクルで測定され、1000mの値は1 CPUコアまたは1仮想コアと等しくなります。CPUはCPUコアで測定され、1の値は1 CPUコアまたは1仮想コアと等しくなります。

<OAM_MAX_MEMORY>

8Gi

OAM_SERVERポッドが消費できるメモリーの最大量。メモリーは、1Gが1Giと等しい標準単位で測定されます。

<OAM_MEMORY>

2Gi

OAM_SERVERポッドが消費できるメモリーの初期量。メモリーは、1Gが1Giと等しい標準単位で測定されます。

<OAMSERVER_JAVA_PARAMS>

-Xms2048m -Xmx8192m

OAM_SERVERに割り当てられる最大(Xmx)および最小ヒープ・サイズ。このサイズはMb数で表されます。

ノート:

ヒープ・サイズの最大量は、ポッド<OAM_MAX_MEMORY>で使用できる最大量より小さくする必要があります

<LDAP_HOST>

edg-oud-ds-rs-lbr-ldap.oudns.svc.cluster.local

OUDの場合、この値は<OUD_PREFIX>-oud-ds-rs-lbr-ldap.<OUDNS>.svc.cluster.localになります。

LDAPディレクトリが実行されているホストの名前。

<LDAP_PORT>

1389 (OUD)

LDAPへの接続に使用されるポート。ディレクトリがKubernetes環境に格納されている場合、これは内部Kubernetesサービス・ポートになります。ディレクトリがKubernetesの外部にある場合、通常のLDAPポートになります。

<LDAP_ADMIN_USER>

cn=oudadmin

ディレクトリ管理者のユーザー名。

<LDAP_SEARCHBASE>

dc=example,dc=com

組織のディレクトリ・ツリー。これは、すべてのデータが格納される場所です。

<LDAP_GROUP_SEARCHBASE>

cn=Groups,dc=example,dc=com

グループ/ロールが格納されるディレクトリ内の場所。

<LDAP_USER_SEARCHBASE>

cn=Users,dc=example,dc=com

ユーザーの名前が格納されるディレクトリ内の場所。

<LDAP_SYSTEMIDS>

cn=systemids,dc=example,dc=com

システムIDを格納するコンテナの名前。このコンテナに配置されたユーザー名は、OIMリコンシリエーションまたはパスワード・エージングの対象ではありません。このコンテナは、<LDAP_OAMLDAP_USER>や<LDAP_OIGLDAP_USER>などのユーザー用に予約されています。

<LDAP_TYPE>

OUD

これは、ディレクトリのタイプ(OUDまたはOID)です。

<LDAP_WLSADMIN_USER>

weblogic_iam

WebLogicドメインを管理するユーザーの名前。

この名前は、シングル・サインオン認証に使用されるLDAPユーザー名です。<OAM_WEBLOGIC_USER>は、ドメイン作成プロセス中に割り当てられた内部WebLogicユーザー名です。

<LDAP_OAMADMIN_USER>

oamadmin

OAMを管理するユーザーの名前。

<LDAP_OAMLDAP_USER>

oamLDAP

OAMがディレクトリに接続してログインを検証するために使用するユーザーの名前。

<LDAP_WLSADMIN_GRP>

WLSAdministrators

このロールに割り当てられたユーザーは、WebLogic管理コンソールおよびFMW Controlにログインできます。

<LDAP_OAMADMIN_GRP>

OAMAdministrators

このロールに割り当てられたユーザーは、OAM管理コンソールにログインしてOAMを構成できます。

<OAM_OAP_SERVICE_PORT>

30540

OAM OAPリクエストのKubernetesサービス・ポート。

<OAM_ADMIN_PORT>

7001

OAM管理サーバーに割り当てられた内部ポート。

<OAM_OAP_PORT>

5575

内部OAPポート番号。

Kubernetesサービスを使用している場合、この値を内部ポート番号にできます。

<OAP_SERVICE_PORT>

30540

OAM OAPクラスタ・ノードに面しているKubernetesサービス・ポート。Kubernetesサービスを使用している場合、この値を内部ポート番号にできます。

<OAM_EXT_T3_PORT>

30012

外部T3ポート。

<OAM_OAM_K8>

30410

OAM管理対象サーバーのKubernetesサービス・ポート。

<OAM_POLICY_K8>

30510

OAMポリシー・マネージャ・サーバーのKubernetesサービス・ポート。

<OAM_ADMIN_K8>

30701

外部WebLogic管理サーバーの外部OAM WebLogic Kubernetesサービス・ポート。

<ELK_HOST>

https://elasticsearch-es-http.elkns.svc:9200

集中管理型のElasticsearchデプロイメントのホストおよびポート。このホストは、Kubernetesクラスタの中と外のどちらでもかまいません。このホストは、Elasticsearchが使用されている場合にのみ使用されます。

<ELK_VER>

8.11.0

使用するElasticsearchのバージョン。

Kubernetesサービス

NodePortサービスを使用している場合、デプロイメントの一部として次のKubernetesサービスが作成されます:

表18-2 Kubernetes NodePortサービス

サービス名 タイプ サービス・ポート マップ済ポート

accessdomain-oam-policy-NodePort

NodePort

30510

15000

accessdomain-oam-oam-NodePort

NodePort

30410

14100

accessdomain-adminserver-external

NodePort

30701

7001

accessdomain-adminserver

ClusterIP

7001

3012

ノート: 3012はT3サービス・ポートです。

7001/3012

イングレスベースのデプロイメントを使用する場合、このデプロイメントの一部として次のイングレス・サービスが作成されます:

表18-3 イングレス・サービス

サービス名 ホスト名

oamadmin-ingress

iadadmin.example.com

oamruntime-ingress

login.example.com

KubernetesインフラストラクチャへのOracle Access Manager (OAM)のインストール

OAM Kubernetesインフラストラクチャを作成する前に、Oracle Access Managerイメージをダウンロードし、Oracle WebLogic Operatorをインストールしておく必要があります。

前提条件

KubernetesインフラストラクチャにOracle Access Manager (OAM)を作成する前に、Oracle Access Managerコンテナ・イメージをダウンロードし、Oracle WebLogic Operatorをインストールしておく必要があります。

製品固有の作業ディレクトリの設定

インストールを開始する前に、Oracle Access Managerコンテナ・イメージおよびサンプル・コード・リポジトリをダウンロードしてステージングしておく必要があります。「エンタープライズ・デプロイメント用のソフトウェア・ディストリビューションの特定と取得」を参照してください。

また、「WebLogic Kubernetes Operatorのインストール」の説明に従って、Oracle WebLogic Operatorをデプロイしている必要があります。

この項では、ダウンロードしたサンプル・デプロイメント・スクリプトをOAMの構成ホストの一時作業ディレクトリにコピーする手順について説明します。

  1. インストール・ユーザーとして一時作業ディレクトリを作成します。インストール・ユーザーには、Kubernetesクラスタへのkubectlアクセス権が必要です。
    mkdir -p /<WORKDIR>
    たとえば:
    mkdir -p /workdir/OAM
  2. ディレクトリをこの場所に変更します:
    cd /workdir/OAM
  3. サンプル・スクリプトを作業ディレクトリにコピーします。
    cp -R <WORKDIR>/fmw-kubernetes/OracleAccessManagement/kubernetes <WORKDIR>/samples
    たとえば:
    cp -R /workdir/OAM/fmw-kubernetes/OracleAccessManagement/kubernetes /workdir/OAM/samples

Oracle Access Managerのネームスペースの作成

すべてのOracle Access Manager Kubernetesオブジェクトを含むネームスペースを作成します。

  1. ネームスペースを作成するには、次のコマンドを使用します:
    kubectl create namespace oamns

    出力が次のように表示されます。

    namespace/oamns created
  2. WebLogic Kubernetes Operatorで管理できるようにネームスペースをタグ付けします。
    kubectl label namespaces oamns weblogic-operator=enabled

コンテナ・レジストリ・シークレットの作成

コンテナ・レジストリを使用して、オンデマンドでOracleコンテナ・イメージをプルする場合は、コンテナ・レジストリのログイン詳細を含むシークレットを作成する必要があります。

コンテナ・イメージをローカルにステージングした場合は、このステップを実行する必要はありません。

コンテナ・レジストリ・シークレットを作成するには、次のコマンドを使用します:
kubectl create secret -n <OAMNS> docker-registry <REGISTRY_SECRET_NAME> --docker-server=<REGISTRY_ADDRESS> --docker-username=<REG_USER> --docker-password=<REG_PWD>
たとえば:
kubectl create secret -n oamns docker-registry regcred --docker-server=iad.ocir.io/mytenancy --docker-username=mytenancy/oracleidentitycloudservice/myemail@email.com --docker-password=<password>

Docker HubイメージのKubernetesシークレットの作成

このシークレットを使用すると、Kubernetesはhelmkubectllogstashコマンドなど、サードパーティのイメージを含むhub.docker.comからイメージをプルできます。

ノート:

独自のコンテナ・レジストリからイメージをプルする場合、このステップは必要ありません。

hub.docker.comにアカウントが必要です。イメージを独自のリポジトリにステージングする場合は、それを実行し、helmオーバーライド・ファイルを適宜変更できます。

hub.docker.comにKubernetesシークレットを作成するには、次のコマンドを使用します:

$ kubectl create secret docker-registry dockercred --docker-server="https://index.docker.io/v1/" --docker-username="<DH_USER>" --docker-password="<DH_PWD>" --namespace=<OAMNS>
たとえば:
$ kubectl create secret docker-registry dockercred --docker-server="https://index.docker.io/v1/" --docker-username="username" --docker-password="<mypassword>" --namespace=oamns

Access Manager用のデータベース・スキーマの作成

Oracle Fusion Middlewareコンポーネントでは、データベース内にスキーマが必要です。これらのスキーマは、デプロイメント時にWebLogicデプロイメント・ツールによって作成されます。

このツールは次のスキーマを作成します:

  • メタデータ・サービス(MDS)

  • 監査サービス(IAU)

  • 監査サービスへの追加(IAU_APPEND)

  • 監査サービス・ビューア(IAU_VIEWER)

  • OPSS (Oracle Platform Security Services)

  • ユーザー・メッセージング・サービス(UMS)

  • WebLogicサービス(WLS)

  • 共通インフラストラクチャ・サービス(STB)

  • Oracle Access Manager(OAM)

RCUの詳細とスキーマを作成してデータベースに格納する方法の詳細は、リポジトリ作成ユーティリティによるスキーマの作成スキーマ作成の準備に関する項を参照してください。

動作保証されたデータベースをインストールおよび構成し、そのデータベースが稼働中であることを確認する必要があります。

「エンタープライズ・デプロイメント用の既存のデータベースの準備」を参照してください

Oracle Access Managerドメインの作成

Oracle Access Managerドメインを構成するには、ドメイン・ネームスペースのWebLogic Operatorを構成し、Kubernetesシークレットを作成して、Accessドメインを作成する必要があります。

Kubernetesシークレットの作成

ドメイン作成プロセスに資格証明を直接渡さずに、Kubernetesシークレットを使用して、暗号化された形式で資格証明を格納できます。WebLogic Operatorは、資格証明を要求するかわりに、これらのシークレットを読み取ります。

ドメイン・シークレットの作成

ドメイン・シークレットには、ドメインを作成するWebLogic管理ユーザーに関する情報が含まれます。

  1. 次のコマンドを使用して、ドメイン・シークレットを作成します:
    cd <WORKDIR>/samples/create-access-domain/domain-home-on-pv/wdt-utils
    ./create-secret.sh -l "username=<OAM_WEBLOGIC_USER>" -l "password=<OAM_WEBLOGIC_PWD>" -n <OAMNS> -d <OAM_DOMAIN_NAME> -s <OAM_DOMAIN_SECRET>
    たとえば:
    cd /workdir/OAM/samples/create-access-domain/domain-home-on-pv/wdt-utils
    ./create-secret.sh -l "username=weblogic" -l "password=mypassword" -n oamns -d accessdomain -s accessdomain-weblogic-credentials
    出力が次のように表示されます。
    @@ Info: Setting up secret 'accessdomain-weblogic-credentials'.
    secret/accessdomain-credentials created
    secret/accessdomain-credentials labeled
  2. 次のコマンドを使用して、シークレットが作成されたことを確認します:
    kubectl get secret accessdomain-weblogic-credentials -o yaml -n oamns
RCUシークレットの作成

RCUシークレットは、WebLogic Operatorが作成済のデータベース・スキーマに接続する方法を決定するために使用されます。「Access Manager用のデータベース・スキーマの作成」を参照してください。

RCUシークレットを作成するには、次のステップを実行します:

  1. 次のコマンドを使用します。
    cd <WORKDIR>/samples/create-access-domain/domain-home-on-pv/wdt-utils
    ./create-secret.sh -l "rcu_prefix=<OAM_RCU_PREFIX>" -l "rcu_schema_password=<OAM_SCHEMA_PWD>" -l "db_host=<DB_HOST>" -l "db_port=<DB_PORT>" -l "db_service=<OAM_DB_SERVICE>" -l "dba_user=sys" -l "dba_password=<OAM_SYS_PWD>" -n <OAMNS> -d <OAM_DOMAIN_NAME> -s <OAM_RCU_SECRET>
    たとえば:
    cd /workdir/OAM/samples/create-access-domain/domain-home-on-pv/wdt-utils
    ./create-secret.sh -l "rcu_prefix=IADEDG" -l "rcu_schema_password=MySchemaPWD__001" -l "db_host=DB-SCAN.example.com" -l "db_port=1521" -l "db_service=oam_s.example.com" -l "dba_user=sys" -l "dba_password= MySysPWD__001" -n oamns -d accessdomain -s accessdomain-rcu-credentials
    出力が次のように表示されます。
    @@ Info: Setting up secret 'accessdomain-rcu-credentials'.
    secret/accessdomain-rcu-credentials created
    secret/accessdomain-rcu-credentials labeled
  2. コマンドを使用して、シークレットが作成されたことを確認します:
    kubectl get secret accessdomain-rcu-credentials -o yaml -n oamns

Accessドメインの作成

アクセス・ドメインを作成する手順には、ドメイン構成ファイルの作成、WebLogic Kubernetes Operatorを使用したドメインの作成、メモリー・パラメータの設定、ドメインの初期化、およびドメインの確認が含まれます。

ドメイン構成ファイルの作成

構成ファイルは、WebLogic Operatorにドメインの作成方法を指定するために使用されます。この構成ファイルは、create-domain-wdt.yamlという名前で、<WORKDIR>/samples/create-access-domain/domain-home-on-pv/wdt-utils/generate_models_utils/create-domain-wdt.yamlにあります。

  1. /workdir/OAM/create-domain-wdt.yamlファイルのコピーを作成します。たとえば:
    cp /workdir/OAM/samples/create-access-domain/domain-home-on-pv/wdt-utils/generate_models_utils/create-domain-wdt.yaml /workdir/OAM
    
  2. create-domain-wdt.yamlファイルの次の値を更新します:
    domainUID: <OAM_DOMAIN_NAME> 
    domainPVMountPath: /u01/oracle/user_projects/
    domainHome: /u01/oracle/user_projects/domains/<OAM_DOMAIN_NAME> 
    image: <OAM_REPOSITORY>:<OAM_VER>
    imagePullSecretName: <REGISTRY_SECRET_NAME>
    namespace: <OAMNS> 
    logHome: /u01/oracle/user_projects/domains/logs/<OAM_DOMAIN_NAME>
    weblogicDomainStorageNFSServer: <PVSERVER>
    weblogicDomainStorageType: NFS
    weblogicDomainStoragePath: <OAM_SHARE>
    edgInstall: true
    oamServerJavaParams: <OAMSERVER_JAVA_PARAMS>
    oamMaxCPU: <OAM_MAX_CPU>
    oamCPU: <OAM_CPU>
    oamMaxMemory: <OAM_MAX_MEMORY>
    oamMemory: <OAM_MEMORY>     
    exposeAdminNodePort: true
    configuredManagedServerCount: <OAM_SERVER_COUNT>
    initialManagedServerReplicas: <OAM_INITIAL_SERVERS>
    productionModeEnabled: true
    exposeAdminT3Channel: true
    adminNodePort: <OAM_ADMIN_K8>
    datasourceType: agl
    説明:
    • domainUIDは、ドメインに割り当てる名前です。
    • domainPVMountPathは、永続ボリュームがマウントされているコンテナ内の場所です。
    • logHomeは、ログ・ファイルの場所です。
    • exposeAdminNodePortは、Kubernetesクラスタの外部の管理サーバーに直接アクセスできるようにするため、'True'に設定する必要があるパラメータです。これは、イングレス・コントローラが使用されているかどうかに関係なく、ドメイン構成後に必要です。
    • productionModeEnabledは、'True'に設定する必要があるパラメータです。
    • exposeAdminT3Channelは、T3がドメインの外部と通信できるようにするため、'True'に設定する必要があるパラメータです。この通信は、ドメインを作成後に構成するために使用されます。
    • datasourceTypeは、作成するデータソースのタイプです。AGL (Active Grid Link)は、最大限の可用性を実現するための推奨オプションです。
    • edgInstallは、インストールをEDGタイプのデプロイメントとして識別します。この値を設定すると、デプロイメント後の作業ではなく、インストールでベスト・プラクティスを実装できます。
    たとえば:
    
    # Copyright (c) 2024, Oracle and/or its affiliates.
    # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
    
    # The version of this inputs file. Do not modify.
    version: create-weblogic-sample-domain-inputs-v1
    
    # Port number for admin server
    adminPort: 7001
    
    # Unique ID identifying a domain.
    # This ID must not contain an underscope ("_"), and must be lowercase and unique across all domains in a Kubernetes cluster
    domainUID: accessdomain
    
    # Number of managed servers to generate for the domain
    configuredManagedServerCount: 5
    
    # Number of managed servers to initially start for the domain
    initialManagedServerReplicas: 1
    
    # Boolean indicating if production mode is enabled for the domain
    productionModeEnabled: true
    
    # Port for the T3Channel of the NetworkAccessPoint
    t3ChannelPort: 30012
    
    # dataSource Type
    # supported values are agl or generic. Use agl for active gridlink type of datasource
    # generic datasource is not applicable for RAC DB.
    datasourceType: agl
    
    # If set to true, generated model will have EDG recommended datasource type i.e. AGL and necessary connection pool parameters.
    edgInstall: true
    
    # Home of the WebLogic domain
    domainHome: /u01/oracle/user_projects/domains/accessdomain
    # OAM Docker image.
    image: iad.ocir.io/<mytenancy>/idm/oam:12.2.1.4-jdk8-ol8-240112
    
    # Name of the Kubernetes secret to pull the images from container registry.
    # The presence of the secret will be validated when this parameter is enabled.
    imagePullSecretName: regcred
    
    # The in-pod location for domain log, server logs, server out, and node manager log files
    logHome: /u01/oracle/user_projects/domains/logs/accessdomain
    
    # Public address for T3Channel of the NetworkAccessPoint. This value should be set to the
    # kubernetes server address, which you can get by running "${KUBERNETES_CLI:-kubectl} cluster-info". If this
    # value is not set to that address, WLST will not be able to connect from outside the
    # kubernetes cluster.
    # t3PublicAddress:
    # Boolean to indicate if the channel should be exposed as a service
    exposeAdminT3Channel: true
    
    # NodePort to expose for the admin server
    adminNodePort: 30701
    
    # Boolean to indicate if the adminNodePort will be exposed
    exposeAdminNodePort: true
    
    # Name of the domain namespace
    namespace: oamns
    
    #Java Option for WebLogic Server #NOT IN EDG
    javaOptions: -Dweblogic.StdoutDebugEnabled=false
    
    # Mount path of the domain persistent volume.
    domainPVMountPath: /u01/oracle/user_projects
    ## Persistent volume type for the persistent storage.
    ## The value must be 'HOST_PATH' or 'NFS'.
    ## If using 'NFS', weblogicDomainStorageNFSServer must be specified.
    weblogicDomainStorageType: NFS
    #
    ## The server name or ip address of the NFS server to use for the persistent storage.
    ## The following line must be uncomment and customized if weblogicDomainStorateType is NFS:
    weblogicDomainStorageNFSServer: nfsserver.example.com
    #
    ## Physical path of the persistent storage.
    ## When weblogicDomainStorageType is set to HOST_PATH, this value should be set the to path to the
    ## domain storage on the Kubernetes host.
    ## When weblogicDomainStorageType is set to NFS, then weblogicDomainStorageNFSServer should be set
    ## to the IP address or name of the DNS server, and this value should be set to the exported path
    ## on that server.
    ## Note that the path where the domain is mounted in the WebLogic containers is not affected by this
    ## setting, that is determined when you create your domain.
    ## The following line must be uncommented and customized:
    weblogicDomainStoragePath: /exports/IAMPVS/oampv
    #
    ## Reclaim policy of the persistent storage
    ## The valid values are: 'Retain', 'Delete', and 'Recycle'
    weblogicDomainStorageReclaimPolicy: Retain
    #
    ## Total storage allocated to the persistent storage.
    weblogicDomainStorageSize: 10Gi
    #
    # Pod Resource Allocation
    #
    oamServerJavaParams: -Xms2048m -Xmx8192m
    # Max CPU Cores pod is allowed to consume.
    oamMaxCPU: 1
    # Initial CPU Units 1000m = 1 CPU core
    oamCPU: 500m
     # Max Memory pod is allowed to consume.
    oamMaxMemory: 8Gi
    # Initial Memory allocated to pod.
    oamMemory: 2Gi
  3. 構成ファイルを保存します。
WDT補助イメージの生成

WebLogicデプロイメント・ツールを使用してドメインを作成すると、デプロイメントを記述する専用イメージが作成されます。これは、「ドメイン構成ファイルの作成」で説明されているドメイン作成ファイルに基づいています。このイメージは、ローカル・コンテナ・レジストリに格納されます。

構成で補助イメージを使用する利点は、プロパティがわずかに異なる複数の環境を作成するために繰り返し使用できることです。たとえば、同じイメージ・ファイルを使用して、データベース接続の詳細のみが異なる開発、テストおよび本番環境を作成できます。同様の環境を作成するたびに新しいイメージを作成する必要はありません。このイメージは、イメージがロードされるレジストリに格納する必要があり、ユーザーはこのレジストリへのアクセス権が必要です。

次の項では、WDTモデル・ファイルを生成し、補助イメージを作成して、それをリポジトリにアップロードする方法について説明します。

WDTモデル・ファイルの生成

次のステップを実行して、ドメイン構成ファイルからWDTモデル・ファイルを生成します:

  1. ディレクトリを、ダウンロードしたサンプルのWDT utilsディレクトリに変更します。
    cd <WORKDIR>/samples/create-access-domain/domain-home-on-pv/wdt-utils/generate_models_utils

    例:

    cd /workdir/OAM//samples/create-access-domain/domain-home-on-pv/wdt-utils/generate_models_utils
  2. generate_wdt_models.shユーティリティを使用してモデル・ファイルを生成します。
    ./generate_wdt_models.sh -i <WORKDIR>/create-domain-wdt.yaml -o <WORKDIR>

    -iを使用して、「ドメイン構成ファイルの作成」で作成したドメイン構成ファイルの場所を指定します。

    -oを使用して、WDTモデル・ファイルおよびテンプレートを作成する場所を指定します。

    例:

    ./generate_wdt_models.sh -i /workdir/OAM/create-domain-wdt.yaml -o /workdir/OAM

    ユーティリティの実行後、生成されたファイルを含むweblogic-domainsというディレクトリが作成されます。

入力パラメータとサンプル出力


export version="create-weblogic-sample-domain-inputs-v1"
export adminPort="7001"
export domainUID="accessdomain"
export configuredManagedServerCount="5"
export initialManagedServerReplicas="1"
export productionModeEnabled="true"
export t3ChannelPort="30012"
export datasourceType="agl"
export edgInstall="true"
export domainHome="/u01/oracle/user_projects/domains/accessdomain"
export image="iad.ocir.io/<mytenancy>/oam:12.2.1.4-jdk8-ol8-240112"
export imagePullSecretName="regcred"
export logHome="/u01/oracle/user_projects/domains/logs/accessdomain"
export exposeAdminT3Channel="true"
export adminNodePort="30701"
export exposeAdminNodePort="true"
export namespace="oamns"
javaOptions=-Dweblogic.StdoutDebugEnabled=false
export domainPVMountPath="/u01/oracle/user_projects"
export weblogicDomainStorageType="NFS"
export weblogicDomainStorageNFSServer="nfsserver.example.com"
export weblogicDomainStoragePath="/exports/IAMPVS/oampv"
export weblogicDomainStorageReclaimPolicy="Retain"
export weblogicDomainStorageSize="10Gi"
export oamServerJavaParams="-Xms2048m -Xmx8192m"
export oamMaxCPU="1"
export oamCPU="500m"
export oamMaxMemory="8Gi"
export oamMemory="2Gi"
validateWlsDomainName called with accessdomain
WDT model file, property file and sample domain.yaml are genereted successfully at /workdir/OAM/weblogic-domains/accessdomain

イメージ・プロパティ・ファイルの作成

モデル・ファイルを作成したら、それらをイメージに追加し、レジストリにアップロードする必要があります(プロパティ・ファイルにターゲット・レジストリを記述することから始めます)。

次のステップを実行して、イメージ・プロパティ・ファイルを作成します:

  1. 次のコマンドを実行して、javaがマシンにインストールされていることを確認します:
    which java
  2. プロパティ・ファイルを作業ディレクトリにコピーします。
    cp <WORKDIR>/samples/create-access-domain/domain-home-on-pv/wdt-utils/build-domain-creation-image/properties/build-domain-creation-image.properties <WORKDIR>

    例:

    cp/workdir/OAM/samples/create-access-domain/domain-home-on-pv/wdt-utils/build-domain-creation-image/properties/build-domain-creation-image.properties /workdir/OAM
  3. ファイルbuild-domain-creation-image.propertiesを編集し、次の値を追加します:

    JAVA_HOMEは、これをステップ1にあるJAVAインストールの場所に設定します。

    たとえば、
    /usr
    .
    • REPOSITORYは、これをイメージ・ファイルが存在するレジストリ内の場所に設定します。

      たとえば、
      iad.ocir.io/<mytenancy>/idm/oam_wdt
      .

      ここで、oam_wdtは、作成するイメージの名前です。

    • アップロードされたイメージにタグを割り当てるために使用されるIMAGE_TAGは、ここでは何でも使用できます。この例では、<OAM_DOMAIN_NAME>を使用できます。

    • レジストリへの認証されていないアップロードを許可しない場合は、IMAGE_PUSH_REQUIRES_AUTHをtrueに設定する必要があります。

    • REG_USERは、イメージをアップロードするレジストリ内のユーザーに設定する必要があります。このユーザーにはアップロード権限が必要です。

    • WDT_MODEL_FILEは、前述のステップで生成されたファイルoam.yamlに設定する必要があります。たとえば、<WORKDIR>/weblogic-domains/<OAM_DOMAIN_NAME>/oam.yamlです。

    • WDT_VARIABLE_FILEは、前述のステップで生成されたファイルoam.propertiesに設定する必要があります。たとえば、<WORKDIR>/weblogic-domains/<OAM_DOMAIN_NAME>/oam.propertiesです。

    • REG_PWDは、前述のユーザーのパスワードに設定し、次に示すように<WORKDIR>にあるbuiidpwdの別のファイルに配置する必要があります:

      REG_PASSWORD="<mypwd>"

      サンプルのbuild-domain-creation-image.properties

      
      # Copyright (c) 2024, Oracle and/or its affiliates.
      # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
      # Input Property file for build-domain-creation-image.sh script
      
      #
      # set the JAVA_HOME environment variable to match the location of your Java installation. Java 8 or newer is required
      #
      JAVA_HOME=/usr
      
      #
      # Image Details
      #
      #Set the IMAGE_TAG, default oam-aux-v1 if not set.
      IMAGE_TAG=accessdomain
      # Set the BASE_IMAGE, default ghcr.io/oracle/oraclelinux:8-slim if not set.
      BASE_IMAGE=ghcr.io/oracle/oraclelinux:8-slim
      
      #
      # Container Registry
      #
      #Image will be created with REPOSITORY:IMAGE_TAG
      REPOSITORY=iad.ocir.io<mytenancy>idm/oam_wdt
      # Container registry username
      REG_USER=<mytenancy>/oracleidentitycloudservice/my.user@example.com
      #Set it to false if authentication is not required for pushing the image to registry, for example docker login already done in the host before invoking the script.
      IMAGE_PUSH_REQUIRES_AUTH=true
      
      #
      # WDT and WIT Variables
      #
      #Full path to wdt model files
      WDT_MODEL_FILE=/workdir/OAM/weblogic-domains/accessdomain/oam.yaml
      #Full path to wdt variable files
      WDT_VARIABLE_FILE=/workdir/OAM/weblogic-domains/accessdomain/oam.properties
      #Full path to wdt archive files
      WDT_ARCHIVE_FILE=""
      #If not set, Latest version will be used.
      WDT_VERSION="3.5.3"
      #If not set, latest will be used during every fresh run
      WIT_VERSION="1.12.1"
      
      #In Most cases, no need to use these parameters. Please refer https://oracle.github.io/weblogic-image-tool/userguide/tools/create-aux-image/ for
      details about them.
      TARGET=""
      CHOWN=""

WDT補助イメージのアップロード

ユーティリティbuild-domain-creation-image.shを使用して、補助イメージを作成およびアップロードします:

例:

cd <WORKDIR>/samples/create-access-domain/domain-home-on-pv/wdt-utils/build-domain-creation-image
./build-domain-creation-image.sh -i <WORKDIR>/build-domain-creation-image.properties -p <WORKDIR>/.buildpwd

例:

cd /workdir/OAM/samples/create-access-domain/domain-home-on-pv/wdt-utils/build-domain-creation-image
./build-domain-creation-image.sh -i /workdir/OAM/build-domain-creation-image.properties -p /workdir/OAM/.buildpwd

サンプル出力から抽出


[INFO ] Build successful. Build time=74s. Image tag=iad.ocir.io/<mytenancy>/idm/oam_wdt:accessdomain
Getting image source signatures
Copying blob sha256:432308aaf1ccdd6c69ff6e6f6d6c762e55e183284ca57d31228bd3578275f9a9
Copying blob sha256:8b4d3bacf0d79476c744efb9d80fc05c5e1298b2ce8c5ed88edc9a4a01198ba9
Copying blob sha256:c5a8db0bbcb50dce5017361d8a2c11f42b221f9e6842d439b562657a6669cc2a
Copying blob sha256:812776fce264cf4a8e82c7d839ba60603e449b47f52582b0a5d68e730fc0b01e
Copying blob sha256:0bcef3ba673ac9fd91ac95ae8c19fa3cb29a9ad107bec305e8772e2cc968ce2a
Copying blob sha256:b782e2701e7e72e55c4cd2e849f9dc9baf602d7eec7eb89ffda3329f9b784f36
Copying blob sha256:1d8523ddf53e8404bc9d4020673d36854e721cd878e209e2649acac359b2555a
Copying blob sha256:cd00e719df55595b05a92e0741a09ad88a07c0c67caa65c78902f3c00214c72f
Copying blob sha256:520d935025c94d503a6d9f31b029f5ee4c2f4b8a8326d94dbf2caa80f8c71151
Copying blob sha256:9a9ca1edb11ff224553c91c7cf5f032f68db7a5f45080b567db3d6e9dee25e4e
Copying blob sha256:1a47311837bde5a83fcb02ba004ed5f015c2c3d73172a7082126417db874bd1b
Copying config sha256:1ae5d3f21cd522491aff21083c6618f954f6a5684b31b958c28d23b7b8c096af
Writing manifest to image destination
Storing signatures
Pushed image iad.ocir.io/<mytenancy>/idm/oam_wdt:accessdomain to image repository
domain.yamlの更新
WDTモデル・ファイルの生成中に、domain.yamlというファイルが<WORKDIR>/weblogic-domains/<OAM_DOMAIN_NAME>ディレクトリに作成されました。このファイルは、WebLogicドメインの作成に使用されます。このファイルを使用する前に、作成した補助イメージをファイルに追加するために次を編集する必要があります
domain.yaml

ファイルで変数%DOMAIN_CREATION_IMAGE%を見つけ、それをbuild-domain-creation-image.propertiesファイルから取得した<REPOSITORY>:<IMAGE_TAG>というイメージの名前に置き換えます。

たとえば、
iad.ocir.io/mytenancy/idm/oam_wdt:accessdomain

ノート:

イメージが存在するレジストリがOAMイメージが格納されているレジストリと異なる場合は、メイン・レジストリとは異なる名前を使用して、補助イメージ・レジストリの資格証明を持つ新しいシークレットを作成します。

たとえば:

kubectl create secret -n oamns docker-registry regcred2 --docker-server=iad.ocir.io/mytenancy2 --docker-username=mytenancy/oracleidentitycloudservice/myemail@email.com --docker-password=<password>

ファイルdomain.yamlを更新し、行を新しいシークレットの名前で置き換えます。

ドメイン作成イメージに別のレジストリを使用している場合は、別のシークレット名を追加します。

イメージをプルするための資格証明を含むシークレットを識別します。

  imagePullSecrets:
  - name: regcred2
WebLogic Operatorを使用したドメインの作成
次のコマンドを使用して、ドメインを作成します:
cd <WORKDIR>/weblogic-domains/<OAM_DOMAIN_NAME>
kubectl create -f <WORKDIR>/weblogic-domains/<OAM_DOMAIN_NAME>/domain.yaml
たとえば:
cd /workdir/OAM/weblogic-domains/accessdomain
kubectl create -f /workdir/OAM/weblogic-domains/accessdomain/domain.yaml

次を使用して、ドメインの作成をモニターします:

kubectl logs -n <OAMNS> <OAM_DOMAIN_DOMAIN>-introspector
kubectl describe domain -n <OAMNS> <OAM_DOMAIN_NAME>

例:

kubectl logs -n oamns accessdomain-introspector
kubectl describe domain -n oamns accessdomain

詳細は、WebLogicオペレータ・ログを参照してください。

例:

kubectl logs -n opns weblogic-operator-688f5dcdc4-qxnnz | grep <OAM_DOMAIN_NAME>

ドメインの作成後、OAM Kubernetesポッドが自動的に起動されます。次のコマンドを使用して表示できます:

kubectl get pods -n <OAMNS>
ドメインの確認

ドメインの作成を確認するには、次のステップを実行します:

  1. ドメインが作成されたことを確認するには、次のコマンドを使用します:
    kubectl describe domain <OAM_DOMAIN_NAME> -n <OAMNS>
    たとえば:
    kubectl describe domain accessdomain -n oamns
  2. 次のコマンドを使用して、ドメイン・ポッドとサービスが作成されたことを確認します:
    kubectl get all,domains -n oamns
    出力は次のようになります:
    NAME                                        TYPE        CLUSTER-IP        EXTERNAL-IP  PORT(S)          AGE     SELECTOR
    service/accessdomain-adminserver            ClusterIP   None              <none>       7001/TCP         22m     weblogic.createdByOperator=true,weblogic.domainUID=accessdomain,weblogic.serverName=AdminServer
    service/accessdomain-adminserver-external   NodePort    10.97.64.5        <none>       7001:30701/TCP   3h46m   weblogic.createdByOperator=true,weblogic.domainUID=accessdomain,weblogic.serverName=AdminServer
    service/accessdomain-cluster-oam-cluster    ClusterIP   10.108.180.115    <none>       14100/TCP        3h21m   weblogic.clusterName=oam_cluster,weblogic.createdByOperator=true,weblogic.domainUID=accessdomain
    service/accessdomain-cluster-policy-cluster ClusterIP   10.99.138.102     <none>       15100/TCP        3h21m   weblogic.clusterName=policy_cluster,weblogic.createdByOperator=true,weblogic.domainUID=accessdomain
    service/accessdomain-oam-policy-mgr1        ClusterIP   None              <none>       15100/TCP        9m48s   weblogic.createdByOperator=true,weblogic.domainUID=accessdomain,weblogic.serverName=oam_policy_mgr1
    service/accessdomain-oam-policy-mgr2        ClusterIP   10.96.151.188     <none>       15100/TCP        9m48s   weblogic.createdByOperator=true,weblogic.domainUID=accessdomain,weblogic.serverName=oam_policy_mgr2
    service/accessdomain-oam-server1            ClusterIP   None              <none>       14100/TCP        9m48s   weblogic.createdByOperator=true,weblogic.domainUID=accessdomain,weblogic.serverName=oam_server1
    service/accessdomain-oam-server2            ClusterIP   None              <none>       14100/TCP        9m48s   weblogic.createdByOperator=true,weblogic.domainUID=accessdomain,weblogic.serverName=oam_server2
    

ノート:

前述のすべてのサービスが表示されるまでには数分かかります。STATUSが0/1のポッドは、すでにポッドは起動しているが、ポッドに関連付けられたOAMサーバーが起動中であることを示します。ポッドの起動中に、次のコマンドを使用して、ポッド・ログの起動ステータスを確認できます:
kubectl logs accessdomain-adminserver -n oamns
kubectl logs accessdomain-oam-policy-mgr1 -n oamns 
kubectl logs accessdomain-oam-server1 -n oamns

Kubernetesサービスの作成

デフォルトでは、OAMドメインは、ClusterIPサービスとして構成されたすべてのコンポーネント(管理サーバーを除く)を使用して作成されます。つまり、Oracle Access Managerコンポーネントは、Kubernetesクラスタ内でのみ認識されます。

エンタープライズ・デプロイメントでは、WebLogicコンポーネントとのすべての対話は、Kubernetesクラスタの外部にあるOracle HTTP Serverを介して行われます。追加サービスを作成して、WebLogicコンポーネントを外部に公開する必要があります。NodePortサービスまたはイングレス・コントローラを使用できます。

NodePortサービスの作成

次に示すOAMの各コンポーネントに対してNodePortサービスを作成する必要があります:

OAM NodePortサービスの作成
OAM NodePortサービスを作成するには:
  1. 次の内容を含む/workdir/OAM/oam_nodeport.yamlというテキスト・ファイルを作成します:
    kind: Service
    apiVersion: v1
    metadata:
      name: <OAM_DOMAIN_NAME>-oam-nodeport
      namespace: <OAMNS>
    spec:
      type: NodePort
      selector:
        weblogic.clusterName: oam_cluster
      ports:
        - targetPort: 14100
          port: 14100
          nodePort: <OAM_OAM_K8>
          protocol: TCP

    ノート:

    namespaceが、使用するネームスペースに設定されていることを確認します。
  2. 次のコマンドを使用して、サービスを作成します:
    kubectl create -f /workdir/OAM/oam_nodeport.yaml
    出力が次のように表示されます。
    service/accessdomain-oam-nodeport created
ポリシー・マネージャNodePortサービスの作成
ポリシー・マネージャNodePortサービスを作成するには:
  1. 次の内容を含む/workdir/OAM/policy_nodeport.yamlというテキスト・ファイルを作成します:
    kind: Service
    apiVersion: v1
    metadata:
      name: <OAM_DOMAIN_NAME>-oam-policy-nodeport
      namespace: <OAMNS>
    spec:
      type: NodePort
      selector:
        weblogic.clusterName: policy_cluster
      ports:
        - targetPort: 15100
          port: 15100
          nodePort: <OAM_POLICY_K8>
          protocol: TCP

    ノート:

    namespaceが、使用するネームスペースに設定されていることを確認します。
  2. 次のコマンドを使用して、サービスを作成します:
    kubectl create -f /workdir/OAM/policy_nodeport.yaml
    出力が次のように表示されます。
    service/accessdomain-oam-policy-nodeport created
OAPレガシーNodePortサービスの作成

OAPプロトコルを使用してOAMと通信するレガシーWebGateを使用している場合は、追加のサービスを作成する必要があります。

OAMレガシーNodePortサービスを作成するには:

  1. 次の内容を含む/workdir/OAM/oap_nodeport.yamlというテキスト・ファイルを作成します:
    kind: Service
    apiVersion: v1
    metadata:
      name: <OAM_DOMAIN_NAME>-oap-nodeport
      namespace: <OAMNS>
    spec:
      type: NodePort
      selector:
        weblogic.clusterName: oam_cluster
      ports:
        - targetPort: 5575
          port: 5575
          nodePort: <OAM_OAP_SERVICE_PORT>
          protocol: TCP
  2. 次のコマンドを使用して、サービスを作成します:
    kubectl create -f /workdir/OAM/oap_nodeport.yaml
    出力が次のように表示されます。
    service/accessdomain-oap-nodeport created
イングレス・サービスの作成

イングレス・サービスを作成するには、最初にイングレス・コントローラを作成する必要があります。インストール手順の詳細は、「イングレス・コントローラのインストールと構成」を参照してください。

イングレス・サービスは製品ネームスペース内に作成されます。これにより、ネームスペース内でリクエストを転送する方法がイングレス・コントローラに指示されます。

ノート:

次の例では、2つのイングレス・サービス(各OAM仮想ホストに1つずつ)を作成します。
  • iadadmin.example.com
  • login.example.com

イングレス・サービスを作成するには:

  1. <WORKDIR>/samples/charts/ingress-per-domainディレクトリから、作業ディレクトリにvalues.yamlファイルをコピーし、ファイルの名前をoverride_ingress.yamlに変更します。
  2. <WORKDIR>/override_ingress.yamlファイルを編集し、値を次のように設定します:
    set domainUID to <OAM_DOMAIN_NAME>
    set adminServerPort to <OAM_ADMIN_PORT>
    set hostName.enabled to true
    set admin to <OAM_ADMIN_LBR_HOST>
    set runtime to <OAM_LOGIN_LBR_HOST>
    たとえば:
    # Load balancer type. Supported values are: NGINX
    type: NGINX
    
    # SSL configuration Type. Supported Values are : NONSSL,SSL
    sslType: NONSSL
    
    # domainType. Supported values are: oam
    domainType: oam
    
    #WLS domain as backend to the load balancer
    wlsDomain:
      domainUID: accessdomain
      adminServerName: AdminServer
      adminServerPort: 7001
      adminServerSSLPort:
      oamClusterName: oam_cluster
      oamManagedServerPort: 14100
      oamManagedServerSSLPort:
      policyClusterName: policy_cluster
      policyManagedServerPort: 15100
      policyManagedServerSSLPort:
    
    # Host specific values
    hostName:
      enabled: true
      admin: iadadmin.example.com
      runtime: login.example.com
  3. 次のコマンドを実行して、イングレス・サービスを作成します:
    cd <WORKDIR>/samples
    helm install oam-nginx charts/ingress-per-domain --namespace <OAMNS> --values <WORKDIR>/override_ingress.yaml
  4. 次のコマンドを使用して、イングレス・サービスが正しく作成されたことを検証します:
    kubectl get ingress -n oamns
OAM ClusterIPサービスの作成

OAP接続用のClusterIPサービスを作成します。

このサービスに対して、次の内容を含むoap_clusterip.yamlファイルを作成します:
kind: Service
apiVersion: v1
metadata:
  name: <OAM_DOMAIN_NAME>-oap
  namespace: <OAMNS>
spec:
  type: ClusterIP
  selector:
    weblogic.clusterName: oam_cluster
  ports:
    - port: 5575
      protocol: TCP

次のコマンドを使用して、サービスを作成します:

kubectl create -f /workdir/OAM/oap_clusterip.yaml
出力が次のように表示されます。
service/accessdomain-oap created
サービスの検証
サービスが正しく作成されたことを検証するには、次のコマンドを使用します:
 kubectl get service -n oamns
このコマンドの出力を次に示します:
NAME                                      TYPE 	   	 CLUSTER-IP 		 EXTERNAL-IP PORT(S)   		 AGE
accessdomain-adminserver 	   	  ClusterIP      None <none>             30012/TCP,7001/TCP    		 4d15h
accessdomain-adminserver-ext 	          NodePort       10.96.127.191 <none>    30012:30012/TCP,7001:30701/TCP  4d15h
accessdomain-cluster-oam-cluster   	  ClusterIP      10.96.43.35 <none>      14100/TCP 			 4d15h
accessdomain-cluster-policy-cluster       ClusterIP      10.96.8.16 <none>       15100/TCP 			 4d15h
accessdomain-oam-nodeport 		  NodePort 	 10.96.104.168 <none>    14100:30410/TCP 		 4d15h
accessdomain-oam-policy-mgr1 	          ClusterIP      None <none> 	     	 15100/TCP 			 4d15h
accessdomain-oam-policy-mgr2 	          ClusterIP      None <none> 	     	 15100/TCP 			 4d15h
accessdomain-oam-policy-mgr3 	          ClusterIP      10.96.36.96 <none>      15100/TCP 			 4d15h
accessdomain-oam-policy-mgr4 	          ClusterIP      10.96.171.61 <none>     15100/TCP 			 4d15h
accessdomain-oam-policy-mgr5 	          ClusterIP      10.96.200.171 <none>    15100/TCP 			 4d15h
accessdomain-oam-server1 		  ClusterIP      None <none> 	      	 14100/TCP 			 4d15h
accessdomain-oam-server2 		  ClusterIP      None <none> 	      	 14100/TCP 			 4d15h
accessdomain-oam-server3 		  ClusterIP      10.96.93.51 <none>      14100/TCP 			 4d15h
accessdomain-oam-server4 	          ClusterIP      10.96.223.123 <none>    14100/TCP 			 4d15h
accessdomain-oam-server5 		  ClusterIP      10.96.143.94 <none>     14100/TCP 			 4d15h
accessdomain-oap 			  ClusterIP      10.96.171.107 <none>    5575/TCP 			 4d15h
accessdomain-policy-nodeport              NodePort       10.96.169.250 <none>    15100:30510/TCP 		 4d15h

ドメインの更新

最初にドメインを作成したときに、一部の情報が欠落する可能性があります。この情報は、単純なcurlスクリプトを使用して追加できます。

このプロシージャを実行すると、次のアクションが実行されます。
  • 内部で解決可能なホスト名を各OAMサーバーに追加します。
  • 各OAMサーバーのOAPポート番号を設定します。
  • ローカル・ホスト名をロード・バランサ・ホスト名に置き換えるOAP設定を変更します。
  • 既存のWebGateエージェントでOracle 12c WebGate HTTP OAM APIのRESTポイントを更新します。
  • ロード・バランサを使用するようにフェデレーション・エントリ・ポイントを更新します。
  • すぐに使用できるWebGateエージェントでレガシーWebGateのOAPセキュリティ・モードを変更します。
  • タイムアウト設定を更新します。
  • すぐに使用できるWebGateの接続の最大数を更新します。
  1. 次の情報を含む/workdir/OAM/modify_oam.xmlというファイルを作成します:
    <Configuration>
    <Setting Name="host" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server1/host"><OAM_DOMAIN_NAME>-oam-server1</Setting>
    <Setting Name="host" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server2/host"><OAM_DOMAIN_NAME>-oam-server2</Setting>
    <Setting Name="host" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server3/host"><OAM_DOMAIN_NAME>-oam-server3</Setting>
    <Setting Name="host" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server4/host"><OAM_DOMAIN_NAME>-oam-server4</Setting>
    <Setting Name="host" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server5/host"><OAM_DOMAIN_NAME>-oam-server5</Setting>
    <Setting Name="Port" Type="xsd:integer" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server1/oamproxy/Port"><OAP_PORT></Setting>
    <Setting Name="Port" Type="xsd:integer" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server2/oamproxy/Port"><OAP_PORT></Setting>
    <Setting Name="Port" Type="xsd:integer" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server3/oamproxy/Port"><OAP_PORT></Setting>
    <Setting Name="Port" Type="xsd:integer" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server4/oamproxy/Port"><OAP_PORT></Setting>
    <Setting Name="Port" Type="xsd:integer" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server5/oamproxy/Port"><OAP_PORT></Setting>
    <Setting Name="serverhost" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/OAMServerProfile/OAMSERVER/serverhost"><OAM_LOGIN_LBR_HOST></Setting>
    <Setting Name="serverport" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/OAMServerProfile/OAMSERVER/serverport"><OAM_LOGIN_LBR_PORT></Setting>
    <Setting Name="serverprotocol" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/OAMServerProfile/OAMSERVER/serverprotocol"><OAM_LOGIN_LBR_PROTOCOL></Setting>
    <Setting Name="serverhost" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/OAMServerProfile/OAMServerBackChannel/serverhost"><OAM_LOGIN_LBR_HOST></Setting>
    <Setting Name="serverport" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/OAMServerProfile/OAMServerBackChannel/serverport"><OAM_LOGIN_LBR_HOST></Setting>
    <Setting Name="serverprotocol" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/OAMServerProfile/OAMServerBackChannel/serverprotocol"><OAM_LOGIN_LBR_PROTOCOL></Setting>
    <Setting Name="OAMRestEndPointHostName" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/UserDefinedParameters/OAMRestEndPointHostName"><OAM_LOGIN_LBR_HOST></Setting>
    <Setting Name="OAMRestEndPointPort" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/UserDefinedParameters/OAMRestEndPointPort"><OAM_LOGIN_LBR_PORT></Setting>
    <Setting Name="providerid" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/STS/fedserverconfig/providerid"><OAM_LOGIN_LBR_PROTOCOL>://<OAM_LOGIN_LBR_HOST>:<OAM_LOGIN_LBR_PORT>/oam/fed</Setting>
    <Setting Name="Value" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server1/CoherenceConfiguration/LocalHost/Value"><OAM_DOMAIN_NAME>-oam-server1</Setting>
    <Setting Name="Value" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server2/CoherenceConfiguration/LocalHost/Value"><OAM_DOMAIN_NAME>-oam-server2</Setting>
    <Setting Name="Value" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server3/CoherenceConfiguration/LocalHost/Value"><OAM_DOMAIN_NAME>-oam-server3</Setting>
    <Setting Name="Value" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server4/CoherenceConfiguration/LocalHost/Value"><OAM_DOMAIN_NAME>-oam-server4</Setting>
    <Setting Name="Value" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server5/CoherenceConfiguration/LocalHost/Value"><OAM_DOMAIN_NAME>-oam-server5</Setting>
    <Setting Name="assertionissuer" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/STS/issuancetemplates/saml11-issuance-template/assertionissuer"><OAM_LOGIN_LBR_HOST></Setting>
    <Setting Name="assertionissuer" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/STS/issuancetemplates/saml20-issuance-template/assertionissuer"><OAM_LOGIN_LBR_HOST></Setting>
    <Setting Name="openid20realm" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/STS/spglobal/openid20realm"><OAM_LOGIN_LBR_PROTOCOL>://<OAM_LOGIN_LBR_HOST>:<OAM_LOGIN_LBR_PORT></Setting>
    <Setting Name="logoutRedirectUrl" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/logoutRedirectUrl"><OAM_LOGIN_LBR_PROTOCOL>://<OAM_LOGIN_LBR_HOST>:<OAM_LOGIN_LBR_PORT>/oam/server/logout</Setting>
    <Setting Name="security" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/security"><OAP_MODE></Setting>
    <Setting Name="security" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/IAMSuiteAgent/security"><OAP_MODE></Setting>
    <Setting Name="logoutRedirectUrl" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/IAMSuiteAgent/UserDefinedParameters/logoutRedirectUrl"><OAM_LOGIN_LBR_PROTOCOL>://<OAM_LOGIN_LBR_HOST>:<OAM_LOGIN_LBR_PORT>/oam/server/logout</Setting>
    <Setting Name="Timeout" Type="htf:timeInterval" Path="/DeployedComponent/Server/NGAMServer/Profile/Sme/SessionConfigurations/Timeout">15 M</Setting>
    
    <Setting Name="PrimaryServerList" Type="htf:list" Path="/DeployedComponent/Agent/WebGate/Instance/IAMSuiteAgent/PrimaryServerList">
    <Setting Name="0" Type="htf:map" Path="/DeployedComponent/Agent/WebGate/Instance/IAMSuiteAgent/PrimaryServerList/0">
    <Setting Name="host" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList/0/host"><OAM_OAP_HOST></Setting>
    <Setting Name="port" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList/0/port"><OAP_SERVICE_PORT></Setting>
    <Setting Name="numOfConnections" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList/0/numOfConnections"><WG_CONNECTIONS></Setting>
    </Setting>
    </Setting>
    
    <Setting Name="PrimaryServerList" Type="htf:list" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList">
    <Setting Name="0" Type="htf:map" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList/0">
    <Setting Name="port" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList/0/port"><OAP_SERVICE_PORT></Setting>
    <Setting Name="numOfConnections" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList/0/numOfConnections"><WG_CONNECTIONS></Setting>
    <Setting Name="host" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList/0/host"><OAM_OAP_HOST></Setting>
    </Setting>
    </Setting>
    </Configuration>

    ノート:

    • ドメイン内のoam_serverごとにNGAMServer/Instance/<servername>/hostのエントリが1つ必要です。
    • ドメイン内のoam_serverごとにNGAMServer/Instance/<servername>/portのエントリが1つ必要です。
    • ドメイン内のoam_serverごとにNGAMServer/Instance/<servername>/CoherenceConfigurationのエントリが1つ必要です。
    たとえば:
    <Configuration>
    <Setting Name="host" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server1/host">accessdomain-oam-server1</Setting>
    <Setting Name="host" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server2/host">accessdomain-oam-server2</Setting>
    <Setting Name="host" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server3/host">accessdomain-oam-server3</Setting>
    <Setting Name="host" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server4/host">accessdomain-oam-server4</Setting>
    <Setting Name="host" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server5/host">accessdomain-oam-server5</Setting>
    <Setting Name="Port" Type="xsd:integer" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server1/oamproxy/Port">5575</Setting>
    <Setting Name="Port" Type="xsd:integer" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server2/oamproxy/Port">5575</Setting>
    <Setting Name="Port" Type="xsd:integer" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server3/oamproxy/Port">5575</Setting>
    <Setting Name="Port" Type="xsd:integer" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server4/oamproxy/Port">5575</Setting>
    <Setting Name="Port" Type="xsd:integer" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server5/oamproxy/Port">5575</Setting>
    <Setting Name="serverhost" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/OAMServerProfile/OAMSERVER/serverhost">login.example.com</Setting>
    <Setting Name="serverport" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/OAMServerProfile/OAMSERVER/serverport"></Setting>
    <Setting Name="serverprotocol" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/OAMServerProfile/OAMSERVER/serverprotocol">https</Setting>
    <Setting Name="serverhost" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/OAMServerProfile/OAMServerBackChannel/serverhost">login.example.com</Setting>
    <Setting Name="serverport" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/OAMServerProfile/OAMServerBackChannel/serverport"></Setting>
    <Setting Name="serverprotocol" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/OAMServerProfile/OAMServerBackChannel/serverprotocol">https</Setting>
    <Setting Name="OAMRestEndPointHostName" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/UserDefinedParameters/OAMRestEndPointHostName">login.example.com</Setting>
    <Setting Name="OAMRestEndPointPort" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/UserDefinedParameters/OAMRestEndPointPort"></Setting>
    <Setting Name="providerid" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/STS/fedserverconfig/providerid">https://login.example.com:443/oam/fed</Setting>
    <Setting Name="Value" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server1/CoherenceConfiguration/LocalHost/Value">accessdomain-oam-server1</Setting>
    <Setting Name="Value" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server2/CoherenceConfiguration/LocalHost/Value">accessdomain-oam-server2</Setting>
    <Setting Name="Value" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server3/CoherenceConfiguration/LocalHost/Value">accessdomain-oam-server3</Setting>
    <Setting Name="Value" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server4/CoherenceConfiguration/LocalHost/Value">accessdomain-oam-server4</Setting>
    <Setting Name="Value" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Instance/oam_server5/CoherenceConfiguration/LocalHost/Value">accessdomain-oam-server5</Setting>
    <Setting Name="assertionissuer" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/STS/issuancetemplates/saml11-issuance-template/assertionissuer">login.example.com</Setting>
    <Setting Name="assertionissuer" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/STS/issuancetemplates/saml20-issuance-template/assertionissuer">login.example.com</Setting>
    <Setting Name="openid20realm" Type="xsd:string" Path="/DeployedComponent/Server/NGAMServer/Profile/STS/spglobal/openid20realm">https://login.example.com:443</Setting>
    <Setting Name="logoutRedirectUrl" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/logoutRedirectUrl">https://login.example.com:443/oam/server/logout</Setting>
    <Setting Name="security" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/security">open</Setting>
    <Setting Name="security" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/IAMSuiteAgent/security">open</Setting>
    <Setting Name="logoutRedirectUrl" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/IAMSuiteAgent/UserDefinedParameters/logoutRedirectUrl">https://login.example.com:/oam/server/logout</Setting>
    <Setting Name="Timeout" Type="htf:timeInterval" Path="/DeployedComponent/Server/NGAMServer/Profile/Sme/SessionConfigurations/Timeout">15 M</Setting>
    
    <Setting Name="PrimaryServerList" Type="htf:list" Path="/DeployedComponent/Agent/WebGate/Instance/IAMSuiteAgent/PrimaryServerList">
    <Setting Name="0" Type="htf:map" Path="/DeployedComponent/Agent/WebGate/Instance/IAMSuiteAgent/PrimaryServerList/0">
    <Setting Name="host" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList/0/host">oam.example.com</Setting>
    <Setting Name="port" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList/0/port">30540</Setting>
    <Setting Name="numOfConnections" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList/0/numOfConnections">20</Setting>
    </Setting>
    </Setting>
    
    <Setting Name="PrimaryServerList" Type="htf:list" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList">
    <Setting Name="0" Type="htf:map" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList/0">
    <Setting Name="port" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList/0/port">30540</Setting>
    <Setting Name="numOfConnections" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList/0/numOfConnections">20</Setting>
    <Setting Name="host" Type="xsd:string" Path="/DeployedComponent/Agent/WebGate/Instance/accessgate-oic/PrimaryServerList/0/host">oam.example.com</Setting>
    </Setting>
    </Setting>
    </Configuration>
  2. ファイルを保存します。
  3. curlを使用して構成変更を適用します。たとえば:
    curl -x '' -X PUT http://<K8_WORKER_NODE1>:<OAM_ADMIN_K8>/iam/admin/config/api/v1/config -ikL -H 'Content-Type: application/xml' --user <OAM_WEBLOGIC_USER>:<OAM_WEBLOGIC_PWD> -H 'cache-control: no-cache' -d @/workdir/OAM/modify_oam.xml
    たとえば:
    curl -x '' -X PUT http://k8worker1.example.com:30701/iam/admin/config/api/v1/config -ikL -H 'Content-Type: application/xml' --user weblogic:<password> -H 'cache-control: no-cache' -d @/workdir/OAM/modify_oam.xml

Oracle Access Managementドメイン用の構成後タスクの実行

OAMドメインの構成後タスクには、サーバー・オーバーライド・ファイルの作成およびデータ・ソースの更新が含まれます。

特定のワーカー・ノードへのポッドの制限

OAMサーバーを特定のワーカー・サーバーのセットでのみ起動するようにするには、次のステップを実行します:

Kubernetesワーカー・ノードのラベル付け

スケジューリングに含めるワーカー・ノードにラベルを付けます。これは必要に応じて詳細に設定できます。たとえば、OAMプロセスをノードのセットで実行するようにスケジュールする場合は、そのセットにoamserversなどのラベルを付けます。管理サーバーが特定のワーカー・ノードのセットで実行され、oam_serverが別のセットで実行されるように指定する場合は、oamadminoamserversという2つのラベルを作成します。

次のコマンドを使用して、Kubernetesノードにラベルを追加します:
kubectl label node worker1 name=oamservers
ラベルへのプロセスの制限
OAMポッドが適切なラベルのワーカー・ノードでのみ実行されるようにするには、次のパスにあるdomain.yamlファイルを編集します:
<WORKDIR>/samples/create-access-domain/domain-home-on-pv/output/weblogic-domains/<OAM_DOMAIN_NAME>/
たとえば:
/workdir/OAM/samples/create-access-domain/domain-home-on-pv/output/weblogic-domains/accessdomain/

クラスタに構成されているすべての管理対象サーバーについて「管理対象サーバー」セクションを変更し、ラベル付けされたワーカー・ノードのみがスケジューリングに使用されるようにします。

oam_server1およびoam_server2の場合、エントリは次のようになります:
   managedServers:
   - serverName: oam_server1
     serverPod:
       nodeSelector:
         name: oamservers
   - serverName: oam_server2
     serverPod:
       nodeSelector:
         names: oamservers

サーバー・オーバーライド・ファイルの作成

serverOverridesファイルは、コンテナの起動時に特定のJava値を設定するために使用されます。パラメータがsetDomainEnv.shファイルの構成に追加されます。ただし、setDomainEnv.shファイルとは異なり、serverOverridesファイルはアップグレード中に上書きされません。

Derbyデータベースの無効化
組込みDerbyデータベースを無効化します。このデータベースは、ファイルベースのデータベースであり、Oracle WebLogic Serverにパッケージ化されています。Derbyデータベースは、主に開発環境で使用します。そのため、本番対応のエンタープライズ・デプロイメント環境を構成する場合は無効にする必要があります。そうしないと、管理対象サーバーを起動したときにDerbyデータベース・プロセスが自動的に起動されます。
Derbyデータベースを無効にするには:
  1. 次の内容を含む/workdir/OAM/setUserOverrides.shというファイルを作成します:
    DERBY_FLAG=false
  2. ファイルを保存して閉じます。
管理対象サーバーでのIPv4ネットワーキングの使用の有効化

管理対象サーバーがIPv6ネットワーキングを使用するように構成されている場合、管理対象サーバーの起動時に問題が発生する可能性があります。このため、管理対象サーバーでIPv4ネットワーキングの使用を有効化する必要があります。

  1. setUserOverrides.shファイルを編集し、次の行を追加します:
    JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.net.preferIPv4Stack=true"
  2. ファイルを保存して閉じます。
IAMAccessDomainでのメモリー・パラメータの設定

メモリー使用量を定義するIAMAccessDomainの初期起動パラメータは十分ではありません。このパラメータの値を増やす必要があります。

メモリー割当て設定を変更するには:

  1. setUserOverrides.shファイルの次のメモリー割当てを変更します。Java最大メモリー割当てプール(Xmx)を8192mに、初期メモリー割当てプール(Xms)を8192mに更新します。たとえば、次の行を追加します:
    MEM_ARGS="-Xms8192m -Xmx8192m"

    ノート:

    大規模システムでは、これらの値を次のようにします:
    MEM_ARGS="-Xms8192m -Xmx8192m"
  2. ファイルを保存して閉じます。
Kubernetesコンテナへのサーバー・オーバーライドのコピー

Kubernetes環境では、コンテナ内にエディタはありません。この問題を回避するには、マスター・ノードでファイルを作成し、次のコマンドを使用してKubernetesコンテナにコピーします:

chmod 755 /workdir/OAM/setUserOverrides.sh
kubectl cp <WORKDIR>/setUserOverrides.sh <OAMNS>/<OAM_DOMAIN_NAME>-adminserver:/u01/oracle/user_projects/domains/<OAM_DOMAIN_NAME>/bin/setUserOverrides.sh
たとえば:
kubectl cp /workdir/OAM/setUserOverrides.sh oamns/accessdomain-adminserver:/u01/oracle/user_projects/domains/accessdomain/bin/setUserOverrides.sh

ドメインの再起動

変更を有効にするには、ドメインを再起動します。

ドメインを再起動するには、次のコマンドを使用します:
kubectl -n <OAMNS> patch domains <OAM_DOMAIN_NAME> --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "Never" }]'
ネームスペース内のすべてのKubernetesポッド(ヘルパー・ポッドを除く)が停止した後、次のコマンドを使用してドメインを再起動できます:
kubectl -n <OAMNS> patch domains <OAM_DOMAIN_NAME> --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "IfNeeded" }]'

ノート:

次のコマンドを使用して、ネームスペース内のすべてのKubernetesポッド(ヘルパー・ポッドを除く)が停止したことを確認します:

kubectl -n <OAMNS> get all

管理サーバーまたは管理対象サーバーのエントリがない場合、ネームスペース内のすべてのKubernetesポッド(ヘルパー・ポッドを除く)は停止します。

たとえば:
kubectl -n oamns patch domains accessdomain --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "Never" }]'
kubectl -n oamns patch domains accessdomain --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "IfNeeded" }]'

管理サーバーの検証

構成ステップを実行する前に、管理サーバーにインストールおよび構成されているOracle WebLogic Server管理コンソールおよびOracle Enterprise Manager Fusion Middleware Controlにアクセスできることを確認し、管理サーバーが正常に起動したことを確認します。

ノート:

検証が機能するには、Kubernetesワーカー・ノードと通信できるブラウザが必要です。
Fusion Middleware Controlに移動するには、次のURLを入力し、Oracle WebLogic Server管理者の資格証明を使用してログインします。
http://k8worker1.example.com:30701/em
Oracle WebLogic Server管理コンソールに移動するには、次のURLを入力し、同じ管理者資格証明を使用してログインします。
http://k8worker1.example.com:30701/console

WebLogic Server 12cのデフォルトCoherenceクラスタからのOAMサーバーの削除

WebLogic Server管理コンソールを使用して、デフォルトのWebLogic Server 12c CoherenceクラスタからすべてのOracle Access Management (OAM)クラスタ(ポリシー・マネージャおよびOAMランタイム・サーバーを含む)を除外します。

リリース12.2.1.3.0以降、OAMサーバー側セッション管理では、データベースを使用するため、Coherenceクラスタを確立する必要はありません。一部の環境では、WebLogicによって初期化されたデフォルトのCoherenceクラスタが原因で警告やエラーが発生します。これらのエラーを回避または修正するために、次のステップに従ってデフォルトのWebLogic Server CoherenceクラスタからすべてのOAMクラスタを削除します。
  1. 次のURLを使用して、WebLogic Server管理コンソールにログインします。
    http://k8worker1.example.com:30701/console
  2. コンソールの左ペインで、「環境」を展開して「Coherenceクラスタ」を選択します。
    Coherenceクラスタの概要ページでは、このドメインで作成されたCoherenceクラスタ構成が表示されます。
  3. 「defaultCoherenceCluster」をクリックし、「メンバー」タブを選択します。
  4. 「ロックして編集」をクリックします。
  5. 「サーバー」および「クラスタ」で、すべてのOAMクラスタ(ポリシー・マネージャおよびOAMランタイム・サーバーを含む)を選択解除します。
  6. 「保存」をクリックします。
  7. 「変更のアクティブ化」をクリックします。

WebLogic Serverのチューニング

最小スレッド制約を追加し、最大スレッド制約と容量制約を削除することで、最適なパフォーマンスを実現するようにWebLogic Serverをチューニングします。

ワーカー・マネージャOAPOverRestWMへの最小スレッド制約の追加

  1. WebLogic Serverコンソール(http://k8worker1.example.com:30701/console)にログインします。
  2. 「ロックして編集」をクリックします。
  3. 「ドメイン構造」で、「デプロイメント」をクリックします。
  4. 「デプロイメント」ページで、oam_serverが表示されるまで「次」をクリックします。
  5. 「+」アイコンをクリックしてoam_serverを展開し、「/iam/access/binding」をクリックします。
  6. 「構成」タブ、「ワークロード」タブの順にクリックします。
  7. wm/OAPOverRestWMをクリックします。
  8. 「アプリケーション・スコープのワーク・マネージャ・コンポーネント」で、「新規」をクリックします。
  9. 「新規ワーク・マネージャ・コンポーネントの作成」で、「最小スレッド数制約」を選択し、「次」をクリックします。
  10. 「最小スレッド数制約のプロパティ」で、「数」400と入力し、「終了」をクリックします。
  11. 「デプロイメント・プランの保存」で、「パス」/u01/oracle/user_projects/domains/accessdomain/Plan.xmlに変更します。
  12. 「OK」をクリックし、「変更のアクティブ化」をクリックします。

最大スレッド制約と容量制約の削除

  1. WebLogic Serverコンソール(http://k8worker1.example.com:30701/console)にログインします。
  2. 「ロックして編集」をクリックします。
  3. 「ドメイン構造」で、「デプロイメント」をクリックします。
  4. 「デプロイメント」ページで、oam_serverが表示されるまで「次」をクリックします。
  5. 「+」アイコンをクリックしてoam_serverを展開し、「/iam/access/binding」をクリックします。
  6. 「構成」タブ、「ワークロード」タブの順にクリックします。
  7. wm/OAPOverRestWMをクリックします。
  8. 「アプリケーション・スコープのワーク・マネージャ・コンポーネント」で、「容量」および最大スレッド数を選択し、「削除」をクリックします。
  9. 「ワーク・マネージャ・コンポーネントの削除」画面で、「OK」をクリックして削除します。
  10. 「構成の解放」をクリックします。

仮想化の有効化

Fusion Middleware Controlを使用して仮想化を有効にできます。

仮想化を有効にするには:
  1. URLを使用して、Oracle Fusion Middlewareコンソールにログインします:
    http://k8worker1.example.com:30701/em
  2. 「WebLogicドメイン」→「セキュリティ」→「セキュリティ・プロバイダ構成」に移動します。
  3. 「セキュリティ・ストア・プロバイダ」を開きます。
  4. 「アイデンティティ・ストア・プロバイダ」を開きます。
  5. 「構成」をクリックします。
  6. カスタム・プロパティを追加します。
  7. virtualizeプロパティを値trueで選択し、「OK」をクリックします。
  8. もう一度「OK」をクリックすると、変更が確定します。
仮想化プロパティの詳細は、Oracle Platform Security Servicesによるアプリケーションの保護OPSSシステムおよび構成プロパティに関する項を参照してください。

ドメインの再起動

変更を有効にするには、ドメインを再起動します。

ドメインを再起動するには、次のコマンドを使用します:
kubectl -n <OAMNS> patch domains <OAM_DOMAIN_NAME> --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "Never" }]'
ネームスペース内のすべてのKubernetesポッド(ヘルパー・ポッドを除く)が停止した後、次のコマンドを使用してドメインを再起動できます:
kubectl -n <OAMNS> patch domains <OAM_DOMAIN_NAME> --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "IfNeeded" }]'

ノート:

次のコマンドを使用して、ネームスペース内のすべてのKubernetesポッド(ヘルパー・ポッドを除く)が停止したことを確認します:

kubectl -n <OAMNS> get all

管理サーバーまたは管理対象サーバーのエントリがない場合、ネームスペース内のすべてのKubernetesポッド(ヘルパー・ポッドを除く)は停止します。

たとえば:
kubectl -n oamns patch domains accessdomain --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "Never" }]'
kubectl -n oamns patch domains accessdomain --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "IfNeeded" }]'

LDAPを使用した構成および統合

OAMを構成してLDAPと統合するには、最初にグローバル・パスフレーズを設定する必要があります。次に、LDAPディレクトリを使用するようにOAMを構成します。さらに、Webgate_IDMエージェントが存在しない場合は作成し、最後に管理サーバーに格納されているMBeanにアクセスするための管理権限をLDAPユーザーに割り当てます。

グローバル・パスフレーズの取得

デフォルトでは、Oracle Access Managerはオープン・セキュリティ・モデルを使用するように構成されています。idmConfigToolを使用してこのモードを変更する場合は、グローバル・パスフレーズを知っている必要があります。デフォルトでは、Oracleによってグローバル・パスフレーズが作成されます。この値は、必要に応じてオーバーライドできます。

ノート:

OAP over RESTコールを使用して最新の12c WebGate機能を使用している場合は、RESTコールでOAP転送モードが使用されないため、セキュリティ・モードを変更することは重要ではありません。
デフォルト・グローバル・パスフレーズの取得

WebGateエージェントの作成中に、グローバル・パスフレーズが必要になります。グローバル・パスフレーズを取得するには:

  1. コマンドを使用して、管理サーバー・コンテナでbashシェルを起動します:
    kubectl exec -n <OAMNS> -ti <OAM_DOMAIN_NAME>-adminserver -- /bin/bash
    たとえば:
    kubectl exec -n oamns -ti accessdomain-adminserver -- /bin/bash
  2. 次のコマンドを使用して、WLSTを起動します:
    /u01/oracle/oracle_common/common/bin/wlst.sh
  3. コマンドを使用して、ドメインに接続します:
    connect('<OAM_WEBLOGIC_USER>','<OAM_WEBLOGIC_PWD>','t3://<OAM_DOMAIN_NAME>-domain-adminserver.<OAMNS>.svc.cluster.local:<OAM_EXT_T3_PORT>')

    たとえば:

    connect('weblogic','<password>','t3://accessdomain-adminserver.oamns.svc.cluster.local:30012')
    
  4. 次のWLSTコマンドを発行します:
    displaySimpleModeGlobalPassphrase()
システム生成のパスフレーズが表示されます。

LDAPディレクトリを使用するためのAccess Managerの構成

初期インストールを完了してセキュリティ・モデルを設定したら、Oracle Access ManagerをLDAPディレクトリに関連付ける必要があります。Oracle Unified Directory (OUD)をLDAPディレクトリとして使用できます。

Access ManagerとLDAPディレクトリを関連付けるには、次のタスクを実行します:

構成ファイルの作成

LDAPを使用するようにOracle Access Managementを構成するには、idmConfigToolユーティリティを実行する必要があります。このため、oam.propsと呼ばれる構成ファイルを作成して、構成で使用する必要があります。このファイルの内容は次のとおりです:

#IDSTORE PROPERTIES
  
IDSTORE_HOST: <LDAP_HOSTNAME>
IDSTORE_PORT: <LDAP_PORT>
IDSTORE_BINDDN:<LDAP_ADMIN_USER>
IDSTORE_SEARCHBASE: <LDAP_SEARCHBASE>
IDSTORE_GROUPSEARCHBASE: <LDAP_GROUP_SEARCHBASE>
IDSTORE_USERNAMEATTRIBUTE: cn
IDSTORE_LOGINATTRIBUTE: uid
IDSTORE_USERSEARCHBASE: <LDAP_USER_SEARCHBASE>
IDSTORE_SYSTEMIDBASE: <LDAP_SYSTEMIDS>
IDSTORE_NEW_SETUP: true
IDSTORE_DIRECTORYTYPE: <LDAP_TYPE>
IDSTORE_WLSADMINUSER: <LDAP_WLSADMIN_USER>
IDSTORE_WLSADMINGROUP: <LDAP_WLSADMIN_GRP>
IDSTORE_OAMADMINUSER: <LDAP_OAMADMIN_USER>
IDSTORE_OAMSOFTWAREUSER: <LDAP_OAMLDAP_USER>
# OAM Properties
OAM11G_SERVER_LOGIN_ATTRIBUTE: uid
OAM11G_IDSTORE_NAME: OAMIDSTORE
OAM11G_IDSTORE_ROLE_SECURITY_ADMIN: <LDAP_OAMADMIN_GRP>
PRIMARY_OAM_SERVERS: <OAM_DOMAIN_NAME>-oap.<OAMNS>.svc.cluster.local:<OAM_OAP_PORT>
WEBGATE_TYPE: ohsWebgate12c
ACCESS_GATE_ID: Webgate_IDM
OAM11G_OIM_WEBGATE_PASSWD: <LDAP_USER_PWD>
COOKIE_DOMAIN: <OAM_COOKIE_DOMAIN>
COOKIE_EXPIRY_INTERVAL: 120
OAM11G_WG_DENY_ON_NOT_PROTECTED: true
OAM11G_IDM_DOMAIN_OHS_HOST: <OAM_LOGIN_LBR_HOST>
OAM11G_IDM_DOMAIN_OHS_PORT: <OAM_LOGIN_LBR_PORT>
OAM11G_IDM_DOMAIN_OHS_PROTOCOL: <OAM_LOGIN_LBR_PROTOCOL>
OAM11G_SERVER_LBR_HOST: <OAM_LOGIN_LBR_HOST>
OAM11G_SERVER_LBR_PORT: <OAM_LOGIN_LBR_PORT>
OAM11G_SERVER_LBR_PROTOCOL: <OAM_LOGIN_LBR_PROTOCOL>
OAM11G_OAM_SERVER_TRANSFER_MODE: open
OAM_TRANSFER_MODE: open
OAM11G_SSO_ONLY_FLAG: false
OAM11G_IMPERSONATION_FLAG: false
OAM11G_IDM_DOMAIN_LOGOUT_URLS: /console/jsp/common/logout.jsp,/em/targetauth/emaslogout.jsp
OAM11G_OIM_INTEGRATION_REQ: <OAM_OIG_INTEG>
OAM11G_OIM_OHS_URL: <OIG_LBR_PROTOCOL>://<OIG_LBR_HOST>:<OIG_LBR_PORT>/
# WebLogic Properties
WLSHOST:<OAM_DOMAIN_NAME>-adminserver.<OAMNS>.svc.cluster.local
WLSPORT: 7001
WLSADMIN: <OAM_WEBLOGIC_USER>
たとえば:
#IDSTORE PROPERTIES
IDSTORE_HOST: edg-oud-ds-rs-lbr-ldap.oudns.svc.cluster.local
IDSTORE_PORT: 1389
IDSTORE_BINDDN: cn=oudadmin
IDSTORE_SEARCHBASE: dc=example,dc=com
IDSTORE_GROUPSEARCHBASE: cn=Groups,dc=example,dc=com
IDSTORE_USERNAMEATTRIBUTE: cn
IDSTORE_LOGINATTRIBUTE: uid
IDSTORE_USERSEARCHBASE: cn=Users,dc=example,dc=com
IDSTORE_SYSTEMIDBASE: cn=systemids,dc=example,dc=com
IDSTORE_NEW_SETUP: true
IDSTORE_DIRECTORYTYPE: OUD
IDSTORE_WLSADMINUSER: weblogic_iam
IDSTORE_WLSADMINGROUP: WLSAdministrators
IDSTORE_OAMADMINUSER: oamadmin
IDSTORE_OAMSOFTWAREUSER: oamLDAP
# OAM Properties
OAM11G_SERVER_LOGIN_ATTRIBUTE: uid
OAM11G_IDSTORE_NAME: OAMIDSTORE
OAM11G_IDSTORE_ROLE_SECURITY_ADMIN: OAMAdministrators
PRIMARY_OAM_SERVERS: accessdomain-oap.oamns.svc.cluster.local:5575
WEBGATE_TYPE: ohsWebgate12c
ACCESS_GATE_ID: Webgate_IDM
OAM11G_OIM_WEBGATE_PASSWD: Password
COOKIE_DOMAIN: .example.com
COOKIE_EXPIRY_INTERVAL: 120
OAM11G_WG_DENY_ON_NOT_PROTECTED: true
OAM11G_IDM_DOMAIN_OHS_HOST: login.example.com
OAM11G_IDM_DOMAIN_OHS_PORT: 443
OAM11G_IDM_DOMAIN_OHS_PROTOCOL: https
OAM11G_SERVER_LBR_HOST: login.example.com
OAM11G_SERVER_LBR_PORT: 443
OAM11G_SERVER_LBR_PROTOCOL: https
OAM11G_OAM_SERVER_TRANSFER_MODE: open
OAM_TRANSFER_MODE: open
OAM11G_SSO_ONLY_FLAG: false
OAM11G_IMPERSONATION_FLAG: false
OAM11G_IDM_DOMAIN_LOGOUT_URLS: /console/jsp/common/logout.jsp,/em/targetauth/emaslogout.jsp
OAM11G_OIM_INTEGRATION_REQ: false 
OAM11G_OIM_OHS_URL: https://prov.example.com:443/
# WebLogic Properties
WLSHOST:accessdomain-adminserver.oamns.svc.cluster.local
WLSPORT: 7001
WLSADMIN: weblogic

ノート:

WebLogic Kubernetesコンテナでviなどのコマンドを使用することはできません。そのため、このファイルはコンテナの外部で作成してから、コンテナにコピーする必要があります。

この例では、ファイルは/u01/oracle/user_projects/workdirディレクトリにコピーされます。このディレクトリがコンテナ内に存在しない場合は、最初にそれを作成する必要があります。
kubectl exec -n <OAMNS>-ti accessdomain-adminserver mkdir <K8_WORKDIR>
たとえば:
kubectl exec -n oamns -ti accessdomain-adminserver mkdir /u01/oracle/user_projects/workdir

ディレクトリを作成したら、そのディレクトリにファイルをコピーします。

kubectl cp /workdir/OAM/oam.props oamns/accessdomain-adminserver:/u01/oracle/user_projects/workdir
idmConfigToolを使用したOracle Access ManagerとLDAPの統合

ノート:

idmconfigToolを実行する前に、oam_server1およびoam_server2管理対象サーバーが停止されていることを確認します。

OAMサーバーを停止するには、次のコマンドを使用します:
cd /workdir/OPER/samples/domain-lifecycle
./stopCluster.sh -c oam_cluster -d accessdomain -n oamns -v

Oracle Access ManagerをLDAPディレクトリに統合するには:

  1. AdminServerコンテナに接続して、シェルを起動します:
    kubectl exec -n oamns -ti accessdomain-adminserver -- /bin/bash
  2. 環境変数MW_HOMEJAVA_HOME,およびORACLE_HOMEを設定します。
    export CLASSPATH=$CLASSPATH:/u01/oracle/wlserver/server/lib/weblogic.jar
    export ORACLE_HOME=/u01/oracle/idm
    export MW_HOME=/u01/oracle
  3. idmConfigToolユーティリティを実行して統合を実施します。

    Linuxの場合、このコマンドの構文は次のとおりです。

    cd $ORACLE_HOME/idmtools/bin
    ./idmConfigTool.sh -configOAM input_file=configfile 
    

    たとえば:

    ./idmConfigTool.sh -configOAM input_file=/u01/oracle/user_projects/workdir/oam.props
    

    このコマンドを実行すると、アイデンティティ・ストアへの接続に使用しているアカウントのパスワードを入力するように要求されます。また、次のアカウントに割り当てるパスワードも指定するよう求められます。

    • IDSTORE_PWD_OAMSOFTWAREUSER
    • IDSTORE_PWD_OAMADMINUSER
    • OAM11G_WLS_ADMIN_PASSWD
  4. ログ・ファイルを確認して、エラーや警告を修正します。このツールを実行したディレクトリにautomation.logというファイルが作成されます。
  5. 次のコマンドを使用して、ドメインを再起動します:
    kubectl -n oamns patch domains accessdomain --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "NEVER" }]'

    すべてのプロセスが停止するのを待機してから、次のコマンドを使用します:

    kubectl -n oamns patch domains accessdomain --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "IF_NEEDED" }]'
  6. oam_server1が再起動したかどうかを確認します。そうでない場合は、次のコマンドを使用します:
    cd /workdir/OPER/weblogic-kubernetes-operator/kubernetes/samples/scripts/domain-lifecycle
    ./startCluster.sh -c oam_cluster -d accessdomain -n oamns

ノート:

idmConfigToolを実行した後は、後続のタスクで必要になるファイルがいくつか作成されます。これらのファイルは安全な場所に格納してください。

ディレクトリ/u01/oracle/user_projects/domains/accessdomain/output/Webgate_IDMには次のファイルがあります。

これらのファイルは、WebGateソフトウェアをインストールするときに必要になります。

  • cwallet.sso
  • ObAccessClient.xml
  • password.xml
  • aaa_cert.pem
  • aaa_key.pem
OAM LDAP統合の検証

OAM LDAP統合が正しく完了したことを検証するには:

  1. 次のURLを使用して、OAMコンソールにアクセスします:
    http://iadadmin.example.com/oamconsole
    
    または、Oracle HTTP Serverをまだ構成していない場合、次を使用します:
    http://k8worker.example.com:30701/oamconsole
  2. IDストアを準備した場合は、作成したAccess Manager管理ユーザーとしてログインします。たとえばoamadmin
  3. 「アプリケーション・セキュリティ」画面から「エージェント」をクリックします。
  4. 「SSOエージェントの検索」画面が表示された後、「検索」をクリックします。
  5. Webゲート・エージェントWebgate_IDMが表示されます。

    ノート:

    Webgate_IDMエージェントが存在しないことが判明した場合は、手動で作成できます。「Webgate_IDMエージェントの作成」を参照してください。
  6. WebLogic管理サーバー・コンソールにデフォルト管理ユーザーとしてログインします。たとえば、weblogic
  7. 左のナビゲーション・ペインにある「セキュリティ・レルム」をクリックします。
  8. 「セキュリティ・レルム」ページの「サマリー」で、「レルム」表の下の「myrealm」をクリックします。
  9. myrealm「設定」ページで、「ユーザーとグループ」タブに移動します。

    ノート:

    ユーザーとグループのリストは、ドメインを再起動した後にのみ表示されます。
  10. 「ユーザー」タブに移動して、ディレクトリ・コネクタからLDAPユーザーが表示されていることを確認します。たとえば: OUDAuthenticator
  11. 「グループ」タブに移動して、ディレクトリ・コネクタからLDAPグループが表示されていることを確認します。たとえば: OUDAuthenticator

Webgate_IDMエージェントの作成

idmConfigToolでWebgate_IDMエージェントを作成していないことが判明した場合は、作成できます。

Webgate_IDMエージェントを作成するには:

  1. 次の内容を含むWebgate_IDM.xmlというファイルを作成します:
    <?xml version="1.0" encoding="UTF-8"?>
    
    <!--
     Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
    
       NAME: OAM11GRequest_short.xml - Template for OAM 11G Agent Registration Request file
             (Shorter version - Only mandatory values - Default values will be used for all other fields)
       DESCRIPTION: Modify with specific values and pass file as input to the tool.
    
    -->
    <OAM11GRegRequest>
    
        <serverAddress>http://<OAM_DOMAIN_NAME>-adminserver.<OAMNS>.svc.cluster.local:7001</serverAddress>
        <hostIdentifier>IAMSuiteAgent</hostIdentifier>
        <agentName>Webgate_IDM</agentName>
        <autoCreatePolicy>false</autoCreatePolicy>
        <protectedResourcesList>
            <resource>/**</resource>
        </protectedResourcesList>
        <publicResourcesList>
            <resource>/public/**</resource>
        </publicResourcesList>
        <excludedResourcesList>
            <resource>/excluded/**</resource>
        </excludedResourcesList>
    
    </OAM11GRegRequest>
    たとえば:
    <?xml version="1.0" encoding="UTF-8"?>
    
    <!--
     Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
    
       NAME: OAM11GRequest_short.xml - Template for OAM 11G Agent Registration Request file
             (Shorter version - Only mandatory values - Default values will be used for all other fields)
       DESCRIPTION: Modify with specific values and pass file as input to the tool.
    
    -->
    <OAM11GRegRequest>
    
        <serverAddress>http://accessdomain-adminserver.oamns.svc.cluster.local:7001</serverAddress>
        <hostIdentifier>IAMSuiteAgent</hostIdentifier>
        <agentName>Webgate_IDM</agentName>
        <autoCreatePolicy>false</autoCreatePolicy>
        <protectedResourcesList>
            <resource>/**</resource>
        </protectedResourcesList>
        <publicResourcesList>
            <resource>/public/**</resource>
        </publicResourcesList>
        <excludedResourcesList>
            <resource>/excluded/**</resource>
        </excludedResourcesList>
    
    </OAM11GRegRequest>

    ファイルを保存します。

  2. 次のコマンドを使用して、Kubernetesコンテナにファイルをコピーします:
    kubectl cp /workdir/OAM/Webgate_IDM.xml <OAMNS>/<OAM_DOMAIN_NAME>-adminserver:/u01/oracle/idm/oam/server/rreg/Webgate_IDM.xml
    
    たとえば:
    kubectl cp /workdir/OAM/Webgate_IDM.xml oamns/accessdomain-adminserver:/u01/oracle/idm/oam/server/rreg/Webgate_IDM.xml
  3. 次のコマンドを使用して、WebGateエージェントを作成します:
    kubectl exec -n oamns -ti accessdomain-adminserver -- /bin/bash
    cd /u01/oracle/idm/oam/server/rreg/bin
    ./oamreg.sh inband /u01/oracle/idm/oam/server/rreg/Webgate_IDM.xml
    

    管理資格証明の入力を求めるプロンプトが表示されます。OAM管理ユーザーの名前とパスワードを指定します。また、WebGateパスワードを作成するかどうかを尋ねられます。このパスワードはオプションです。

    たとえば:
    kubectl exec -n oamns -ti accessdomain-adminserver /bin/bash
    
    cd /u01/oracle/idm/oam/server/rreg/bin
    ./oamreg.sh inband /u01/oracle/idm/oam/server/rreg/Webgate_IDM.xml
    ----------------------------------------
    Request summary:
    OAM11G Agent Name:Webgate_IDM
    URL String:IAMSuiteAgent
    Registering in Mode:inband
    Your registration request is being sent to the Admin server at: http://accessdomain-adminserver.oamns.svc.cluster.local:7001
    ----------------------------------------
    Mar 30, 2021 12:33:32 PM oracle.security.jps.util.JpsUtil disableAudit
    INFO: JpsUtil: isAuditDisabled set to true
    Inband registration process completed successfully! Output artifacts are created in the output folder.

    プロンプトが表示されたら、管理ユーザー名(変更していなければoamadmin)を入力します。oamadminのパスワードを指定します。WebGateのパスワードを入力するかどうかを尋ねられたら、Yesを選択して適切なパスワードを指定します。

  4. WebGateアーティファクトは、/u01/oracle/idm/oam/server/rreg/output/Webgate_IDMディレクトリに作成されます。Kubernetes環境では、このディレクトリは永続的ではありません。そのため、ファイルをdomain_home/outputディレクトリにコピーする必要があります。
    たとえば:
    cp -r /u01/oracle/idm/oam/server/rreg/output/Webgate_IDM /u01/oracle/user_projects/domains/accessdomain/output
  5. WebGateエージェントWebgate_IDMがoamconsoleに存在することを確認します。「OAM LDAP統合の検証」を参照してください。

WebLogic管理者へのLDAPグループの追加

Oracle Access Managerでは、管理サーバー内に格納されているMBeanへのアクセスが必要です。LDAPユーザーがWebLogicコンソールとFusion Middleware Controlにログインできるようにするには、ユーザーにWebLogic管理権限を割り当てる必要があります。Oracle Access ManagerでこれらのMBeanを呼び出すには、OAMAdministratorsグループのユーザーにWebLogic管理権限が必要です。

WebLogicコンソールの使用

LDAPグループOAMAdministratorsおよびWLSAdministratorsをWebLogic管理者に追加するには:

  1. WebLogic管理サーバー・コンソールにデフォルト管理ユーザーとしてログインします。たとえば、weblogic
  2. コンソールの左ペインで「セキュリティ・レルム」をクリックします。
  3. 「セキュリティ・レルムのサマリー」ページの表「レルム」で「myrealm」をクリックします。
  4. 「myrealm」の「設定」ページで、「ロールとポリシー」タブをクリックします。
  5. 「レルム・ロール」ページの表「ロール」の「グローバル・ロール」エントリを開きます。
  6. 「ロール」リンクをクリックして、「グローバル・ロール」ページに移動します。
  7. 「グローバル・ロール」ページで、「管理」ロールをクリックして「グローバル・ロールの編集」ページに移動します。
  8. 「グローバル・ロールの編集」ページで、「ロール条件」表の「条件の追加」ボタンをクリックします。
  9. 「述部の選択」ページで、条件のドロップダウン・リストから「グループ」を選択し、「次へ」をクリックします。
  10. 「引数の編集」ページのグループ引数フィールドにOAMAdministratorsを指定し、「追加」をクリックします。
  11. グループWLSAdministratorsについても同様に繰り返します。
  12. 「終了」をクリックして、「グローバル・ロールの編集」ページに戻ります。
  13. 「ロール条件」表には、グループOAMAdministratorsまたはWLSAdministratorsがロール条件として表示されます。
  14. 「保存」をクリックして、OAMAdministratorsおよびIDM Administratorsグループへの管理ロールの追加を終了します。
WLSTの使用
WLSTを使用してLDAPグループを追加することもできます:
  1. 次のコマンドを使用して、WLSTを起動します:
    ORACLE_HOME/oracle_common/common/bin/wlst.sh
  2. 次を使用して管理サーバーに接続します:
    connect('<OAM_WEBLOGIC_USER>','<OAM_WEBLOGIC_PWD>','t3://<OAM_DOMAIN_NAME>-adminserver.<OAMNS>.svc.cluster.local:<OAM_ADMIN_PORT>')
  3. 接続に成功したら、次のWLSTコマンドを使用します:
    cd('/SecurityConfiguration/accessdomain/Realms/myrealm/RoleMappers/XACMLRoleMapper')
    cmo.setRoleExpression('', 'Admin', 'Grp(<LDAP_OAMADMIN_GRP>)|Grp(<LDAP_WLSADMIN_GRP>)|Grp(Administrators)')
    exit()

    たとえば:

    connect('weblogic','password','t3://accessdomain-adminserver.oamns.svc.cluster.local:7001')
    cd('/SecurityConfiguration/accessdomain/Realms/myrealm/RoleMappers/XACMLRoleMapper')
    cmo.setRoleExpression('', 'Admin', 'Grp(OAMAdministrators)|Grp(WLSAdministrators)|Grp(Administrators)')
    exit()

WebGateエージェントの更新

idmConfigToolを実行すると、デフォルトのOAMセキュリティ・モデルが変更されて、新しいWebGate SSOエージェントが作成されます。ただし、既存のWebGate SSOエージェントが新しいセキュリティ・モデルに変更されることはありません。idmConfigToolの実行後に、既存のWebGateエージェントを更新する必要があります。

WebGateエージェントを更新するには:

  • セキュリティ・モードを、OAMサーバーのモードと一致するように変更します。このようにしないと、セキュリティ不一致エラーになります。

  • 最初のインストールで作成されたWebゲートは、高可用性(HA)インストールが実施されていることを認識しません。HAを有効化した後で、すべてのOAMサーバーがエージェント構成に含まれていることを確認して、システム継続性を確保する必要があります。

  • 最初のインストールで作成されたWebゲートは、高可用性(HA)インストールが実施されていることを認識しません。ログアウトURLが、ローカルのOAMサーバーの1つではなく、ハードウェア・ロード・バランサにリダイレクトされることを確認する必要があります。

  • IAMSuiteAgentと呼ばれるWebゲートが出荷時に作成されています。これは、パスワード保護を使用せずに作成されているため、パスワード保護を追加する必要があります。

これらのアクションを実行するには、次のステップを実行します。

  1. OAM管理ユーザー(oamadmin)を使用して、http://iadadmin.example.com/oamconsoleのOAMコンソールにログインします。
  2. 「アプリケーション・セキュリティ」画面で「エージェント」をクリックします。
  3. 「Webゲート」タブが選択されていることを確認します。
  4. 「検索」をクリックします。
  5. エージェントをクリックします。たとえば: 「IAMSuiteAgent」
  6. レスポンス・ファイルの作成時にAccess Manager構成画面のOAM転送モードに定義した値と同じセキュリティ値を設定します。

    idmConfigToolを使用してOAMセキュリティ・モデルを変更した場合は、この変更を反映するためにすべての既存のWebGateで使用されるセキュリティ・モデルを変更します。

    「適用」をクリックします。

  7. 「プライマリ・サーバー」リストで、「+」をクリックし、不足しているAccess Managerサーバーを追加します。
  8. まだパスワードを割り当てていない場合は、「アクセス・クライアント・パスワード」フィールドにパスワードを入力し、「適用」をクリックします。

    レスポンス・ファイルの作成時に使用した共通のIAMパスワード(COMMON_IDM_PASSWORD)、またはAccess Manager固有のパスワード(設定した場合)などのアクセス・クライアント・パスワードを割り当てます。

  9. 最大接続数を50に設定します。これはプライマリ・サーバーの最大接続数で、OAMサーバー数の10倍です。このケースでは、OAMサーバー数は5です。したがって、接続数は10 x 5 = 50です。
  10. 「ユーザー定義パラメータ」または「ログアウト・リダイレクトURL」に次のものが表示される場合:
    logoutRedirectUrl=http://OAMHOST1.example.com:14100/oam/server/logout
    

    これを次に変更します:

    logoutRedirectUrl=https://login.example.com/oam/server/logout
    
  11. 「適用」をクリックします。
  12. Webゲートごとにステップを繰り返します。
  13. セキュリティ設定が、使用しているAccess Managerサーバーの設定と一致していることを確認します。

ホスト識別子の更新

ドメインにアクセスするときは、様々なロード・バランサ・エントリ・ポイントを使用して入ります。これらの各エントリ・ポイント(仮想ホスト)をポリシー・リストに追加する必要があります。これらのエントリ・ポイントを追加することで、login.example.comまたはprov.example.comを使用したリソースへのアクセスをリクエストする場合に、同じポリシー・ルールのセットにアクセスできます。

ホスト識別子を更新するには:

  1. OAMコンソール(http://iadadmin.example.com/oamconsole)にアクセスします。
  2. IDストアを準備した場合は、作成したAccess Manager管理ユーザーとしてログインします。たとえば: oamadmin
  3. 「起動パッド」を選択します(表示されていない場合)。
  4. 「Access Manager」の下にある「ホスト識別子」をクリックします。
  5. 「検索」をクリックします。
  6. IAMSuiteAgent上でクリックします。
  7. 「操作」ボックスの中の「+」をクリックします。
  8. 次の情報を入力します。

    表18-4 ホスト名とポート値

    ホスト名 ポート

    iadadmin.example.com

    80

    igdadmin.example.com

    80

    igdinternal.example.com

    7777

    prov.example.com

    443

    login.example.com

    443

    ohs1.example.com

    7777

    ohs2.example.com

    7777

  9. 「適用」をクリックします。

OAMへの不足ポリシーの追加

ポリシーがない場合、Oracle Access Managerが正しく機能するように追加する必要があります。

次のポリシーを追加する必要があります:

表18-5 OAMポリシー情報

製品 リソース・タイプ ホスト識別子 リソースURL 保護レベル 認証ポリシー 認可ポリシー

すべて

HTTP

IAMSuiteAgent

/consolehelp/**

除外

すべて

HTTP

IAMSuiteAgent

/management/**

除外

   

すべて

HTTP

IAMSuiteAgent

/otpfp/**

除外

すべて

HTTP

IAMSuiteAgent

/dms/**

除外

   

OIG

HTTP

IAMSuiteAgent

/OIGUI/**

保護

保護対象上位レベル・ポリシー

保護対象リソース・ポリシー

OAM

HTTP

IAMSuiteAgent

/iam/access/binding/api/v10/oap/**

除外

   

OAM

HTTP

IAMSuiteAgent

/oam/services/rest/**

除外

   

OAM

HTTP

IAMSuiteAgent

/iam/admin/config/api/v1/config/**

除外

   

OAM

HTTP

IAMSuiteAgent

/oauth2/rest/**

除外

   

OAM

HTTP

IAMSuiteAgent

/.well-known/openid-configuration

除外

   

OIG

HTTP

IAMSuiteAgent

/iam/**

保護

保護対象上位レベル・ポリシー

保護対象リソース・ポリシー

OIG

HTTP

IAMSuiteAgent

/iam/governance/**

除外

OIG

HTTP

IAMSuiteAgent

/FacadeWebApp/**

保護

保護対象上位レベル・ポリシー

保護対象リソース・ポリシー

OIG

HTTP

IAMSuiteAgent

/IdentityAuditCallbackService/**

除外

OIG

HTTP

IAMSuiteAgent

/soa/composer

保護

保護対象上位レベル・ポリシー

保護対象リソース・ポリシー

OIG

HTTP

IAMSuiteAgent

/soa-infra

保護

保護対象上位レベル・ポリシー

保護対象リソース・ポリシー

OIG

HTTP

IAMSuiteAgent

/integration/**

保護

保護対象上位レベル・ポリシー

保護対象リソース・ポリシー

OUDSM

HTTP

IAMSuiteAgent

/oudsm

除外

   

OIRI

HTTP

IAMSuiteAgent

/oiri/api/**

除外

   

OIRI

HTTP

IAMSuiteAgent

/oiri/ui/**

除外

   

OAA

HTTP

IAMSuiteAgent

/oaa-admin/**

除外

   

OAA

HTTP

IAMSuiteAgent

/admin-ui/**

除外

   

OAA

HTTP

IAMSuiteAgent

/oaa/**

除外

   

OAA

HTTP

IAMSuiteAgent

/policy/**

除外

   

OAA

HTTP

IAMSuiteAgent

/oaa-policy/**

除外

   

OAA

HTTP

IAMSuiteAgent

/oaa-email-factor/**

除外

   

OAA

HTTP

IAMSuiteAgent

/oaa-sms-factor/**

除外

   

OAA

HTTP

IAMSuiteAgent

/oaa-totp-factor/**

除外

   

OAA

HTTP

IAMSuiteAgent

/oaa-yotp-factor/**

除外

   

OAA

HTTP

IAMSuiteAgent

/fido/**

除外

   

OAA

HTTP

IAMSuiteAgent

/oaa-kba/**

除外

   

OAA

HTTP

IAMSuiteAgent

/oaa-push-factor/**

除外

   

OARM

HTTP

IAMSuiteAgent

/risk-analyzer/**

除外

   

OARM

HTTP

IAMSuiteAgent

/risk-cc/**

除外

   

OUA

HTTP

IAMSuiteAgent

/oua/**

除外

   

OUA

HTTP

IAMSuiteAgent

/oua-admin-ui/**

除外

   

OUA

HTTP

IAMSuiteAgent

/oaa-drss/**

除外

   

ノート:

/otpfpが必要なのは、パスワードを忘れた場合のOAM機能を実装してある場合のみです。

/managementは、WebLogicリモート・コンソールを使用している場合にのみ必要です。

これらのポリシーを追加するには:

  1. oamadminユーザーを使用して、http://iadadmin.example.com/oamconsoleのOAMコンソールにログインします。
  2. 起動パッドから、「Access Manager」セクションの「アプリケーション・ドメイン」をクリックします。
  3. 「検索」ページで「検索」をクリックします。

    アプリケーション・ドメインのリストが表示されます。

  4. ドメイン「IAMスイート」をクリックします。
  5. 「リソース」タブをクリックします。
  6. 「作成」をクリックします。
  7. 上の表で指定されている情報を入力します。
  8. 「適用」をクリックします。

認証プロバイダの検証

WebLogic Server管理コンソールを使用してIDアサーション・プロバイダと認証プロバイダを設定します。

順序を設定するには:

  1. WebLogic Server管理コンソールにログインしていない場合は、ログインします。
  2. 「ロックして編集」をクリックします。
  3. 左側のナビゲーションから、「セキュリティ・レルム」を選択します。
  4. myrealmというデフォルト・レルム・エントリをクリックします。
  5. 「プロバイダ」タブをクリックします。
  6. プロバイダの表で、DefaultAuthenticatorをクリックします。
  7. 「制御フラグ」をSUFFICIENTに設定します。
  8. 「保存」をクリックして設定を保存します。
  9. ナビゲーション・ブレッドクラムから、「プロバイダ」をクリックして、プロバイダのリストに戻ります。
  10. 「並替え」をクリックします。
  11. OAM IDアサーション・プロバイダが最初で、DefaultAuthenticatorプロバイダが最後になるように、プロバイダを並べ替えます。

    表18-6 ソート順

    ソート順 プロバイダ 制御フラグ

    1

    OAMIDAsserter

    REQUIRED

    2

    LDAP認証プロバイダ

    SUFFICIENT

    3

    DefaultIdentityAsserter

    N/A

    4

    信頼サービスIDアサータ

    N/A

    5

    DefaultAuthenticator

    SUFFICIENT

  12. 「OK」をクリックします。
  13. 「変更のアクティブ化」をクリックして変更を伝播します。

Oracle Access ManagerでのOracle ADFおよびOPSSセキュリティの構成

一部のOracle Fusion Middleware管理コンソールでは、Oracle Access Managerシングル・サインオン(SSO)と統合可能なOracle Application Development Framework (Oracle ADF)セキュリティが使用されます。これらのアプリケーションではユーザー認証にOracle Platform Security Services (OPSS) SSOを利用できますが、まずドメイン・レベルのjps-config.xmlファイルを構成して、これらの機能を有効にする必要があります。

ドメインレベルのjps-config.xmlファイルは、Oracle Fusion Middlewareドメインの作成後に次の場所に配置されます。

/u01/oracle/user_projects/domain/<OAM_DOMAIN_NAME>/config/fmwconfig/jps-config.xml

ノート:

ドメインレベルのjps-config.xmlをカスタム・アプリケーションでデプロイされたjps-config.xmlと混同しないでください。

OPSS構成を更新してOracle Access ManagerにSSOアクションを委任するステップは次のとおりです。
  1. 次のコマンドを使用して、AdminServerコンテナに接続します:
    kubectl exec -n oamns -ti accessdomain-adminserver -- /bin/bash
  2. WebLogic Server Scripting Tool (WLST)を起動します。

    ORACLE_COMMON_HOME/common/bin/wlst.sh

    たとえば:

    /u01/oracle/oracle_common/common/bin/wlst.sh

  3. 次のWLSTコマンドを使用して管理サーバーに接続します。
    connect('<OAM_WEBLOGIC_USER>','<OAM_WEBLOGIC_PWD>','t3://<OAM_DOMAIN_NAME>-adminserver.<OAMNS>.svc.cluster.local:<OAM_ADMIN_PORT>')
    たとえば:
    connect('weblogic','<password>','t3://accessdomain-adminserver.oamns.svc.cluster.local:7001')
  4. 次に示すように、addOAMSSOProviderコマンドを実行します。
    addOAMSSOProvider(loginuri="/${app.context}/adfAuthentication", logouturi="/oam/logout.html")
  5. 次のコマンドを実行して、管理サーバーから切断します。
    exit()
  6. exitコマンドを使用して、コンテナを終了します。

パスワードを忘れた場合の有効化

この項では、Oracle Access Managerで提供される、パスワードを忘れた場合のワンタイムPIN機能の設定方法について説明します

Oracle Identity Governanceで提供されている、パスワードを忘れた場合のチャレンジ質問機能を構成する場合は、「LDAPを使用した構成および統合」「LDAPコネクタを使用したOracle Identity GovernanceとOracle Access Managerの統合」を参照してください。

パスワードを忘れた場合の有効化の前提条件

Oracle Access Managerでは、パスワードを忘れた場合の管理は、パスワードをリセットするためのリンクを電子メールまたはSMSメッセージで送信するという形で行われます。

電子メールまたはSMSは、Oracle User Messaging Serviceを使用して送信されます。Oracleのパスワードを忘れた場合の機能を有効化する前に、まずOracle User Messagingのデプロイメントが必要です。多くの場合はOracle Governance Domain内に存在しますが、インストールされているのがAccess Domainのみの場合は、Access Domain内に存在することもあります。または、完全に独立したドメインの可能性もあります。

パスワードを忘れた場合の機能が動作するのは、「エンタープライズ・デプロイメント用のシングル・サインオンの構成」で説明したとおり、シングル・サインオンを構成してある場合のみです。

ユーザー・メッセージング・サービスをAccess Domainに追加することや、ユーザー・メッセージング・サービス・ドメインを作成することは、このEDGの範囲外です。Oracle User Messaging Serviceのインストールと構成の詳細は、『Oracle User Messaging Serviceの管理』ユーザー・メッセージング・サービスのインストールに関する項および「Oracle User Messaging Serviceの構成」を参照してください。

oamLDAPユーザーへの権限の追加

作成した当初から、oamLDAPユーザー(OAMをLDAPにリンクするユーザー)は、LDAPディレクトリのユーザー・データを読み取る権限を付与されます。ただし、oamLDAPユーザーは、ユーザー情報を更新する権限を付与されません。パスワードを忘れた場合のOAMの機能が動作するには、これらの権限を追加する必要があります。

権限を追加するには:
  1. 任意のテキスト・エディタを使用してldifファイルをOUDホストの外部に作成してから、そのファイルをLDAPHOST1マシンにコピーします。

    このファイルには次の内容が含まれています:

    dn: cn=Users,dc=example,dc=com
    changetype: modify
    add: aci
    aci: (targetattr = "*")(targetfilter=
    "(objectclass=inetorgperson)")(targetscope = "subtree") (version 3.0; acl
    "iam admin changepwd"; allow (compare,search,read,selfwrite,add,write,delete)
    userdn = "ldap:///cn=oamLDAP,cn=systemids,dc=example,dc=com";)
  2. ファイルを保存します。

ノート:

このファイルは、oudコンテナの外部で作成してから、コンテナにコピーする必要があります。

OUD構成永続ボリュームをインストール・ホストにマウントした場合は、その場所にファイルを直接作成できます。構成ファイルをマウントするには、「Oracle Unified Directoryのインストールおよび構成」を参照してください。

ファイルをOUDノードにコピーするには、次のコマンドを使用します:
kubectl cp add_aci.ldif oudns/edg-oud-ds-rs-0:add_aci.ldif
次のコマンドを使用して、ldapmodifyコマンドを実行するOUDノードに接続します:
kubectl exec -it  edg-oud-ds-rs-0 -n oudns -- /bin/bash

次のコマンドを使用して、OUDにACIを追加します:

/u01/oracle/user_projects/edg-oud-ds-rs-0/OUD/bin/ldapmodify -c -D cn=oudadmin -h edg-oud-ds-rs-lbr-ldap.oudns.svc.cluster.local -p 1389 -f /u01/oracle/config-input/add_aci.ldif

アダプティブ認証サービスの有効化

パスワードを忘れた場合の機能では、アダプティブ認証サービスを有効にする必要があります。

このサービスを有効にするには:

  1. 次のURLを使用して、oamadminユーザーとしてOracle Access Management管理コンソールにログインします:
    http://iadadmin.example.com/oamconsole
  2. 「構成」をクリックします。
  3. 「使用可能なサービス」をクリックします。
  4. アダプティブ認証サービスの隣にある「サービスの有効化」をクリックします。
  5. プロンプトが表示されたら、サービスの有効化を確認します。

アダプティブ認証プラグインの構成

アダプティブ認証サービスを有効にしたら、ユーザー・メッセージング・サービスについて通知する必要があります。

アダプティブ認証プラグインを構成するには:

  1. 次のURLを使用して、oamadminユーザーとしてOracle Access Management管理コンソールにログインします:
    http://iadadmin.example.com/oamconsole
  2. 「アプリケーション・セキュリティ」起動パッドから、「プラグイン」パネルの「認証プラグイン」をクリックします。「認証プラグイン」タブから、「プラグイン名」列の上のクイック検索ボックスにAdaptiveと入力して[Enter]を押します。
    「AdaptiveAuthenticationPlugin」が表示されます。
  3. 次のプラグイン・プロパティを入力します。

    表18-7 アダプティブ認証プラグインのプロパティ

    属性

    UmsAvailable

    True

    UmsClientURL

    ユーザー・メッセージング・サービスのエントリ・ポイントを指定します。Oracle Identity Managerを構成してある場合、これはhttp://igdinternal.example.com:7777/ucs/messaging/webserviceになります

    UMSサーバーがKubernetesクラスタ内にある場合は、Kubernetesサービス名を使用してこれにアクセスできます。例: http://<OIG_DOMAIN_NAME>-cluster-soa-cluster.<OIGNS>.svc.cluster.local:8001/ucs/messaging/webservice

  4. 「保存」をクリックします。

ディレクトリ内のパスワード管理の有効化

デフォルトでは、OAMはパスワード管理を有効にするように設定されません。OAMコンソールを使用して有効にする必要があります。

ディレクトリ内のパスワード管理を有効にするには:

  1. 次のURLを使用して、oamadminユーザーとしてOracle Access Management管理コンソールにログインします:
    http://iadadmin.example.com/oamconsole
  2. 「構成」をクリックします。
  3. 「ユーザー・アイデンティティ・ストア」をクリックします。
  4. OAMアイデンティティ・ストア・セクションのLDAPアイデンティティ・ストアをクリックします。たとえば: OAMIDSTORE
  5. 「編集」をクリックします。
  6. 「パスワード管理の有効化」を選択します。
  7. 「ユーザー情報」フィールドに詳細を入力します。

    表18-8 ユーザー情報の詳細

    属性 説明

    グローバル共通ID属性

    ユーザーのLDAP内の一意の識別子。例: uid

    ユーザー名を保持するLDAP属性。例: cn

    ユーザーの姓を保持するLDAP属性。例: sn

    電子メール・アドレス

    ユーザーの電子メール・アドレスを保持するLDAP属性。例: mail

  8. 「適用」をクリックします。

CSFへのユーザー・メッセージング資格証明の格納

ユーザー・メッセージング・サービスにアクセスするには、その前にWebLogic資格証明ストアに資格証明を格納する必要があります。

資格証明を格納するには:

  1. 次のコマンドを使用して管理サーバーに接続します:
    kubectl exec -n oamns -ti accessdomain-adminserver -- /bin/bash
  2. 次のWLSTコマンドのセットを実行します:
    /u01/oracle/oracle_common/common/bin/wlst.sh
    connect('<OAM_WEBLOGIC_USER>','<OAM_WEBLOGIC_PWD>','t3://<OAM_DOMAIN_NAME>-adminserver.<OAMNS>.svc.cluster.local:<OAM_ADMIN_PORT>'). 
    createCred(map="OAM_CONFIG", key="umsKey", user="weblogic", password="password")
    createCred(map="OAM_CONFIG", key="oam_rest_cred", user="oamadmin", password="password")
    exit ()

    umsKeyは、電子メールまたはSMS通知を送信する統合メッセージング・サーバーに資格証明を提供するために使用されます。

    oam_rest_credは、OAMサーバーでRESTサービスを起動できるユーザーです。

    前述のコマンドで、weblogicはドメイン管理ユーザーであり、passwordはそれに関連付けられたパスワードです。

ログイン・ページ上のパスワードを忘れた場合のリンクの設定

次のREST APIコマンドを実行すると、OAMのデフォルト・ログイン・ページ上のパスワードを忘れた場合のOTPリンクが有効になります。

 curl -X -k PUT \
  https://login.example.com/oam/services/rest/access/api/v1/config/otpforgotpassword/ \
  -u oamadmin:Password \
  -H 'content-type: application/json' \
  -d '{"displayOTPForgotPassworLink":"true","defaultOTPForgotPasswordLink":"false","localToOAMServer":"true","forgotPasswordURL":"https://login.example.com/otpfp/pages/fp.jsp", "mode":"userselectchallenge"}'

必要な属性と値を入力します。

表18-9 ログイン・ページ上のパスワードを忘れた場合のリンク

属性

ForgotPasswordURL

OAMのパスワードを忘れた場合のURL。たとえば、https://login.example.com/otpfp/pages/fp.jsp

mode

distribution_mode

配布モードによって、パスワード・リセットURLをエンド・ユーザーに送信する方法が決定されます。有効な値はemail、sms、userchoose、userselectchallengeです。最後のエントリでは、ユーザーはマスクされた値から選択できます。

  • Email - OTPは、mailフィールドに構成された電子メールに送信されます。

  • SMS - OTPは、mobileフィールドに構成されたモバイル番号に送信されます。

  • Userchoose - OTPは、正確な値を持たないemailまたはmobileオプションをユーザーが選択することで送信されます。

  • Userselectchallenge - ユーザーは、emailまたはmobileとしてマスクされた値を確認し、そのオプションのいずれかを選択できます。

ノート:

ロード・バランサで自己署名証明書を使用している場合、curlコマンドを実行すると、次のようなメッセージが表示される場合があります。

デフォルトでは、curlは認証局(CA)公開キー(CA cert)のバンドルを使用して、SSL証明書検証を実行します。デフォルトのバンドル・ファイルが適切でない場合、--cacertオプションを使用して代替ファイルを指定できます。バンドルで表されるCAが署名した証明書がこのHTTPSサーバーで使用される場合、証明書の問題が原因で証明書検証が失敗した可能性があります(期限が切れたか、名前がURLのドメイン名と一致しない可能性があります)。curlによる証明書の検証をオフにするには、-k (または--insecure)オプションを使用します。

このメッセージが表示され、問題がないことがわかっている場合は、-u oamadmin:Passwordの後に-kを追加します。

ブラウザで次のURLにアクセスして、成功したことを検証します。

https://login.example.com/oam/services/rest/access/api/v1/config/otpforgotpassword

要求された場合は、oamadminアカウントとパスワードを入力します。

ノート:

このコマンドが成功するには、OAM管理対象サーバーのいずれかが実行されている必要があります。

Oracleキーストア・サービスへのOracle Access Managerロード・バランサ証明書の追加

Oracle Access Managerのパスワードを忘れた場合の機能では、ロード・バランサによって使用されるSSL証明書を、Oracleキーストア・サービスの信頼できる証明書に追加する必要があります。

証明書を追加する手順は、次のとおりです。

  1. ユーザーが作成したキーストアと証明書を格納するディレクトリを作成します。
    kubectl exec -n <OAMNS> -ti <OAM_DOMAIN_NAME>-adminserver -- mkdir -p SHARED_CONFIG_DIR/keystores
    たとえば:
    kubectl exec -n oamns -ti accessdomain-adminserver -- mkdir -p /u01/oracle/user_projects/keystores
  2. ロード・バランサから証明書を取得します。ロード・バランサの証明書は、Firefoxなどのブラウザを使用して取得できます。ただし、証明書を取得する最も簡単な方法は、opensslコマンドを使用します。コマンドの構文は、次のとおりです。
    openssl s_client -connect <LOADBALANCER>:<PORT> -showcerts </dev/null 2>/dev/null| sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /workdir/OAM/LOADBALANCER.pem
    たとえば:
    openssl s_client -connect login.example.com:443 -showcerts </dev/null 2>/dev/null| sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > >/workdir/OAM/login.example.com.pem

    opensslコマンドにより、証明書が/workdir/OAMlogin.example.com.pemというファイルに保存されます。

  3. 次のコマンドを使用して、Kubernetesコンテナに証明書をコピーします:
    kubectl cp <FILENAME> <OAMNS>/<OAM_DOMAIN_NAME>-adminserver:<SHARED_CONFIG_DIR>/keystores
    たとえば:
    kubectl cp login.example.com.pem oamns/accessdomain-adminserver:/u01/oracle/user_projects/keystores/login.example.com.pem
  4. WLSTを使用して、証明書をOracleキーストア・サービスにロードします。
    1. コマンドを使用して、コンテナに接続します:
      kubectl exec -n oamns -ti accessdomain-adminserver -- /bin/bash
    2. 次のコマンドを使用して、WLSTに接続します:
      ORACLE_HOME/oracle_common/common/bin/wlst.sh
    3. 次のコマンドを使用して管理サーバーに接続します。
      connect('<OAM_WEBLOGIC_USER>','<OAM_WEBLOGIC_PWD>','t3://<OAM_DOMAIN_NAME>-adminserver.<OAMNS>.svc.cluster.local:<OAM_ADMIN_PORT>')
      たとえば:
      connect('weblogic','<password>','t3://accessdomain-adminserver.oamns.svc.cluster.local:7001')
    4. 次のコマンドを使用して、アクセス・アーティファクトをダウンロードします:
      downloadAccessArtifacts(domain_home="/u01/oracle/user_projects/domains/accessdomain",
            propsFile="/u01/oracle/user_projects/workdir/db.props"

      ノート:

      プロパティ・ファイルの内容の詳細は、ドキュメントID 2318818.1を参照してください。
    5. 次のコマンドを使用して、証明書をロードします:
      svc = getOpssService(name='KeyStoreService')
      svc.importKeyStoreCertificate(appStripe='system',name='trust',password='', keypassword='',alias='<CertificateName>',type='TrustedCertificate', filepath='/<SHARED_CONFIG_DIR>/keystores/<LOADBALANCER>.pem')
    6. 次のコマンドを使用して、キーストア・サービスとファイル・システムを同期します:
      syncKeyStores(appStripe='system', keystoreFormat='KSS')

      たとえば:

      connect('weblogic','password','t3://accessdomain-adminserver.oamns.svc.cluster.local:7101')
      svc = getOpssService(name='KeyStoreService')
      svc.importKeyStoreCertificate(appStripe='system',name='trust',password='', keypassword='',alias='login.example.com',type='TrustedCertificate', filepath='/u01/oracle/user_projects/keystores/login.example.com.pem')
      syncKeyStores(appStripe='system',keystoreFormat='KSS')
      exit()
    7. 次のコマンドを使用して、アクセス・アーティファクトを保存します:
      saveAccessArtifacts(domain_home="/u01/oracle/user_projects/domains/accessdomain",
            propsFile="/u01/oracle/user_projects/work/db.props"
変更を有効にするには、ドメインを再起動する必要があります。ノード・マネージャ・キーストアのデフォルト・パスワードは、COMMON_IAM_PASSWORDです。証明書が有効であることを確認するよう求められます。

カスタム・ホスト名検証の構成

ワイルドカード証明書を使用する場合は、ホスト名検証のデフォルト値をBEA Hostname Verifierからカスタム値のweblogic.security.utils.SSLWLSWildcardHostnameVerifierに変更する必要があります。

ホスト名検証のデフォルト値を変更するには:

  1. WebLogic Server管理コンソールにログインします。
  2. 「ロックして編集」をクリックします。
  3. 「サーバーのサマリー」に移動し、「oam_server1」をクリックします。
  4. 「SSL」タブをクリックし、「詳細」セクションを開きます。
  5. 「ホスト名の検証」フィールドを「カスタム・ホスト名の検証」に設定します。
  6. 「カスタム・ホスト名の検証」フィールドに、weblogic.security.utils.SSLWLSWildcardHostnameVerifierと入力します。
  7. 「保存」をクリックします。

ノート:

これらのステップに従い、すべてのOAM管理対象サーバーのホスト名検証を変更します。

パスワードを忘れた場合の機能の検証

OIMへのオフロードではなく、パスワードを忘れた場合のOAMの機能を設定した場合、curlコマンドを使用して有効なパスワード・ポリシーを表示し、パスワードを忘れた場合の機能を検証できます。

パスワードを忘れた場合の機能を検証するには、次のcurlコマンドを実行します:

curl -X GET https://login.example.com/oam/services/rest/access/api/v1/pswdmanagement/UserPasswordPolicyRetriever/oamadmin?description=true  -u oamadmin:<password> -k 

このコマンドによってパスワード・ポリシーが表示されます。

このコマンドが動作する場合は、次に示す保護されたURLにアクセスします。シングル・サインオンを有効にすると、ログイン・ページにパスワードを忘れた場合のリンクが表示されます。このリンクをクリックして、パスワードをリセットするユーザー名を入力します。「PINの生成」をクリックして電子メールを受信することで、パスワードを変更できます。

http://iadadmin.example.com/console

ノート:

検証する前に、「エンタープライズ・デプロイメント用のシングル・サインオンの構成」の説明に従ってSSOを有効にしてください。そうしないと、検証が失敗します。

Accessドメインの再起動

変更を有効にするには、KubernetesでAccessドメインを再起動します。

ドメインを再起動するには:
  1. ドメインを停止します。
    kubectl -n oamns patch domains accessdomain --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "NEVER" }]'
  2. ドメインを起動します。
    kubectl -n oamns patch domains accessdomain --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "IF_NEEDED" }]'

初期サーバー数の設定

最初にドメインを作成したときに、1つの管理対象サーバーのみを起動するように指定しました。構成を完了したら、初期サーバー数を必要な実際の数まで増やすことができます。

サーバー数を増やすには、次のコマンドを使用します:
kubectl patch cluster -n <OAMNS> <OAM_DOMAIN_NAME>-${CLUSTER_NAME} --type=merge -p '{"spec":{"replicas":<INITIAL_SERVER_COUNT>}}'
2つのOAMおよび2つのポリシー・マネージャ管理対象サーバーが必要な場合は、次のコマンドを使用します:
kubectl patch cluster -n oamns accessedomain-oam-cluster --type=merge -p '{"spec":{"replicas":2}}'
kubectl patch cluster -n oamns accessdomain-policy-cluster --type=merge -p '{"spec":{"replicas":2}}'

GrafanaとPrometheusによる集中管理型の監視

集中管理型のPrometheusおよびGrafanaデプロイメントを使用してインフラストラクチャを監視している場合は、このアプリケーションにOracle Access Managementのデータを送信できます。PrometheusおよびGrafanaをまだデプロイしていない場合は、「PrometheusおよびGrafanaのインストール」を参照してください。

集中型のPrometheusおよびGrafanaを使用してインフラストラクチャを監視するには、次のステップを実行します:

監視アプリケーションのダウンロードとコンパイル

Oracle Access Manager WebLogicクラスタの監視アプリケーションをダウンロードして構成するには:
  1. 監視の設定を行うサンプル・スクリプトにディレクトリを変更します:
    cd <WORKDIR>/samples/monitoring-service/scripts
    たとえば:
    cd /workdir/OAM/samples/monitoring-service/scripts
  2. get-wls-exporter.shスクリプトを実行します。

    スクリプトを実行する前に、環境設定を決定する環境変数を設定します:

    export adminServerPort=<OAM_ADMIN_PORT>
    export wlsMonitoringExporterTopolicyCluster=true
    export policyManagedServerPort=15100
    export wlsMonitoringExporterTooamCluster=true
    export oamManagedServerPort=14100
    export domainNamespace=<OAMNS>
    export domainUID=<OAM_DOMAIN_NAME>
    export weblogicCredentialsSecretName=<OAM_DOMAIN_NAME>-credentials

    たとえば:

    export adminServerPort=7001
    export wlsMonitoringExporterTopolicyCluster=true
    export policyManagedServerPort=15100
    export wlsMonitoringExporterTooamCluster=true
    export oamManagedServerPort=14100
    export domainNamespace=oamns
    export domainUID=accessdomain
    export weblogicCredentialsSecretName=accessdomain-credentials

    次のコマンドを使用して、スクリプトを実行します。

    ./get-wls-exporter.sh

    出力が次のように表示されます。

    % Total    % Received % Xferd   Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    
      0     0    0     0    0     0      0     0 --:--:-- --:--:-- --:--:--     0
      0     0    0     0    0     0      0     0 --:--:-- --:--:-- --:--:--     0
    
      0     0    0     0    0     0      0     0 --:--:-- --:--:-- --:--:--     0
      5 2196k    5  127k    0     0  74408     0  0:00:30  0:00:01  0:00:29  129k
    100 2196k  100 2196k    0     0  1017k     0  0:00:02  0:00:02 --:--:-- 1582k
    created /home/opc/workdir/OAM/samples/monitoring-service/scripts/wls-exporter-deploy dir
    adminServerName is empty, setting to default "AdminServer"
    oamClusterName is empty, setting to default "oam_cluster"
    policyClusterName is empty, setting to default "policy_cluster"
    created /tmp/ci-x9jR7O0jjm
    /tmp/ci-x9jR7O0jjm ~/workdir/OAM/samples/monitoring-service/scripts
    in temp dir
      adding: WEB-INF/weblogic.xml (deflated 61%)
      adding: config.yml (deflated 60%)
    ~/workdir/OAM/samples/monitoring-service/scripts
    created /tmp/ci-mRTU0hjM1q
    /tmp/ci-mRTU0hjM1q ~/workdir/OAM/samples/monitoring-service/scripts
    in temp dir
      adding: WEB-INF/weblogic.xml (deflated 61%)
      adding: config.yml (deflated 60%)
    ~/workdir/OAM/samples/monitoring-service/scripts
    created /tmp/ci-OD0EAjb7M5
    /tmp/ci-OD0EAjb7M5 ~/workdir/OAM/samples/monitoring-service/scripts
    in temp dir
      adding: WEB-INF/weblogic.xml (deflated 61%)
      adding: config.yml (deflated 60%)
    ~/workdir/OAM/samples/monitoring-service/scripts

WebLogicドメインへの監視アプリケーションのデプロイ

前の項では、監視アプリケーションを含むWARファイルを多数作成しました。「監視アプリケーションのダウンロードとコンパイル」を参照してください。これらのファイルは、WebLogicドメインにデプロイする必要があります。オラクル社では、このファイルをデプロイするスクリプトを用意しています。スクリプトを実行する前に、WebLogic管理サーバーが含まれるコンテナにファイルをコピーしてください。

アプリケーションを配置するには:

  1. ディレクトリをサンプル・ファイルの場所に変更します:
    cd <WORKDIR>/samples/monitoring-service/scripts
    たとえば:
    cd /workdir/OAM/samples/monitoring-service/scripts
  2. 次のコマンドを使用して、ファイルを管理サーバー・コンテナにコピーします:
    kubectl cp <WORKDIR>/samples/monitoring-service/scripts/wls-exporter-deploy  <OAMNS>/<OAM_DOMAIN_NAME>-adminserver:/u01/oracle
    kubectl cp <WORKDIR>/samples/monitoring-service/scripts/deploy-weblogic-monitoring-exporter.py  <OAMNS>/<OAM_DOMAIN_NAME>-adminserver:/u01/oracle/wls-exporter-deploy

    たとえば:

    kubectl cp /workdir/OAM/samples/monitoring-service/scripts/wls-exporter-deploy  oamns/accessdomain -adminserver:/u01/oracle
    kubectl cp /workdir/OAM/samples/monitoring-service/scripts/deploy-weblogic-monitoring-exporter.py  oamns/accessdomain-adminserver:/u01/oracle/wls-exporter-deploy
  3. 次のコマンドを使用して、アプリケーションをデプロイします:
    kubectl exec -it -n <OAMNS> <OAM_DOMAIN_NAME>-adminserver -- /u01/oracle/oracle_common/common/bin/wlst.sh \
    -domainName <OAM_DOMAIN_NAME> \
    -adminServerName AdminServer \
    -adminURL <OAM_DOMAIN_NAME>-adminserver:<OAM_ADMIN_PORT> \
    -username <OAM_WEBLOGIC_USER> \
    -password <OAM_WEBLOGIC_PWD> \
    -oamClusterName oam_cluster \
    -wlsMonitoringExporterTooamCluster true \
    -policyClusterName policy_cluster \
    -wlsMonitoringExporterTopolicyCluster true
    たとえば:
    kubectl exec -it -n oamns acccessdomain-adminserver -- /u01/oracle/oracle_common/common/bin/wlst.sh \
    -domainName accessdomain \
    -adminServerName AdminServer \
    -adminURL accessdomain-adminserver:7001 \
    -username weblogic \
    -password MyPassword \
    -oamClusterName oam_cluster \
    -wlsMonitoringExporterTooamCluster true \
    -policyClusterName policy_cluster \
    -wlsMonitoringExporterTopolicyCluster true
    出力が次のように表示されます。
    Initializing WebLogic Scripting Tool (WLST) ...
    
    Welcome to WebLogic Server Administration Scripting Shell
    
    Type help() for help on available commands
    
    Connecting to t3://accessdomain-adminserver:7001 with userid weblogic ...
    Successfully connected to Admin Server "AdminServer" that belongs to domain "accessdomain".
    
    Warning: An insecure protocol was used to connect to the server.
    To ensure on-the-wire security, the SSL port or Admin port should be used instead.
    
    Deploying .........
    Deploying application from /u01/oracle/wls-exporter-deploy/wls-exporter-adminserver.war to targets AdminServer (upload=true) ...
    <Aug 18, 2022 10:12:01 AM GMT> <Info> <J2EE Deployment SPI> <BEA-260121> <Initiating deploy operation for application, wls-exporter-adminserver [archive: /u01/oracle/wls-exporter-deploy/wls-exporter-adminserver.war], to AdminServer .>
    .Completed the deployment of Application with status completed
    Current Status of your Deployment:
    Deployment command type: deploy
    Deployment State : completed
    Deployment Message : no message
    Starting application wls-exporter-adminserver.
    <Aug 18, 2022 10:12:07 AM GMT> <Info> <J2EE Deployment SPI> <BEA-260121> <Initiating start operation for application, wls-exporter-adminserver [archive: null], to AdminServer .>
    .Completed the start of Application with status completed
    Current Status of your Deployment:
    Deployment command type: start
    Deployment State : completed
    Deployment Message : no message
    Deploying .........
    Deploying application from /u01/oracle/wls-exporter-deploy/wls-exporter-oam.war to targets oam_cluster (upload=true) ...
    <Aug 18, 2022 10:12:10 AM GMT> <Info> <J2EE Deployment SPI> <BEA-260121> <Initiating deploy operation for application, wls-exporter-oam [archive: /u01/oracle/wls-exporter-deploy/wls-exporter-oam.war], to oam_cluster .>
    ..Completed the deployment of Application with status completed
    Current Status of your Deployment:
    Deployment command type: deploy
    Deployment State : completed
    Deployment Message : no message
    Starting application wls-exporter-oam.
    <Aug 18, 2022 10:12:18 AM GMT> <Info> <J2EE Deployment SPI> <BEA-260121> <Initiating start operation for application, wls-exporter-oam [archive: null], to oam_cluster .>
    .Completed the start of Application with status completed
    Current Status of your Deployment:
    Deployment command type: start
    Deployment State : completed
    Deployment Message : no message
    Deploying .........
    Deploying application from /u01/oracle/wls-exporter-deploy/wls-exporter-policy.war to targets policy_cluster (upload=true) ...
    <Aug 18, 2022 10:12:22 AM GMT> <Info> <J2EE Deployment SPI> <BEA-260121> <Initiating deploy operation for application, wls-exporter-policy [archive: /u01/oracle/wls-exporter-deploy/wls-exporter-policy.war], to policy_cluster .>
    .Completed the deployment of Application with status completed
    Current Status of your Deployment:
    Deployment command type: deploy
    Deployment State : completed
    Deployment Message : no message
    Starting application wls-exporter-policy.
    <Aug 18, 2022 10:12:26 AM GMT> <Info> <J2EE Deployment SPI> <BEA-260121> <Initiating start operation for application, wls-exporter-policy [archive: null], to policy_cluster .>
    .Completed the start of Application with status completed
    Current Status of your Deployment:
    Deployment command type: start
    Deployment State : completed
    Deployment Message : no message
    Disconnected from weblogic server: AdminServer
    
    
    Exiting WebLogic Scripting Tool.
    
    <Aug 18, 2022 10:12:30 AM GMT> <Warning> <JNDI> <BEA-050001> <WLContext.close() was called in a different thread than the one in which it was created.>

Prometheusオペレータの構成

Prometheusを使用すると、WebLogic Monitoring Exporterからメトリックを収集できます。Prometheusオペレータは、サービス検出を使用してターゲットを識別します。WebLogic Monitoring Exporterのエンド・ポイントをターゲットとして検出するには、サービスを指すサービス・モニターを作成する必要があります。

wls-exporterからメトリックをエクスポートするには、basicAuthが必要です。そのため、base64でエンコードしたユーザー名とパスワードを使用して、Kubernetesシークレットを作成します。このシークレットは、ServiceMonitorデプロイメントで使用されます。wls-exporter-ServiceMonitor.yamlファイルにはbasicAuthが指定されており、資格証明のユーザー名は<OAM_WEBLOGIC_USER>、パスワードは<OAM_WEBLOGIC_PWD>で、base64でエンコードされています。

  1. 次のコマンドを実行し、base64でエンコードしたバージョンのweblogicユーザー名を取得します:
    echo -n "weblogic” | base64

    出力が次のように表示されます。

    d2VibG9naWM=
  2. 次のコマンドを実行し、base64でエンコードしたバージョンのweblogicパスワードを取得します:
    echo -n "<OAM_WEBLOGIC_PWD>" | base64

    出力が次のように表示されます。

    V2VsY29tZTE=
  3. テンプレート・ファイル<WORKDIR>/samples/monitoring-service/manifests/wls-exporter-ServiceMonitor.yaml.template<WORKDIR>/samples/monitoring-service/manifests/wls-exporter-ServiceMonitor.yamlにコピーします。
  4. <WORKDIR>/samples/monitoring-service/manifests/wls-exporter-ServiceMonitor.yamlの場所を更新し、ユーザーとパスワードの値をステップ2で返された値に変更します。
    また、次の値を変更して、OAMネームスペース、ドメイン名およびPrometheusリリース名と一致させます。たとえば:
    • namespace: oamns
    • weblogic.domainName: accessdomain
    • release: kube-prometheus
      リリース名は、次のコマンドで取得できます:
      kubectl get prometheuses.monitoring.coreos.com --all-namespaces -o jsonpath="{.items[*].spec.serviceMonitorSelector}"
    たとえば:
    apiVersion: v1
    kind: Secret
    metadata:
      name: basic-auth
      namespace: oamns
    data:
      password: V2VsY29tZTE=
      user: d2VibG9naWM=
    type: Opaque
    ---
    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      name: wls-exporter
      namespace: oamns
      labels:
        k8s-app: wls-exporter
        release: monitoring
    spec:
      namespaceSelector:
        matchNames:
        - oamns
      selector:
        matchLabels:
          weblogic.domainName: accessdomain
      endpoints:
      - basicAuth:
          password:
            name: basic-auth
            key: password
          username:
            name: basic-auth
            key: user
        port: default
        relabelings:
          - action: labelmap
            regex: __meta_kubernetes_service_label_(.+)
        interval: 10s
        honorLabels: true
        path: /wls-exporter/metrics
  5. <WORKDIR>/samples/monitoring-service/manifests/prometheus-roleSpecific-domain-namespace.yaml<WORKDIR>/samples/monitoring-service/manifests/prometheus-roleBinding-domain-namespace.yamlファイルを更新し、OAMネームスペースと一致するようにネームスペースを変更します。たとえば:

    prometheus-roleSpecific-domain-namespace.yaml

    apiVersion: rbac.authorization.k8s.io/v1
    items:
    - apiVersion: rbac.authorization.k8s.io/v1
      kind: Role
      metadata:
        name: prometheus-k8s
        namespace: oamns
      rules:
      - apiGroups:
        - ""
        resources:
        - services
        - endpoints
        - pods
        verbs:
        - get
        - list
        - watch
    kind: RoleList
    prometheus-roleBinding-domain-namespace.yaml:
    apiVersion: rbac.authorization.k8s.io/v1
    items:
    - apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:
        name: prometheus-k8s
        namespace: oamns
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: Role
        name: prometheus-k8s
      subjects:
      - kind: ServiceAccount
        name: prometheus-k8s
        namespace: monitoring
    kind: RoleBindingList
  6. 次のコマンドを実行して、Prometheusを有効にします:
    kubectl apply -f
    出力が次のように表示されます。
    rolebinding.rbac.authorization.k8s.io/prometheus-k8s created
    role.rbac.authorization.k8s.io/prometheus-k8s created
    secret/basic-auth created
    servicemonitor.monitoring.coreos.com/wls-exporter created

Prometheusサービスの検出

ServiceMonitorをデプロイすると、Prometheusによりwls-exporterが検出され、メトリックを収集できるようになります。
  1. 次のURLにアクセスし、Prometheusサービス検出を表示します:

    http://<K8_WORKER1>:32101/service-discovery

  2. <OAMNS>/wls-exporter/0をクリックし、「さらに表示」をクリックします。すべてのターゲットがリストされていることを確認します。

ElasticsearchおよびKibanaを使用した集中管理型のログ・ファイル監視

ElasticsearchとKibanaを使用している場合は、集中管理型のElasticearch/Kibanaコンソールにログ・ファイルを送信するようLogstashポッドを構成できます。Logstashポッドを構成する前に、集中管理型のElasticsearchデプロイメントにアクセスできることを確認してください。
  • OAM永続ボリューム(Logstashポッドによってロードされ、ログ・ファイルの検索が可能になります)。
  • 永続ボリューム内のログ・ファイルの場所。
  • 集中管理型のElasticsearchの場所。

Logstashポッドを構成するには、次のステップを実行します。Kubernetesクラスタ内のelknsというネームスペースで、Elasticsearchが実行されていることを前提としています。

Elasticsearchのシークレットの作成

Logstashでは、Elasticsearchデプロイメントに接続するための資格証明が必要です。これらの資格証明は、シークレットとしてKubernetesに格納されます。

Elasticsearchで認証にAPIキーを使用する場合は、次のコマンドを使用します:
kubectl create secret generic elasticsearch-pw-elastic -n <OAMNS> --from-literal password=<ELK_APIKEY>
たとえば:
kubectl create secret generic elasticsearch-pw-elastic -n oamns --from-literal password=afshfashfkahf5f
Elasticsearchで認証にユーザー名とパスワードを使用する場合は、次のコマンドを使用します:
kubectl create secret generic elasticsearch-pw-elastic -n <OAMNS> --from-literal password=<ELK_PWD>
たとえば:
kubectl create secret generic elasticsearch-pw-elastic -n oamns --from-literal password=mypassword
Elasticsearchパスワードを見つけるには、次のコマンドを使用します:
kubectl get secret elasticsearch-es-elastic-user -n <ELKNS> -o go-template='{{.data.elastic | base64decode}}'

ELK証明書の構成マップの作成

本番環境に対応したElasticsearchデプロイメントを構成した場合は、SSLが構成されています。Elasticsearchと通信できるよう、LogstashでElasticsearch証明書を信頼する必要があります。信頼を有効にするには、Elasticsearch証明書の内容で、構成マップを作成する必要があります。

Elasticsearchの自己署名証明書は、すでに保存されています。「Elasticsearch証明書のコピー」を参照してください。本番証明書がある場合は、かわりにそれを使用できます。

証明書を使用して構成マップを作成し、次のコマンドを実行します:

kubectl create configmap elk-cert --from-file=<WORKDIR>/ELK/elk.crt -n <OAMNS>
たとえば:
kubectl create configmap elk-cert --from-file=/workdir/ELK/elk.crt -n oamns

Logstashの構成マップの作成

Logstashは、OAMインストールのログ・ファイルを検索し、集中管理型のElasticsearchに送信します。ログ・ファイルが存在する場所とその送信先は、構成マップを使用してLogstashに指示されます。

  1. <WORKDIR>/OAM/logstash_cm.yamlというファイルを、次の内容で作成します:
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: oam-logstash-configmap
      namespace: <OAMNS>
    data:
      logstash.yaml: |
      #http.host: "0.0.0.0"
      logstash-config.conf: |
        input {
          file {
            path => "/u01/oracle/user_projects/domains/logs/accessdomain/AdminServer*.log"
            tags => "Adminserver_log"
            start_position => beginning
          }
          file {
            path => "/u01/oracle/user_projects/domains/logs/accessdomain/oam_policy_mgr*.log"
            tags => "Policymanager_log"
            start_position => beginning
          }
          file {
            path => "/u01/oracle/user_projects/domains/logs/accessdomain/oam_server*.log"
            tags => "Oamserver_log"
            start_position => beginning
          }
          file {
            path => "/u01/oracle/user_projects/domains/accessdomain/servers/AdminServer/logs/AdminServer-diagnostic.log"
            tags => "Adminserver_diagnostic"
            start_position => beginning
          }
          file {
            path => "/u01/oracle/user_projects/domains/accessdomain/servers/**/logs/oam_policy_mgr*-diagnostic.log"
            tags => "Policy_diagnostic"
            start_position => beginning
          }
          file {
            path => "/u01/oracle/user_projects/domains/accessdomain/servers/**/logs/oam_server*-diagnostic.log"
            tags => "Oamserver_diagnostic"
            start_position => beginning
          }
          file {
            path => "/u01/oracle/user_projects/domains/accessdomain/servers/**/logs/access*.log"
            tags => "Access_logs"
            start_position => beginning
          }
          file {
            path => "/u01/oracle/user_projects/domains/accessdomain/servers/AdminServer/logs/auditlogs/OAM/audit.log"
            tags => "Audit_logs"
            start_position => beginning
          }
        }
        filter {
          grok {
            match => [ "message", "<%{DATA:log_timestamp}> <%{WORD:log_level}> <%{WORD:thread}> <%{HOSTNAME:hostname}> <%{HOSTNAME:servername}> <%{DATA:timer}> <<%{DATA:kernel}>> <> <%{DATA:uuid}> <%{NUMBER:timestamp}> <%{DATA:misc}> <%{DATA:log_number}> <%{DATA:log_message}>" ]
          }
        if "_grokparsefailure" in [tags] {
            mutate {
                remove_tag => [ "_grokparsefailure" ]
            }
        }
        }
        output {
          elasticsearch {
            hosts => ["<ELK_HOST>"]
            cacert => '/usr/share/logstash/config/certs/elk.crt'
            index => "oamlogs-000001"
            ssl => true
            ssl_certificate_verification => false
            user => "<ELK_USER>"
            password => "${ELASTICSEARCH_PASSWORD}"
          }
        }
  2. ファイルを保存します。
  3. 次のコマンドを使用して、構成マップを作成します:
    kubectl create -f <WORKDIR>/OAM/logstash_cm.yaml
    たとえば:
    kubectl create -f /workdir/OAM/logstash_cm.yaml
  4. 次のコマンドを使用して、構成マップが作成されたことを確認します:
    kubectl get cm -n <OAMNS>

    構成マップのリストにoam-logstash-configmapが表示されます。

Logstashデプロイメントの作成

構成マップを作成したら、Logstashデプロイメントを作成できます。このデプロイメントは、OAMネームスペースに存在します。
  1. 次のコマンドを使用して、OAM永続ボリュームのマウント・ポイントを確認します:
    kubectl describe domains <OAM_DOMAIN_NAME> -n <OAMNS> | grep "Mount Path"
    たとえば:
    kubectl describe domains accessdomain -n oamns | grep "Mount Path"

    この値をノートにとります。次のステップで作成するファイルに必要になります。

  2. <WORKDIR>/OAM/logstash.yamlというファイルを、次の内容で作成します:
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: oam-logstash
      namespace: <OAMNS>
    spec:
      selector:
        matchLabels:
          k8s-app: logstash
      template: # create pods using pod definition in this template
        metadata:
          labels:
            k8s-app: logstash
        spec:
          imagePullSecrets:
          - name: dockercred
          containers:
          - command:
            - logstash
            image: logstash:<ELK_VER>
            imagePullPolicy: IfNotPresent
            name: oam-logstash
            env:
            - name: ELASTICSEARCH_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: elasticsearch-pw-elastic
                  key: password
            ports:
            - containerPort: 5044
              name: logstash
            volumeMounts:
            - mountPath: <MOUNT_PATH>
              name: weblogic-domain-storage-volume
            - name: shared-logs
              mountPath: /shared-logs
            - mountPath: /usr/share/logstash/pipeline/
              name: oam-logstash-pipeline
            - mountPath: /usr/share/logstash/config/certs
              name: elk-cert
          volumes:
          - configMap:
              defaultMode: 420
              items:
              - key: ca.crt
                path: elk.crt
              name: elk-cert
            name: elk-cert
          - configMap:
              defaultMode: 420
              items:
              - key: logstash-config.conf
                path: logstash-config.conf
              name: oam-logstash-configmap
            name: oam-logstash-pipeline
          - configMap:
              defaultMode: 420
              items:
              - key: logstash.yaml
                path: logstash.yaml
              name: oam-logstash-configmap
            name: config-volume
          - name: weblogic-domain-storage-volume
            persistentVolumeClaim:
              claimName: <OAM_DOMAIN_NAME>-domain-pvc
          - name: shared-logs
            emptyDir: {}

    ノート:

    独自のレジストリを使用している場合は、レジストリ名をイメージ・タグに含めます。レジストリのregcredシークレットを作成した場合は、imagePullSecretsの名前を、作成したシークレット名に置き換えます。例: regcred
  3. ファイルを保存します。
  4. 次のコマンドを使用して、Logstashデプロイメントを作成します:
    kubectl create -f <WORKDIR>/OAM/logstash.yaml
    たとえば:
    kubectl create -f /workdir/OAM/logstash.yaml
  5. 次のコマンドを使用して、logstashというポッドを作成できます:
    kubectl get pod -n oamns

    これで、Kibanaコンソールでログを使用できるようになります。

構成のバックアップ

ベスト・プラクティスとして、ドメインを正常に拡張した後や別の論理ポイントで構成をバックアップすることをお薦めします。必ずここまでのインストールが成功していることを確認してからバックアップしてください。これは、後のステップで問題が発生した場合に即座にリストアを実行できるクイック・バックアップです。

Kubernetes環境では、永続ボリュームとデータベースをバックアップすれば十分です。

バックアップ先はローカル・ディスクです。エンタープライズ・デプロイメント設定が完了すると、このバックアップは破棄できます。エンタープライズ・デプロイメント設定が完了したら、バックアップとリカバリの通常のデプロイメント固有プロセスを開始できます。

構成をバックアップする方法の詳細は、「エンタープライズ・デプロイメントのバックアップとリカバリの実行」を参照してください。