21 Oracle Advanced Authentication、Oracle Adaptive Risk ManagementおよびOracle Universal Authenticatorのインストールおよび構成

Oracle Advanced AuthenticationおよびRisk Management (OAAおよびOARM)は、マルチファクタ認証を使用してユーザーを認証します。OAuth認証のためにOracle Access Managerと統合されます。

Oracle Access Managerのインストールの詳細は、「WDTを使用したOracle Access Managerの構成」を参照してください。既存のOAMデプロイメントがある場合は、同じデプロイメントを使用できます。従来のOracle Identity and Access Management製品とは異なり、Oracle Advanced Authenticationは一連のマイクロサービスとしてデプロイされます。

このリリースでは、Oracleはスタンドアロン・コンテナ・イメージを使用してOAAをインストールおよび構成します。コンテナ・イメージは、Kubernetesクラスタ内で手動で起動されます。

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

Oracle Advanced Authenticationについて

Oracle Advanced Authentication (OAA)はスタンドアロンのマイクロサービスであり、ユーザーのアイデンティティの確立およびアサートをサポートします。OAAは、複数の認証ファクタ(MFA)を使用した強力な認証を提供します。ユーザーのアイデンティティを確立するために、様々な認証(チャレンジ)ファクタをすぐに利用できます。

OAAは、MFA機能を提供するために、Oracle Access Management (OAM)との統合をサポートしています。

OAAの機能

  • Kubernetesプラットフォーム上でスタンドアロンのマイクロサービスとして実行され、Helmチャートを使用してデプロイされます。
  • マルチファクタ認証(MFA)を有効化するために、次のクライアントとの統合をサポートします:
    • Oracle Access Management (OAM)など、Webベースのユーザー・ログイン・フローを提供するクライアント。OAAは、Trusted Authentication Protocol (TAP)を介してOAMと統合されます。
    • Oracle Radius Agent (ORA)など、APIベースのユーザー・ログイン・フローを提供するクライアント。OAAは、REST APIを介してORAと統合されます。このタイプの統合では、クライアントは独自のユーザー・フロー・オーケストレーションを管理できます。
  • OAMと統合するためのOAAAuthnPluginを提供します。このプラグインは、OAM上のアイデンティティ・ストアからOAAへのユーザー・データの移行も可能にします。
  • 管理者がクライアント登録、保証レベルおよびポルールを作成および管理するためのWeb UI (管理UIコンソール)を提供します。管理者は、REST APIを使用してすべての管理タスクを実行することもできます。
  • エンドユーザーが各自のチャレンジ・ファクタを管理および登録するためのWeb UI (ユーザー・プリファレンスUI)が備えられています。ユーザーの自己登録および管理は、REST APIを使用して実行することもできます。
  • Web UIは、OAM OAuthおよびOpenID Connect (OIDC)によって保護されます。
  • すぐに利用できる次のチャレンジ・ファクタを提供します:
    • Oracle Mobile Authenticator (OMA)、GoogleおよびMicrosoftによるTOTP (時間ベースのワンタイム・パスワード)
    • 電子メールおよびSMSによるOTP (ワンタイム・パスワード)
    • Yubikey OTP
    • FIDO2
    • ナレッジベース認証(KBA)
    • プッシュ通知

Oracle Adaptive Risk Management (OARM)について

Oracle Adaptive Risk Management (OARM)は統合システムで、ユーザーとユーザー・アクティビティに関連するリスク・データの集約や、ユーザーとユーザー・アクティビティによって発生するビジネス・リスクの分析と評価が行われ、そのリスクを軽減するために実行が推奨されるアドバイスが提示されます。

このシステムは、関連付けられたリスク評価に基づいて、ユーザー・アクティビティをブロック、チャレンジまたは許可するリスク軽減アクションを実行するOracle Advanced Authentication (OAA)と統合すると最適に機能します。

このシステムは、スタンドアロン・モードで実行することもでき、アプリケーションを使用して改善措置に関するアドバイスを求めることが可能です。OARMシステムはマイクロサービスをベースとしたアーキテクチャで拡張性が高いため、コストのかかるアップグレード・プロセスを行うことなく機能を追加できます。

OARMの機能

  • OARMシステムの中核はユーザー・アクティビティであり、これはビジネスに適したルールで保護されます。
  • OARMには、すぐに利用可能なユーザー認証アクティビティが用意されており、ビジネスの保護にすぐに使用できる豊富なルールとともに組み込まれています。また、システムには、ユーザー認証アクティビティを追加のルールで強化したり、ビジネスに当てはまらないルールを削除したり、監視する新規ユーザー・アクティビティを追加したりする機能もあります。OARMでは、動作保証された外部ソースからのデータ・フィードのシードがサポートされており、リスク分析にも使用されます。これは、OARMのプロファイリング機能と一緒に使用することで、シード・データが適切に組み合されて分析が実行されます。
  • ルールの構成や、ユーザー・アクティビティの管理とモニタリングは、直感的に設計された管理コンソールで実行できます。管理コンソールを使用すれば、管理者は、基礎となるシステムの違いを気にせず、組織に当てはまるルールを実装できます。
  • OARMとOAAを組み合せると、マルチファクタで最新のチャレンジ・メソッドの豊富なセットとなり、管理者は、ビジネス要件に合ったチャレンジ・メカニズムを選択できます。また、OAAでは、Oracle Access Management Suite (OAM)などの既存のアイデンティティ管理システムとOARMを簡単に統合できます。

Oracle Universal Authenticator (OUA)について

Oracle Universal Authenticatorによって、エンド・ユーザーは、Oracle Access Management (OAM)資格証明を使用してデバイスにログインできます。これにより、エンド・ユーザーは、SSOを介してOAMで保護されたアプリケーションおよび他のシングル・サインオン(SSO)対応のアプリケーションにアクセスできます。

Oracle Universal Authenticatorは、クライアント側とサーバー側の両方の要件に対応します。このガイドでは、サーバー側の構成の側面に関する情報のみを提供します。

ノート:

OUAをインストールする前に、2024年4月のスタック・パッチ・バンドルがOAMインストールに適用されていることを確認する必要があります。

この章で使用される変数

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

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

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

変数 サンプル値 説明

<REGISTRY_ADDRESS>

iad.ocir.io/<mytenancy>

レジストリの場所。

<REGISTRY_SECRET_NAME>

regcred

格納されたレジストリ資格証明を使用して作成したKubernetesシークレットの名前。「コンテナ・レジストリ・シークレットの作成」を参照してください。

<REG_USER>

mytenancy/oracleidentitycloudservice/myemail@email.com

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

<REG_PWD>

<password>

レジストリ・ユーザー・パスワード。

<OAA_MGT_REPOSITORY>

oracle/oaa-mgmt

local/oracle/oaa-mgmt

container-registry.oracle.com/middleware/oaa-mgmt_cpu

<REGISTRY_ADDRESS>/oracle/oaa-mgmt

OAA管理イメージ・ファイルの名前。

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

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

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

<OAAMGT_VER>

12.2.1.4.1_20220419

使用するイメージのバージョン。

<OAA_DEPLOYMENT_TYPE>

both

OAAのみをデプロイするには、oaaに設定します。

OAAとRISKの両方をデプロイするには、bothに設定します。

OAA、RISKおよびOUAをデプロイするには、OUAに設定します。

<OAA_DEPLOYMENT>

edg

デプロイメントに使用される名前。作成される各ポッドには、この値の接頭辞が付きます。

<PVSERVER>

1.1.1.1

永続ボリュームをホストするNFSサーバーの名前またはIPアドレス。

<OAANS>

oaans

OAAオブジェクトを保持するためのKubernetesネームスペース。

<WORKDIR>

/workdir/OAA

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

<OAA_CONFIG_SHARE>

/exports/IAMPVS/oaaconfigpv

OAA構成永続ボリュームのNFSマウント場所。

<OAA_CRED_SHARE>

/exports/IAMPVS/oaacredpv

OAA資格証明永続ボリュームのNFSマウント場所。

<OAA_LOG_SHARE>

/exports/IAMPVS/oaalogpv

OAAログ永続ボリュームのNFSマウント。

<OAA_VAULT_SHARE>

/exports/IAMPVS/oaavaultpv

OAAボールト永続ボリュームのNFSマウント。

<OAA_DB_SID>

iamdb11

使用しているデータベース・インスタンスのORACLE_SID。スキーマはOracle Data Pumpインポート・プログラム(impdp)を使用して作成されるため、この値が必要です。

<OAA_KEYSTORE_PWD>

oaapassword

OAAキーストアに使用されるパスワード。

<OAA_API_PWD>

myAPIpassword

OAA APIを保護するために割り当てられるパスワード。

<UMS_SERVER_URL>

http://governancedomain-cluster-soa-cluster.oigns.svc.cluster.local:8001/ucs/messaging/webservice

電子メール・サーバーのURL。

(スタンドアロンまたはOIGの一部として) Oracle Unified Messagingを使用している場合:

  • OIGがKubernetesクラスタの内部にある場合:

    http://<OIG_DOMAIN_NAME>-cluster-soa-cluster.<OIG>.svc.cluster.local:8001/ucs/messaging/webservice

  • OIGがKubernetesクラスタの外部にある場合:

    http://igdinternal.example.com/ucs/messaging/webservice

<UMS_ADMIN_USER>

weblogic

SMTPサービスのユーザー名。たとえば、統合メッセージング・システム(UMS)のインストールでは、これはWebLogic管理ユーザーの名前です。

<UMS_ADMIN_ PASSWORD>

<password>

<UMS ADMIN USER>アカウントのパスワード。

<SSL_COUNTRY>

US

国コード。

<SSL_STATE>

California

都道府県または地域の名前。

<SSL_CITY>

Redwood

市区町村の名前。

<SSL_ORG>

Oracle Corporation

連絡者の組織の名前

<LDAP_OAMADMIN_USER>

oamadmin

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

<LDAP_USER_PWD>

<mypassword>

すべてのLDAPユーザー・アカウントに割り当てられるパスワード。

<OAA_OAM_TAP_PARTNER>

OAM-OAA-TAP

OAAパートナ・アプリケーションに付ける名前。

<OAA_OUA_TAP_PARTNER>

OAM-OUA-TAP

OUAパートナ・アプリケーションに付ける名前。これは、OUAをデプロイする場合にのみ必要です。

<OAM_LOGIN_LBR_PROTOCOL>

https

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

<OAM_LOGIN_LBR_HOST>

login.example.com

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

<OAM_LOGIN_LBR_PORT>

443

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

<OAA_ADMIN_K8>

30410

OAA管理ポッドのNodePortサービス。

<OAMNS>

oamns

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

<OAM_DOMAIN_NAME>

accessdomain

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

<OAM_ADMIN_LBR_HOST>

iadadmin.example.com

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

<OAM_ADMIN_LBR_PORTT>

80

OAM管理機能の仮想ポート。

<OIG_DOMAIN_NAME>

governancedomain

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

<ELK_HOST>

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

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

<ELK_VER>

8.11.0

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

<LDAP_WLSADMIN_USER>

weblogic_iam

LDAPで定義されたWebLogic管理ユーザー。

<LDAP_WLSADMIN_PWD>

MyPassword

LDAPで定義されたWebLogic管理ユーザー・パスワード。

<OAM_WEBLOGIC_USER>

weblogic

内部WebLogic管理ユーザー。

<OAM_WEBLOGIC_PWD>

MyPassword

内部WebLogic管理ユーザー・パスワード。

<OAA_SPUI_URL>

https://login.example.com:443/oaa/rui/authn/v1

OAAセルフ・サービス・コンソールのURL。

<OAA_POLICY_URL>

https://login.example.com:443/policy

OAAポリシーREST APIのURL。

OAAインストールの特徴

この項では、作成しようとしているOAAインストールの主な特徴を示します。これらの特性を確認して、OAAの構成に使用される手順の目的とコンテキストを理解します。

表21-2 OAAインストールの主な特徴

OAAの特徴 詳細情報

マイクロサービスはそれぞれ、Kubernetesクラスタ内のポッドにデプロイされます。

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

OAAコンポーネントを専用のKubernetesネームスペースに配置します。

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

ファイルベースまたはOCIベースのボールトを使用します。

「ボールトの作成」を参照してください。

Kubernetesサービスを使用してマイクロサービスと対話します。

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

Kubernetes永続ボリュームを使用して構成情報を保持します。

unresolvable-reference.html#GUID-CF07EE44-34D9-4F36-97BE-6B3FBB4FCEA8を参照してください。

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

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

Oracle Access Managerをインストールして構成する必要があります。

「WDTを使用したOracle Identity Governanceの構成」を参照してください。

インストールは、スタンドアロンにも統合にもできます。

「Oracle Advanced Authentication」を参照してください。

Kubernetesサービス

NodePortサービスを使用している場合、OAAインストールの一部としてKubernetesサービスが作成されます。

表21-3 Kubernetes NodePortサービス

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

edg-cache-proxy

NodePort

32394

20000

edg-cache-rest

NodePort

30418

8080

edg-oaa

NodePort

31867

30343

80

443

edg-oaa-admin-ui

NodePort

32405

443

edg-oaa-policy

NodePort

32387

443

edg-email

NodePort

30800

443

edg-fido

NodePort

30017

80

edg-kba

NodePort

31836

443

edg-sms

NodePort

31350

443

edg-spui

NodePort

31573

443

edg-totp

NodePort

30230

443

edg-yotp

NodePort

30548

443

edg-push

NodePort

30550

443

edg-risk

NodePort

30560

443

edg-risk-cc

NodePort

30570

443

edg-oaa-drss

NodePort

30580

443

edg-oua-admin-ui

NodePort

30525

443

開始する前に

インストールを開始する前に、このトピックにリストされているすべての必須タスクが完了していることを確認する必要があります。

次のタスクを完了する必要があります:

ノート:

既存のデプロイメントに追加する場合は、前述の各項に戻って、Oracle Advanced Authenticationのエントリが設定されていることを確認する必要があります。

LDAPにおけるユーザーとグループの作成

Oracle Advanced Authenticationでは、LDAP内で2つのグループを設定する必要があります。

  • OAA-Admin-Role。OAA管理コンソールへのアクセスを許可されたユーザーを認証するために使用されます。
  • OAA-App-User。OAAユーザー・プリファレンス・コンソールへのアクセスを許可されたユーザーのリストが含まれます。

ノート:

  • ユーザーは一度に1つのグループにのみ属することができます。
  • 既存のすべてのユーザーがOAAに属している場合、いずれも既存のOAA-APP-Userグループに属している必要があります。

ユーザーおよびグループを作成するには:

  1. 次の内容を含む/workdir/OAA/oaam_admin.LDIFというLDIFファイルを作成します:

    ノート:

    これは、OAMが有効になったディレクトリの例です。
    dn: cn=oaaadmin,cn=Users,dc=example,dc=com
    changetype: add
    objectClass: orclUserV2
    objectClass: oblixorgperson
    objectClass: person
    objectClass: inetOrgPerson
    objectClass: organizationalPerson
    objectClass: oblixPersonPwdPolicy
    objectClass: orclAppIDUser
    objectClass: orclUser
    objectClass: orclIDXPerson
    objectClass: top
    objectClass: OIMPersonPwdPolicy
    givenName: oaaadmin
    uid: oaaadmin
    orclIsEnabled: ENABLED
    sn: oaaadmin
    userPassword: <Password>
    mail: oamaamin@example.com
    orclSAMAccountName: oaaadmin
    cn: oaaadmin
    obpasswordchangeflag: false
    ds-pwp-password-policy-dn: cn=FAPolicy,cn=pwdPolicies,cn=Common,cn=Products,cn=OracleContext,dc=example,dc=com
    
    dn:cn=OAA-Admin-Role,cn=Groups,dc=example,dc=com
    changetype: add
    objectClass: top
    objectClass: groupofuniquenames
    uniqueMember: cn=oaaadmin,cn=Users,dc=example,dc=com
    
    dn:cn=OAA-App-User,cn=Groups,dc=example,dc=com
    changetype: add
    objectClass: top
    objectClass: groupofuniquenames
    

    ファイルを保存します。

  2. ファイルをLDAPコンテナにコピーします。たとえば:
    kubectl cp workdir/OAA/oaam_admin oudns/edg-oud-ds-rs-0:/u01/oracle/config-input
  3. 次のコマンドを使用して、OUDコンテナに接続します:
    kubectl -n oudns exec -it -c oud-ds-rs edg-oud-ds-rs-0 -- /bin/bash
  4. 次のコマンドを使用して、LDIFファイルをOUDディレクトリにロードします:
    /u01/oracle/oud/bin/ldapmodify -h edg-oud-ds-rs-lbr-ldap.oudns.svc.cluster.local -p 1389 -D cn=oudadmin -w password -f /u01/oracle/config-input/oaam_admin.ldif

OAAユーザー・グループへの既存のユーザーの追加

OAAを使用するように既存のユーザーを構成する場合は、新しく作成したOAA-App-Userグループにそれを追加する必要があります。

  1. LDAPインスタンスで次のコマンドを実行します:
    echo "dn:cn=OAA-App-User,cn=Groups,dc=example,dc=com" > /u01/oracle/config-input/update_group.ldif
    echo "changetype: modify" >> /u01/oracle/config-input/update_group.ldif
    echo "add: uniqueMember" >> /u01/oracle/config-input/update_group.ldif
    /u01/oracle/oud/bin/ldapsearch -h edg-oud-ds-rs-lbr-ldap.oudns.svc.cluster.local -p 1389 -D cn=oudadmin -w password -b cn=Users,dc=example,dc=com "cn=*" dn | grep -v oaaadmin | grep -v "dn: cn=Users,dc=example,dc=com" | grep cn| awk ' { print "uniqueMember: "$2 } ' >> /u01/oracle/config-input/update_group.ldif

    前述のコマンドは、既存のすべてのユーザーをOAA-App-Userグループに追加するために使用できるLDIFファイルを作成します。

  2. 生成された/u01/oracle/config-input/update_group.ldifファイルを確認し、グループに追加しないユーザーを削除します。
  3. LDIFファイルを使用する準備ができたら、次のコマンドを実行します:
    /u01/oracle/oud/bin/ldapmodify -h edg-oud-ds-rs-lbr-ldap.oudns.svc.cluster.local -p 1389 -D cn=oudadmin -w password -f /u01/oracle/config-input/update_group.ldif

既存のOAAユーザーに対するLDAP属性obpsftidの設定

既存のOAAユーザー(LDAPグループOAA-App-Userのメンバーであるユーザー)に対して永続ログインを有効にするには、各LDAPユーザーのLDAP属性obpsftidをtrueに設定する必要があります。

次のステップを実行して、LDAP属性obpsftidを設定します:

  1. 次の詳細を使用して、modify_oaa_user.ldapというファイルを作成します:
    
    dn: cn=<username>,<LDAP_USER_SEARCHBASE>
    changetype: modify
    replace: obpsftid
    obpsftid: true

    例:

    
    dn: cn=oaauser,cn=Users,dc=example,dc=com
    changetype: modify
    replace: obpsftid
    obpsftid: true
  2. LDAPインスタンスから次のコマンドを実行して、buを更新します:
    /u01/oracle/oud/bin/ldapmodify -h edg-oud-ds-rs-lbr-ldap.oudns.svc.cluster.local -p 1389 -D
            cn=oudadmin -w password -f
          /u01/oracle/config-input/modify_oaa_user.ldif

    ノート:

    グループOAA-App-Userの各ユーザーに対して更新を実行する必要があります。
  3. LDAPインスタンスから次のLDAPコマンドを実行して、OAA-App-Userグループのメンバーのリストを取得します:
    /u01/oracle/oud/bin/ldapsearch -h "<LDAP_HOST>" -p "<LDAP_PORT>" -D
            "<LDAP_ADMIN_USER>" -w "<LDAP_ADMIN_PWD>" -b
            "cn=<OAA_USER_GROUP>,<LDAP_GROUP_SEARCHBASE>" "cn=*" uniqueMember

    例:

    /u01/oracle/oud/bin/ldapsearch -h edg-oud-ds-rs-lbr-ldap.oudns.svc.cluster.local -p 1389 -D
            cn=oudadmin -w password -b "cn=OAA-App-User,cn=Groups,dc=example,dc=com" "cn=*"
            uniqueMember

Kubernetesネームスペースの作成

Kubernetesネームスペースは、OAAオブジェクトを格納するために使用されます。

次のコマンドを使用して、OAAのネームスペースを作成します:
kubectl create namespace <OAANS>
たとえば:
kubectl create namespace oaans

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

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

コンテナ・イメージをローカルにステージングした場合は、このステップは必要ありません。コンテナ・レジストリを使用することを強くお薦めします。

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

ノート:

OAAネームスペースにレジストリ・シークレットを作成する必要があります。

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

このシークレットを使用すると、Kubernetesはhelmkubectllogstashコマンドなど、サードパーティのイメージを含むhub.docker.comからイメージをプルできます。これらのコマンドは、OUD cronジョブで、「終了中」状態から動かないポッドをテストし、必要に応じて再起動するために使用されます。

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=<OUDNS>
たとえば:
$ kubectl create secret docker-registry dockercred --docker-server="https://index.docker.io/v1/" --docker-username="username" --docker-password="<mypassword>" --namespace=oudns

GitHubシークレットの作成

OAAは、GitHubの一部のコンテナに依存します。これらのイメージをGitHubから直接プルする場合は、GitHub資格証明を使用してシークレットを作成する必要があります。「GitHubへのログイン」を参照してください。
ネームスペースにgitcredというシークレットを作成するには、次のコマンドを使用します:
kubectl create secret -n oaans docker-registry gitcred --docker-server=ghcr.io --docker-username=mygituser --docker-password="mytoken"

このシークレットは、oaaネームスペースに作成する必要があります。

管理コンテナの起動

管理コンテナを起動する前に、永続ボリュームが作成されていることを確認します。

「ファイル・システムとマウント・ターゲットの作成」を参照してください。

管理コンテナを起動するには:

  1. 次の内容を含むoaa-mgmt.yamlというファイルを作成します:
    apiVersion: v1
    kind: Pod
    metadata:
      name: oaa-mgmt
      namespace: <OAANS>
      labels:
        app: oaamgmt
    spec:
      restartPolicy: OnFailure
      volumes:
        - name: oaaconfigpv
          nfs:
            server: <PVSERVER>
            path: <OAA_CONFIG_SHARE>
        - name: oaacred
          nfs:
            server: <PVSERVER>
            path: <OAA_CRED_SHARE>
        - name: oaalogpv
          nfs:
            server: <PVSERVER>
            path: <OAA_LOG_SHARE>
        - name: oaavaultpv
          nfs:
            server: <PVSERVER>
            path: <OAA_VAULT_SHARE>
      containers:
      - name: oaamgmt
        image: <OAA_MGT_REPOSITORY>:<OAAMGT_VER>
        volumeMounts:
          - name: oaaconfigpv
            mountPath: /u01/oracle/scripts/settings
          - name: oaacred
            mountPath: /u01/oracle/scripts/creds
          - name: oaalogpv
            mountPath: /u01/oracle/logs
          - name: oaavaultpv
            mountPath: /u01/oracle/service/store/oaa
        command: ["/bin/bash", "-ec", "tail -f /dev/null"]
      imagePullSecrets:
        - name: <REGISTRY_SECRET_NAME>
    たとえば:
    apiVersion: v1
    kind: Pod
    metadata:
      name: oaa-mgmt
      namespace: oaans
      labels:
        app: oaamgmt
    spec:
      restartPolicy: OnFailure
      volumes:
        - name: oaaconfigpv
          nfs:
            server: 0.0.0.0
            path: /exports/IAMPVS/oaaconfigpv
        - name: oaacred
          nfs:
            server: 0.0.0.0
            path: /exports/IAMPVS/oaacredpv
        - name: oaalogpv
          nfs:
            server: 0.0.0.0
            path: /exports/IAMPVS/oaalogpv
        - name: oaavaultpv
          nfs:
            server: 0.0.0.0
            path: /exports/IAMPVS/oaavaultpv
      containers:
      - name: oaamgmt
        image: iad.ocir.io/mytenancy/oaa-mgmt:12.2.1.4.1_20220419
        volumeMounts:
          - name: oaaconfigpv
            mountPath: /u01/oracle/scripts/settings
          - name: oaacred
            mountPath: /u01/oracle/scripts/creds
          - name: oaalogpv
            mountPath: /u01/oracle/logs
          - name: oaavaultpv
            mountPath: /u01/oracle/service/store/oaa
        command: ["/bin/bash", "-ec", "tail -f /dev/null"]
      imagePullSecrets:
        - name: regcred
  2. 次のコマンドを使用して、管理CLIコンテナを起動します:
    kubectl create -f oaa-mgmt.yaml
  3. 次のコマンドを使用して、実行中のコンテナに接続します:
    kubectl exec -n oaans -ti oaa-mgmt –- /bin/bash

ノート:

例で「OAA-MGMT内から次のコマンドを使用」と指示されている場合は、この項の説明に従って実行中のコンテナに接続して、指定されたとおりにコマンドを実行する必要があります。

Kubernetesクラスタへの管理コンテナ・アクセス権の付与

OAA管理コンテナには、Kubernetesクラスタと対話するための組込みコマンドがあります。管理コンテナに、Kubernetesクラスタへのアクセス方法の詳細を指定する必要があります。

アクセスを提供するには、kubectlコマンドが機能しているノードで次のステップを実行します:

Kubernetesサービス・シークレットの作成

Kubernetes 1.24リリース以降を使用している場合は、次のコマンドを使用してKubernetesサービス・アカウントのシークレットを作成する必要があります:
kubectl create -f <WORKDIR>/create_svc_secret.yaml
たとえば:
kubectl create -f /workdir/OIRI/create_svc_secret.yaml
ここで、<WORKDIR>/create_svc_secret.yamlの内容は次のとおりです:
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
 name: oaa-service-account
 namespace: <OAANS>
 annotations:
  kubernetes.io/service-account.name: "oaa-service-account"

Kubernetesサービス・アカウントの作成

次のコマンドを使用して、OAAネームスペースにKubernetesサービス・アカウントを作成します:
kubectl apply -f <WORKDIR>/create_svc.yaml
たとえば:
kubectl apply -f /workdir/OAA/create_svc.yaml
ここで、<WORKDIR>/create_svc.yamlの内容は次のとおりです:
apiVersion: v1
kind: ServiceAccount
metadata:
  name: oaa-service-account
  namespace: <OAANS>
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: oaa-ns-role
  namespace: <OAANS>
rules:
- apiGroups: ["*"]
  resources: ["*","secrets"]
  verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: oaa-clusterrolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:persistent-volume-provisioner
subjects:
- namespace: <OAANS>
  kind: ServiceAccount
  name: oaa-service-account
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: oaa-clusteradmin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- namespace: <OAANS>
  kind: ServiceAccount
  name: oaa-service-account
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: oaa-rolebinding
  namespace: <OAANS>
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: oaa-ns-role
subjects:
- namespace: <OAANS>
  kind: ServiceAccount
  name: oaa-service-account

ca.crt証明書の生成

次のコマンドを使用してKubernetes証明書を取得します:

OAAネームスペースの環境変数および作業ディレクトリを設定します。
OAANS=oaans
WORKDIR=/workdir/OAA
Kubernetes 1.23以前のリリースの場合は、次のコマンドを使用します:
TOKENNAME=`kubectl -n $OAANS get serviceaccount/oaa-service-account -o jsonpath='{.secrets[0].name}'`
Kubernetes 1.24以降のリリースの場合は、次のコマンドを使用します:
TOKENNAME=oaa-service-account
TOKEN=`kubectl -n $OAANS get secret $TOKENNAME -o jsonpath='{.data.token}'| base64 --decode`
kubectl -n $OAANS get secret $TOKENNAME -o jsonpath='{.data.ca\.crt}'| base64 --decode > $WORKDIR/ca.crt

OAA用のKubernetes構成ファイルの作成

Kubernetes構成ファイルを生成して、kubectlとの対話方法をOAAに指示します。

OAAネームスペースの環境変数および作業ディレクトリを設定します。

ノート:

開始する前に、KUBECONFIGをKubernetes構成ファイルに設定していることを確認してください。
OAANS=oaans
WORKDIR=/workdir/OAA
TOKEN=`kubectl -n $OAANS get secret $TOKENNAME -o jsonpath='{.data.token}'| base64 --decode`
K8URL=`grep server: $KUBECONFIG | sed 's/server://;s/ //g'`
kubectl config --kubeconfig=$WORKDIR/oaa_config set-cluster oaa-cluster --server=$K8URL --certificate-authority=$WORKDIR/ca.crt --embed-certs=true
kubectl config --kubeconfig=$WORKDIR/oaa_config set-credentials oaa-service-account --token=$TOKEN
kubectl config --kubeconfig=$WORKDIR/oaa_config set-context oaa --user=oaa-service-account --cluster=oaa-cluster
kubectl config --kubeconfig=$WORKDIR/oaa_config use-context oaa

これらのコマンドは、oaa_configというファイルを<WORKDIR>の場所に生成します。このファイルには、Kubernetesクラスタの詳細が含まれます。

OAA-MGMTコンテナへのファイルのコピー

次のコマンドを使用して、ca.crt (「ca.crt証明書の生成」を参照)およびoaa_config (「OAA用のKubernetes構成ファイルの作成」を参照)ファイルをOAA-MGMTコンテナにコピーします:
OAANS=oaans
WORKDIR=/workdir/OAA
kubectl cp $WORKDIR/ca.crt $OAANS/oaa-mgmt:/u01/oracle/scripts/creds
kubectl cp $WORKDIR/oaa_config $OAANS/oaa-mgmt:/u01/oracle/scripts/creds/k8sconfig
oaa-mgmtから、次のコマンドを実行します:
chmod 400 /u01/oracle/scripts/creds/k8sconfig

kubectlコマンドの検証

OAA-MGMTコンテナから次のコマンドを使用して、Kubernetesコンテナ内からkubectlコマンドが機能することを検証します:
kubectl get pod -n $OAANS
たとえば:
kubectl get pod -n oaans

このコマンドは、実行中のoaa-mgmtポッドを表示します。

Helm構成ファイルの作成

OAAインストール手順は、存在しているhelmconfigファイルに依存します。このファイルは、ほとんど常に空のファイルです。

helmconfigファイルを作成するには:
  1. 次のコマンドを使用して、OAA-MGMTポッドにアクセスします:
    kubectl -n oaans exec -it oaa-mgmt -- /bin/bash
  2. OAA-MGMTポッド内から、次の内容を含む/u01/oracle/scripts/creds/helmconfigというファイルを作成します:
    apiVersion: ""
    generated: "0001-01-01T00:00:00Z"
    repositories:
    - caFile: ""
      certFile: ""
      keyFile: ""
      name: idm-helm
      password: ""
      url:
      username: ""
  3. ファイルを保存します。

OAAサーバー証明書の作成

OAAで使用する証明書を作成する必要があります。OAAは、SSL通信のみを使用して構成されます。

証明書を作成するには、次のステップを実行します:

OAM証明書の取得

OAMサーバーはSSLを使用して構成されます。特に、このガイドのOAMをデプロイする手順に従った場合は、これはロード・バランサで終端する可能性が高くなります。「WDTを使用したOracle Access Managerの構成」を参照してください。OAAがOAMと正常に通信するためには、OAMを信頼する必要があります。この信頼を構築するには、次のステップで作成するOAAトラスト・ストアにOAM証明書を追加する必要があります。

ロード・バランサの証明書は、Firefoxなどのブラウザを使用して取得できます。ただし、証明書を取得する最も簡単な方法は、opensslコマンドを使用します。コマンドの構文は、次のとおりです。
openssl s_client -connect LOADBALANCER -showcerts </dev/null 2>/dev/null|openssl x509 -outform PEM >/workdir/OAA/LOADBALANCER.pem
たとえば:
openssl s_client -connect login.example.com:443 -showcerts </dev/null 2>/dev/null|openssl x509 -outform PEM >/workdir/OAA/login.example.com.pem

opensslコマンドにより、証明書が/workdir/OAAディレクトリのlogin.example.com.pemというファイルに保存されます。

OAAトラスト・ストアの作成

OAAトラスト・ストアを作成するには:
  1. キー・ファイルを作成します。
    export WORKDIR=/workdir/OAA
    openssl genrsa -out $WORKDIR/ca.key 4096
  2. ルート証明書を作成します。
    openssl req -new -x509 -days 3650 -key $WORKDIR/ca.key -out $WORKDIR/ca.crt -subj "/C=<COUNTRY>/ST=<STATE>/L=<CITY>/O=<ORG>/CN=CARoot"
    たとえば:
    openssl req -new -x509 -days 3650 -key $WORKDIR/ca.key -out $WORKDIR/ca.crt -subj "/C=US/ST=California/L=Redwood/O=Oracle Corporation/CN=CARoot"
  3. トラスト・ストアを生成します。
    openssl pkcs12 -export -out $WORKDIR/trust.p12 -nokeys -in $WORKDIR/ca.crt -passout pass:<OAA_KEYSTORE_PWD>

    トラスト・ストアに割り当てるパスワードをメモします。これは後で必要になります。

  4. ルート証明書およびトラスト・ストアを確認します。

    次のコマンドを使用して、ルート証明書およびトラスト・ストアを作成することを確認できます:

    openssl rsa -in $WORKDIR/ca.key -check
    openssl x509 -in $WORKDIR/ca.crt -text  -noout
    openssl pkcs12 -nokeys -info -in $WORKDIR/trust.p12

    要求されたら、トラスト・ストアのパスワードを入力します。

サーバー証明書の作成

サーバー証明書を作成するには:
  1. サーバー・キーを作成します。
    openssl genrsa -out $WORKDIR/oaa.key 4096
  2. サーバー証明書を作成します。
    openssl req -new -key $WORKDIR/ssl/oaa.key -out $WORKDIR/ssl/cert.csr -subj "/C=$SSL_COUNTRY/ST=$SSL_STATE/L=$SSL_CITY/O=$SSL_ORG/CN=$OAM_LOGIN_LBR_HOST"
    たとえば:
    openssl req -new -key $WORKDIR/oaa.key -out $WORKDIR/cert.csr -subj "/C=US/ST=California/L=Redwood/O=Oracle Corporation/CN=login.example.com"
  3. 自己署名リクエストを作成します。
    openssl x509 -req -days 1826 -in $WORKDIR/cert.csr -CA $WORKDIR/ca.crt -CAkey $WORKDIR/ca.key -set_serial 01 -out $WORKDIR/oaa.crt
  4. PKCS12形式に変換します。
    openssl pkcs12 -export -out $WORKDIR/cert.p12 -inkey $WORKDIR/oaa.key -in $WORKDIR/oaa.crt -chain -CAfile $WORKDIR/ca.crt -passout pass:<OAA_KEYSTORE_PWD>

トラスト・ストアへのOAM証明書の追加

OAAとOAM間の信頼を確立するには、OAMのロード・バランサ証明書をトラスト・ストアに追加する必要があります。
  1. ロード・バランサの証明書は、Firefoxなどのブラウザを使用して取得できます。ただし、証明書を取得する最も簡単な方法は、opensslコマンドを使用します。コマンドの構文は、次のとおりです。
    openssl s_client -connect LOADBALANCER -showcerts </dev/null 2>/dev/null|openssl x509 -outform PEM >/workdir/OAA/LOADBALANCER.pem
    たとえば:
    openssl s_client -connect login.example.com:443 -showcerts </dev/null 2>/dev/null|openssl x509 -outform PEM >/workdir/OAA/login.example.com.pem

    opensslコマンドにより、証明書が/workdir/OAAディレクトリのlogin.example.com.pemというファイルに保存されます。

  2. OAA証明書をプライバシ強化メール(PEM)形式に変換します。
    export WORKDIR=/workdir/OAA
    openssl x509 -in $WORKDIR/oaa.crt -out $WORKDIR/oaa.pem -outform PEM
  3. 既存の認証局を証明書バンドルにエクスポートします。
    openssl pkcs12 -in $WORKDIR/trust.p12 -out $WORKDIR/bundle.pem -cacerts -nokeys -passin pass:<OAM_KEYSTORE_PWD>
  4. OAM証明書を証明書バンドルにコピーします。
    cat $WORKDIR/login.example.com.pem >> $WORKDIR/bundle.pem
  5. 証明書バンドルから新しいトラスト・ストアを作成します。
    openssl pkcs12 -export -in $WORKDIR/bundle.pem -nokeys -out $WORKDIR/trust.p12 -passout pass:<OAA_KEYSTORE_PWD>

Mgmtポッドへの証明書ファイルのコピー

次のコマンドを使用して、ファイルをMgmtポッドにコピーします:
kubectl cp $WORKDIR/trust.p12 oaans/oaa-mgmt:/u01/oracle/scripts/creds/trust.p12
kubectl cp $WORKDIR/cert.p12 oaans/oaa-mgmt:/u01/oracle/scripts/creds/cert.p12

OAM TAPパートナの登録

OAAおよびOUAがよりセキュアな方法でOAMで認証できるようにするために使用されるOAM TAPパートナを登録する必要があります。

OAM TAPパートナとしてのOAAの登録

OAMがOAAを信頼するように、OAAをTrusted Authentication Protocol (TAP)パートナとしてOAMに登録する必要があります。
  1. 次のコマンドを使用して、OAM管理ポッドに接続します:
    kubectl exec -n oamns -it accessdomain-adminserver -- /bin/bash
  2. 次のコマンドを使用して、WebLogic Scripting Tool (WLST)を起動します:
    /u01/oracle/oracle_common/common/bin/wlst.sh
  3. 次のコマンドを使用して、OAM管理サーバーに接続します:
    connect('WeblogicAdminUser','<WeblogicAdminPassword>','t3://<domain_name>domain-adminserver.<namespace>:<Admin_Port>'
    たとえば:
    connect('weblogic','<password>','t3://accessdomain-adminserver.oamns.svc.cluster.local:30701')
  4. 次のコマンドを実行して、OAA TAPパートナを登録します:
    registerThirdPartyTAPPartner(partnerName = "<OAA_OAM_TAP_PARTNER>", keystoreLocation= "<K8_WORKDIR>/OAMOAAKeyStore.jks", password="<OAA_KEYSTORE_PWD>", tapTokenVersion="v2.0", tapScheme="TAPScheme", tapRedirectUrl="<OAM_LOGIN_LBR_PROTOCOL>://<OAM_LOGIN_LBR_HOST>:<OAM_LOGIN_LBR_PORT>/oam/pages/login.jsp")
    たとえば:
    registerThirdPartyTAPPartner(partnerName = "OAM-OAA-TAP", keystoreLocation= "/u01/oracle/user_projects/workdir/OAMOAAKeyStore.jks", password="keystorepassword", tapTokenVersion="v2.0", tapScheme="TAPScheme", tapRedirectUrl="https://login.example.com:443/oam/pages/login.jsp")
  5. 結果のキーストア・ファイルを作業ディレクトリにコピーします:
    kubectl cp oamns/accessdomain-adminserver:/u01/oracle/user_projects/workdir/OAMOAAKeyStore.jks /workdir/OAA

OAP TAPパートナとしてのOUAの登録

OUMがOAAを信頼するように、OUAをTrusted Authentication Protocol (TAP)パートナとしてOAMに登録する必要があります。これは、OUAをデプロイする場合にのみ必要です。
  1. 次のコマンドを使用して、OAM管理ポッドに接続します:
    kubectl exec -n oamns -it accessdomain-adminserver -- /bin/bash
  2. 次のコマンドを使用して、WebLogic Scripting Tool (WLST)を起動します:
    /u01/oracle/oracle_common/common/bin/wlst.sh
  3. 次のコマンドを使用して、OAM管理サーバーに接続します:
    connect('WeblogicAdminUser','<WeblogicAdminPassword>','t3://<domain_name>domain-adminserver.<namespace>:<Admin_Port>'
    たとえば:
    connect('weblogic','<password>','t3://accessdomain-adminserver.oamns.svc.cluster.local:30701')
  4. 次のコマンドを実行して、OAA TAPパートナを登録します:
    registerThirdPartyTAPPartner(partnerName="<OAA_OUA_TAP_PARTNER>", keystoreLocation= "<K8_WORKDIR>/OAMOUAKeyStore.jks", password="<OAA_KEYSTORE_PWD>", tapTokenVersion="v2.0", tapScheme="TAPScheme", tapRedirectUrl="<OAM_LOGIN_LBR_PROTOCOL>://<OAM_LOGIN_LBR_HOST>:<OAM_LOGIN_LBR_PORT>/oam/pages/login.jsp")
    たとえば:
    registerThirdPartyTAPPartner(partnerName="OAM-OUA-TAP", keystoreLocation= "/u01/oracle/user_projects/workdir/OAMOUAKeyStore.jks", password="keystorepassword", tapTokenVersion="v2.0", tapScheme="TAPScheme", tapRedirectUrl="https://login.example.com:443/oam/pages/login.jsp")
  5. 結果のキーストア・ファイルを作業ディレクトリにコピーします:
    kubectl cp oamns/accessdomain-adminserver:/u01/oracle/user_projects/workdir/OAMOUAKeyStore.jks /workdir/OAA
  6. 次のコマンドを使用して、キーファイルを管理コンテナにコピーします:
    kubectl cp /workdir/OAA/OAMOUAKeyStore.jks oaans/oaa-mgmt:/u01/oracle/scripts/creds/OAMOUAKeyStore.jks

OAAプロパティ・ファイルの作成

OAAデプロイメントは、プロパティ・ファイル内の値に依存します。このファイルは、データベース・スキーマの作成およびOAA自体のデプロイに使用されます。ファイルを作成するステップは、OAA-MGMTポッド内で実行されます。

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

テンプレート・ファイルのコピー

指定されたテンプレート・ファイルを正しい場所にコピーします:
cp /u01/oracle/installsettings/installOAA.properties /u01/oracle/scripts/settings/installOAA.properties
cp /u01/oracle/installsettings/oaaoverride.yaml /u01/oracle/scripts/settings/oaaoverride.yaml

プロパティ・ファイルの更新

この項の説明に従って、プロパティ・ファイル内の値を更新します。パラメータを変更する場合は、そのパラメータがプロパティ・ファイルのコメントに挿入されていないことを確認します。

/u01/oracle/scripts/settings/installOAA.propertiesファイルを更新する必要があります。

データベース・パラメータ

表21-4 データベース・パラメータ

パラメータ サンプル値 コメント

database.createschema

true

OAAスキーマを作成するには、この値を設定します。

database.host

dbscan.example.com

この値は、データベース・サーバーのSCANアドレスに設定します。

database.port

1521

データベース・リスナー・ポート。

database.svc

oaaedg.example.com

OAAデータベース・サービスの名前。

database.syspassword

-

この値は、データベースのSYSパスワードに設定します。パラメータがコメント内に挿入されていないことを確認します。

database.schema

EDG_OAA

使用するデータベース・スキーマ接頭辞。

database.tablespace

EDG_OAA_OAA_TB

作成する表領域の名前。管理しやすいようにスキーマ接頭辞を含めます。

database.schemapassword

-

OAAデータベース・スキーマに割り当てられるパスワード。

database.name

-

このパラメータに追加された値がないことを確認します。

共通のデプロイメント・パラメータ

表21-5 共通のデプロイメント・パラメータ

パラメータ サンプル値 コメント

common.deployment.mode

OAA

both

OUA

デプロイメントのタイプには次が含まれます:
  • OAA (OAAのみの場合)。

  • both (OAAとRISKの場合)。

  • OUA (OAA、RISKおよびOUAの場合)。

common.deployment.name

edg

Helmに表示されるデプロイメントの名前。

ノート: oaaはシステム使用のために予約されているため、使用しないでください。

common.kube.namespace

oaans

OAAオブジェクトを保持するために使用するネームスペースの名前。

common.deployment.keystorepassphrase

-

サーバー証明書を作成したときに使用したパスワード。「サーバー証明書の作成」を参照してください。

common.deployment.truststorepassphrase

-

トラスト・ストアを作成したときに使用したパスワード。「OAAトラスト・ストアの作成」を参照してください。

common.deployment.overridefile

/u01/oracle/scripts/settings/oaaoverride.yaml

この値がコメント内に挿入されていないことを確認します。

common.deployment.import.snapshot

true

10月リリースでは、データベース・スキーマはシードされません。このリリースでは、この値をtrueに設定する必要があります。

ノート: スナップショットをインポートしたら、今後のアップグレードでデータが上書きされないように、この値をfalseに設定します。

common.deployment.import.snapshot.file

/u01/oracle/scripts/oarm-12.2.1.4.1-base-snapshot.zip

10月リリースでは、データベース・スキーマはシードされません。この値は、管理コンテナに存在するスナップショット・ファイルの場所に設定する必要があります。記載されているファイルはデフォルト値です。My Oracle Supportから最新バージョンをダウンロードする場合は、ドキュメントID 2723908.1を参照してください。

oauth.domainname

OAADomain

OHSリライト・ルールで追加した値と同じ値を使用します。「Oracle Advanced Authentication、Oracle Adaptive Risk ManagementおよびOracle Universal Authenticator用のOracle HTTP Serverの構成」のステップ4を参照してください。

oauth.identityprovider

OAMIDSTORE

OAM IDストアの名前。「構成ファイルの作成」を参照してください。

oauth.clientpassword

-

OAM Oauthの対話に使用するパスワード。

oauth.adminurl

http://accessdomain-adminserver.oamns.svc.cluster.local:7001

http://iadadmin.example.com/

Oracle Access Manager管理サーバーへのアクセスに使用するURL。OAMがKubernetesクラスタ内にある場合は、内部OAMサービス名を使用する必要があります。それ以外の場合は、OAM管理URLを使用する必要があります。

oauth.basicauthzheader

-

OAM管理ユーザーのエンコードされたユーザー名とパスワードの値(*)。

oauth.identityuri

https://login.example.com:443/

OAMのパブリック・エントリ・ポイント。

oauth.redirecturl

https://login.example.com:443/

OAMのパブリック・エントリ・ポイント。

install.global.serviceurl

https://login.example.com:443/

OAAアプリケーションの実行時操作のメイン・エントリ・ポイント。

install.oaa-admin-ui.serviceurl

http://iadadmin.example.com:80

OAAアプリケーションの管理操作のメイン・エントリ・ポイント。

(*)ユーザー名とパスワードをエンコードするには、次のコマンドを使用します:
echo -n <LDAP_OAMADMIN_USER>:<LDAP_USER_PWD> | base64
たとえば:
echo -n oamadmin:mypassword | base64
イングレス・パラメータ

イングレス・コントローラを使用する場合は、インストールでイングレス・サービスが自動的に作成されます。これらの値を指定して、イングレス用にOAAを構成します。

表21-6 イングレス・パラメータ

パラメータ 説明

install.global.ingress.enabled

true

イングレス・サービスを作成するには、この値をtrueに設定します。

install.global.ingress.runtime.host

login.example.com

この値は、実行時操作に使用される仮想ホストの名前に設定します。

install.global.ingress.admin.host

iadadmin.example.com

この値は、管理操作に使用される仮想ホストの名前に設定します。

ファイル・ベースのボールト

OAA用のボールトを作成する場合、2つの選択肢があります。ファイル・ベースのボールトまたはOCIボールトを使用できます。OCIボールトを使用することをお薦めします。ただし、ファイル・ベースのボールトを使用する場合は、プロパティ・ファイルで次のパラメータを設定する必要があります:

表21-7 ファイル・ベースのボールトのパラメータ

パラメータ コメント

vault.deploy.name

oaavault

ボールトの名前。

vault.provider

fks

ボールトのタイプ。fksはファイルベースのボールトです。

vault.fks.server

0.0.0.0

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

vault.fks.path

/exports/IAMPVS/oaavaultpv

ファイル・システムのNFSエクスポート名。

vault.fks.key

-

ボールトにアクセスするために使用されるパスワード。

OCIベースのボールト

OCIベースのボールトを使用する場合は、プロパティ・ファイルで次のパラメータを設定する必要があります:

ノート:

表21-8に示すvault.ociパラメータはそれぞれ、Base64でエンコードする必要があります。Base64でエンコードするには、次のコマンドを実行します:
echo -n "value" | base64

表21-8 OCIベースのボールトのパラメータ

パラメータ コメント

vault.deploy.name

oaavault

ボールトの名前。

vault.provider

oci

ボールトのタイプ。ociはociベースのボールトです。

vault.oci.uasoperator

-

この値を取得するには、ボールトの作成時にダウンロードしたAPIキーの値をエンコードします。「ボールトの作成」を参照してください。

vault.oci.tenancyId

-

この値を取得するには、OCIコンソールにログインし、「プロファイル」に移動して「テナンシ」をクリックします。Base64としてエンコードされたOCID値を使用します。

vault.oci.userId

-

この値を取得するには、OCIコンソールにログインし、「プロファイル」に移動して「ユーザー名」をクリックします。Base64としてエンコードされたOCID値を使用します。

vault.oci.compartmentId

-

この値を取得するには、OCIコンソールにログインし、「アイデンティティとセキュリティ」に移動して「コンパートメント」をクリックします。ボールトを作成したコンパートメントを選択し、Base64としてエンコードされたOCID値を使用します。

vault.oci.fpId

-

この値を取得するには、OCIコンソールにログインし、「プロファイル」に移動して「ユーザー設定」を選択し、「APIキー」をクリックします。前に作成したAPIキーのフィンガープリントの値を使用します。「ボールトの作成」を参照してください。

vault.oci.vaultId

-

この値を取得するには、OCIコンソールにログインし、「アイデンティティとセキュリティ」に移動して「Vault」を選択します。前に作成したボールトをクリックします。「ボールトの作成」を参照してください。Base64としてエンコードされたOCID値を使用します。

vault.oci.keyId

-

この値を取得するには、OCIコンソールにログインし、「アイデンティティとセキュリティ」に移動して「Vault」を選択し、前に作成したボールトをクリックします。「ボールトの作成」を参照してください。前に作成したキーをクリックします。たとえば、masterkeyです。Base64としてエンコードされたOCID値を使用します。

OUAパラメータ

Oracle Universal Authenticatorをデプロイする場合、次のパラメータを設定する必要があります。

表21-9 OUAパラメータ

パラメータ コメント

oua.tapAgentName

OAM-OUA-TAP

「OAP TAPパートナとしてのOUAの登録」で作成したOUA TAPエージェントの名前。

oua.tapAgentFileLocation

/u01/oracle/scripts/creds/OAMOUAKeyStore.jks

OAA管理コンテナ内のキーストア・ファイルの場所。

oua.tapAgentFilePass

keystorepassword

「OAP TAPパートナとしてのOUAの登録」で作成したキーストア・ファイルのパスワード。このパスワード値は、bas64でエンコードする必要があります。たとえば、echo -n keystorepassword | base64です。

oua.oamRuntimeEndpoint

https://login.example.com:443/

OAMのパブリック・エントリ・ポイント。

汎用パラメータ

表21-10 汎用パラメータ

パラメータ コメント

install.global.repo

iad.ocir.io/mytenancy

コンテナ・レジストリの名前。

install.global.imagePullSecrets\[0\].name

regcred

コンテナ・レジストリ資格証明を含むKubernetesシークレットの名前。

install.global.imagePullSecrets\[1\].name

gitcred

GitHub資格証明を含むKubernetesシークレットの名前。

install.global.image.tag

12.2.1.4.1-20220127

インストールするOAAのバージョン。

install.global.oauth.logouturl

https://login.example.com:443/oam/server/logout

OAMログアウトURL。

install.global.uasapikey

myAPIpassword

OAA REST APIに使用するパスワード。

install.global.policyapikey

myAPIpassword

ポリシーREST APIに使用するパスワード。

install.global.factorsapikey

myAPIpassword

ファクタREST APIに使用するパスワード。

install.global.riskapikey

myAPIpassword

リスクREST APIに使用するパスワード。

install.global.drssapikey

myAPIpassword

DRSS REST APIに使用する必要があるパスワード。

install.oaa-admin-ui.service.type

ClusterIP

NodePort

作成するKubernetesサービスのタイプ。イングレスを使用している場合は、ClusterIPを使用します。それ以外の場合は、NodePortを使用します。

install.oaa-policy.service.type

ClusterIP

NodePort

作成するKubernetesサービスのタイプ。イングレスを使用している場合は、ClusterIPを使用します。それ以外の場合は、NodePortを使用します。

install.spui.service.type

ClusterIP

NodePort

作成するKubernetesサービスのタイプ。イングレスを使用している場合は、ClusterIPを使用します。それ以外の場合は、NodePortを使用します。

install.totp.service.type

ClusterIP

NodePort

作成するKubernetesサービスのタイプ。イングレスを使用している場合は、ClusterIPを使用します。それ以外の場合は、NodePortを使用します。

install.fido.service.type

ClusterIP

NodePort

作成するKubernetesサービスのタイプ。イングレスを使用している場合は、ClusterIPを使用します。それ以外の場合は、NodePortを使用します。

install.push.service.type

ClusterIP

NodePort

作成するKubernetesサービスのタイプ。イングレスを使用している場合は、ClusterIPを使用します。それ以外の場合は、NodePortを使用します。

install.email.service.type

ClusterIP

NodePort

作成するKubernetesサービスのタイプ。イングレスを使用している場合は、ClusterIPを使用します。それ以外の場合は、NodePortを使用します。

install.sms.service.type

ClusterIP

NodePort

作成するKubernetesサービスのタイプ。イングレスを使用している場合は、ClusterIPを使用します。それ以外の場合は、NodePortを使用します。

install.yotp.service.type

ClusterIP

NodePort

作成するKubernetesサービスのタイプ。イングレスを使用している場合は、ClusterIPを使用します。それ以外の場合は、NodePortを使用します。

install.service.type

ClusterIP

NodePort

作成するKubernetesサービスのタイプ。イングレスを使用している場合は、ClusterIPを使用します。それ以外の場合は、NodePortを使用します。

install.oaa-kba.service.type

ClusterIP

NodePort

作成するKubernetesサービスのタイプ。イングレスを使用している場合は、ClusterIPを使用します。それ以外の場合は、NodePortを使用します。

install.risk.service.type

ClusterIP

NodePort

作成するKubernetesサービスのタイプ。イングレスを使用している場合は、ClusterIPを使用します。それ以外の場合は、NodePortを使用します。

install.risk.riskcc.service.type

ClusterIP

NodePort

作成するKubernetesサービスのタイプ。イングレスを使用している場合は、ClusterIPを使用します。それ以外の場合は、NodePortを使用します。

installOAA.propertiesファイルの例
##################################### 1. Common Deployment configuration#########################################
#Common configuration options
#If enabled and set to true, helm installation will only display generated values and will not actually perform the installation.
#common.dryrun=true
#Name of the helm deployment. It is unique per kubernetes cluster and namespace. Should be all lowercase.
common.deployment.name=edg
#Override file to override any char values. Must be in yaml format.
common.deployment.overridefile=/u01/oracle/scripts/settings/oaaoverride.yaml
#Kubernetes context if there are multiple contexts available
#common.kube.context=idmoci
#Kubernetes deployment namespace where all the services will be installed.
common.kube.namespace=oaans
#Certificate store used in all the services 
common.deployment.sslcert=/u01/oracle/scripts/creds/cert.p12
#Trust store used in all the services
common.deployment.trustcert=/u01/oracle/scripts/creds/trust.p12
#Passphrase for cert.p12 file. If the value for the passphrase is not present in properties below, it will be prompted during installation.
common.deployment.keystorepassphrase=myPassword
#Passphrase for trust.p12 file. If the value for the passphrase is not present in properties below, it will be prompted during installation.
common.deployment.truststorepassphrase=myPassword
#If the flag is enabled then trust certificate in the JRE truststore
common.deployment.importtruststore=true
#The flag to disable the generation of secret in the keystore provided in the property common.deployment.sslcert. Following secret keys are generated and are required for installation to work which can also be pre-seeded in the keystore.
#spui-enckey , aes256_config_key_alias and aes256_db_key_alias
common.deployment.generate.secret=true
#Deployment mode. Possible values are OAA, Risk or Both. Default mode is Both which will install OAA integrated with Risk. 
common.deployment.mode=Both
#Base64 encoded config key from the migrating system. If enabled the value will be placed in the vault and used for migration of legacy data
#common.migration.configkey=
#Base64 encoded db key from the migrating system. If enabled the value will be placed in the vault and used for migration of db data.
#common.migration.dbkey=
#If the integation is required with OIM set the following property to true. This also enables the forgot password functionality.  
#common.oim.integration=true
#Key for Apple push notification service. Only needed when push factor is enabled.
#common.deployment.push.apnsjksfile=
#Deprecated. By default policy snapshot import is not enabled. Kindly refer document to import it post installation.
#common.deployment.import.snapshot=true
##################################### 2. Database configuration#########################################
# Database setting for OAA
#The installation supports the following ways to install and configure the database:
#1. Installing database along with installing services on kubernetes cluster 
#2. Installing database outside the installation of services and providing the database configuration below.
#In case of 2, set database.createschema=false
#If set to true schema will be created along with the installation.
database.createschema=true
#Host IP or name where Oracle DB is running. If hostname is provided then it should be resolvable from the container.
database.host=db-scan.example.com
#Database port 
database.port=1521
#Database sysdba user required to create the schema. If database.createschema is set to false, the property is not required.
database.sysuser=sys
#Sys password will not be prompted if value is provided for the property database.syspassword. If database.createschema is set to false, the property is not required.
database.syspassword=sysPassword
#Schema name to be created in the database. The value is required.
database.schema=EDG_OAA
#Name of the tablespace. If database.createschema is set to false, the property is not required.
database.tablespace=EDG_OAA_TBS
#Schema password will not be prompted if value is provided for the property database.schemapassword
database.schemapassword=schemaPassword
#Database service name 
database.svc=edgoaa.example.com
#Name of the database. In case of OCI database service, the name is present in the OCI console. If name is not present, use value of database.svc property.
database.name=iamdb1

##################################### 3. OAUTH configuration#########################################
#Oauth setting for OAA. Oauth is required for enabling spui , admin and fido.
# If oauth.enabled is set as false, install.spui.enabled , install.oaa-admin-ui.enabled and install.fido.enabled should also be set to false otherwise helm installation
# will fail. Setting the property to true enables OAM Oauth integration during installation of services.
oauth.enabled=true
#Create OAuth Domain in OAM
oauth.createdomain=true
#Create OAuth Resource in OAM 
oauth.createresource=true
#Create OAuth client in OAM
oauth.createclient=true
#OAuth domain name used when creating the OAuth domain in OAM
oauth.domainname=OAADomain
#OAuth domain identity provider configured for OAuth in OAM
oauth.identityprovider=OAMIDSTORE
#OAuth client name
oauth.clientname=OAAClient
#Grants for OAuth client created during installation. CLIENT_CREDENTIALS is required for validation to pass.
oauth.clientgrants="PASSWORD","CLIENT_CREDENTIALS","JWT_BEARER","REFRESH_TOKEN","AUTHORIZATION_CODE","IMPLICIT"
#OAuth Client Type of new OAuth client
oauth.clienttype=PUBLIC_CLIENT
#Client password must conform to regex ^[a-zA-Z0-9.\-\/+=@_ ]*$ with a maximum length of 500
oauth.clientpassword=myPassword
#OAuth resouce name for new OAuth resource
oauth.resourcename=OAAResource
#Default score of OAuth resource
oauth.resourcescope=viewResource
#Post authentication redirecturl is required. Used for validating configuration of OAuth services in OAM by generating a access token.
oauth.redirecturl=https://login.example.com:443
#Application id protected by oauth. The value can be any valid string. It is required to setup runtime integration between OAM and OAA.  
oauth.applicationid=edg
#OAM Admin URL where OAuth API are enabled.
oauth.adminurl=http://accessdomain-adminserver.oamns.svc.cluster.local:7001
#Base64 encoded authorization header of OAM Admin server
oauth.basicauthzheader=EncodedOAMPassord
#OAM Managed server providing runtime support for OAuth Services
oauth.identityuri=https://login.example.com:443

##################################### 4. Vault configuration#########################################
#Following vaules are possible for vault.provider : oci , fks
#If oci is the provider the oci related configuration may be required to perform the vault initialization
#Name to be used in vault for this deploymemt. If name is already present in the vault, it will be reused.
vault.deploy.name=oaavault
#Flag to control the vault creation. If vault is initialized outside the installation, it should be set to false.
vault.create.deploy=true
#Provider type of vault. Supported provider types are oci, fks.
vault.provider=fks

#oci vault configuration required for the vault. Check vault documentation on how to obtain value for following properties.
#vault.oci.uasoperator=
#vault.oci.tenancyId=
#vault.oci.userId=
#vault.oci.fpId=
#vault.oci.compartmentId=
#vault.oci.vaultId=
#vault.oci.keyId=

#fks related configuration. Check the documentation on how to obtain value for properties below.
#NFS server ip or resolvable hostname. 
vault.fks.server=dbdevfssmnt-shared01.dev2fss1iad.databasede2iad.oraclevcn.com
#Path on NFS server to be mapped to folder in the running containers.
vault.fks.path=/export/IAMPVS/oaavaultpv
#Base64 encoded vault password.
vault.fks.key=TWFuYWdlcjE=
#The value in this property need to be same as the value passed through the helm chart. Do not change it
vault.fks.mountpath=/u01/oracle/service/store/oaa

##################################### 5. Chart configuration#########################################
#Note: Any property  that starts with install. will be provided as input to the helm chart using --set parameter.
#Container image repositories where the images can be pulled by the cluster nodes.
install.global.repo=iad.ocir.io/mytenancy
#Kubernetes secret reference to be used while pulling the docker images from the protected docker registries.
install.global.imagePullSecrets\[0\].name=regcred
install.global.imagePullSecrets\[1\].name=gitcred
#Chart Database properties
install.riskdb.service.type=ExternalName
#Image tags to be used
install.global.image.tag=12.2.1.4.1_20220419
#Oauth logout URL
install.global.oauth.logouturl=https://login.example.com:443/oam/server/logout

#Installation api key
#Rest Api key for OAA service.
install.global.uasapikey=myAPIpassword
#Rest Api key for policy service.
install.global.policyapikey=myAPIpassword
#Rest API key for all factor services.
install.global.factorsapikey=myAPIpassword
#Rest API key for risk and risk customer care services.
install.global.riskapikey=myAPIpassword
#Rest API key for DRSS service.
install.global.drssapikey=myAPIpassword

#In case of OCI vault, the following configuration can be overridden if provided for read-only users during helm installation.
#If the value is not provided in the properties below then it will be picked from vault section.
#All the values in the section below is optional.
#install.global.vault.mapId=b2NpZDEudmF1bHRzZWNyZXQub2MxLmlhZC5hbWFhYWFhYWRjeHl1dXFha2xmejVkbW9rcnpkajZva2Rtdmt0bGp2Y2tyZGIyd3B0emt6bHlkbTN1emEK
#install.global.vault.oci.uasoperator=
#install.global.vault.oci.tenancyId=
#install.global.vault.oci.userId=
#install.global.vault.oci.fpId=

##################################### 6. Optional configuration#########################################
##Ingress properties that can be used to enable ingress for services begin deployed.
#Deprecated property. Will be removed in future. Use install.global.ingress.enabled instead.
#install.ingress.enabled=true
#Enable ingress for all services.
install.global.ingress.enabled=true
#Ingress resource hostname. Should be all lowercase. If provided, dedicated hostname will be used to access the deployment. Otherwise can use any hostname or IP Address.
#Following configurations are deprecated. Use install.global.ingress.runtime.host and install.global.ingress.admin.host for specifying runtime and admin host
#install.global.ingress.hosts\[0\].host=oaainstall-host
#install.global.ingress.hosts\[1\].host=oaaadmin-host

#Runtime host used for accessing runtime services including all factors, oaa ,spui and risk.
install.global.ingress.runtime.host=login.example.com
#Admin host used for accessing admin, policy and risk-cc services.
install.global.ingress.admin.host=iadadmin.example.com

##Following properties are picked from database related properties if not present below.
#install.global.dbhost=
#install.global.dbport=
#install.global.dscredentials=
#install.global.dbservicename=

##Following properties are picked from oauth related properties if not present below.
#install.global.oauth.oidcidentityuri=
#install.global.oauth.oidcaudience=
#install.global.oauth.oidcclientid=

#if load balancer/ingress url is present, then configure the url here. All UI service will be behind this load balancer/ingress.
#In case ingress installation is set to true, the appropriate service url will be fetch after ingress installation
# and will be used as service url. If provided, service url from the property below will have higher priority.
install.global.serviceurl=https://login.example.com:443
#Service URL of oaa admin, if different from the service url of global oauth. 
install.oaa-admin-ui.serviceurl=http://iadadmin.example.com:80

#If oauth.enabled is set to false, uncomment following properties. Also when deployment mode is Risk spui, fido and oaa-kba services are not required.
#install.spui.enabled=false
#install.fido.enabled=false
#install.oaa-admin-ui.enabled=false
#install.oaa-kba.enabled=false

#Also authentication factor Services are enabled by default. To disable them uncomment the lines below.
#When deployment mode is Risk, the following configurations is not required.
#install.totp.enabled=false
#install.push.enabled=false
#install.sms.enabled=false
#install.yotp.enabled=false
#install.email.enabled=false

#Default service type for services is NodePort. When deployment mode is Risk following service are not deployed :
#OAA, SPUI, All Factors (fido, push, yotp, email ,sms, totp and kba)
install.service.type=ClusterIP
install.oaa-admin-ui.service.type=ClusterIP
install.oaa-policy.service.type=ClusterIP
install.spui.service.type=ClusterIP
install.totp.service.type=ClusterIP
install.fido.service.type=ClusterIP
install.push.service.type=ClusterIP
install.email.service.type=ClusterIP
install.sms.service.type=ClusterIP
install.yotp.service.type=ClusterIP
install.risk.service.type=ClusterIP
install.oaa-kba.service.type=ClusterIP
install.risk.riskcc.service.type=ClusterIP
#Properties used to install ingress using the ingress chart present in helmcharts folder

##################################### 7. Ingress configuration#########################################
#To install the ingress controller along with the services set the following flag to true. 
ingress.install=false
#Kubernetes name space which will be used to install ingress
ingress.namespace=ingress-nginx
#Admissions controller can be installed seperately. 
#Ingress admissions name is not present the controller.admissionWebhooks.enabled will be set to false in the nginx ingress chart. 
#ingress.admissions.name=ingress-nginx-controller-admission
#Ingress class name that would be used for installation. Must not be existing
ingress.class.name=ingress-nginx-class
ingress.service.type=NodePort

#anything starting with ingress.install can be additionally supplied to set the ingress chart value.
#ingress.install.releaseNameOverride=base

##################################### 8. OAA management configuration#########################################
#NFS volumes
#install.mount.config.path=<NFS_CONFIG_PATH>
#install.mount.config.server=<NFS_CONFIG_SERVER>
#install.mount.creds.path=<NFS_CREDS_PATH>
#install.mount.creds.server=<NFS_CREDS_SERVER>
#install.mount.logs.path=<NFS_LOGS_PATH>
#install.mount.logs.server=<NFS_LOGS_SERVER>
#OAA mgmt chart release name, default can be used for most installations
install.mgmt.release.name=oaamgmt
#Location of kube credentials to use for installation.
#If not provide credentials in $KUBECONFIG or ~/.kube/config will be used
#install.kube.creds=<LOCAL_PATH>/<KUBE_CREDS>
#SSL certificates
#common.local.sslcert=<LOCAL_PATH>/<LOCAL_CERT_FILE>
#common.local.trustcert=<LOCAL_PATH>/<LOCAL_TRUST_FILE>
common.deployment.import.snapshot=false
common.deployment.import.snapshot.file=/u01/oracle/scripts/oarm-12.2.1.4.1-base-snapshot.zip

##################################### 9. OUA Configuration ###################
# OUA properties needed for integration with OAA.
# OUA Agent Name. Has to be the same as the TAP Partner in OAM.
oua.tapAgentName=OAM-OUA-TAP
# OUA Password for the jks file (Base 64 Encoded)
oua.tapAgentFilePass=keystorepassword
# OUA JKS File Location
oua.tapAgentFileLocation=/u01/oracle/scripts/creds/OAMOUAKeyStore.jks
# OUA OAM Runtime Endpoint
oua.oamRuntimeEndpoint=https://login.example.com:443

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

OAAオーバーライド・ファイルは、起動される各タイプのコンテナの数を決定するために使用されます。高可用性のデプロイメントでは、コンテナ・タイプごとに2つ以上必要です。

起動されるコンテナ数を設定するには、/u01/oracle/scripts/settings/oaaoverride.yamlファイルを更新して、コンテナのタイプごとにreplicaCountを必要な数量に増やします。

このファイルを使用して、リソース要件を指定できます。リソース要件を宣言することにより、そのリソース要件でポッドを処理するのに十分な容量があるワーカー・ノードでのみ、特定のOAAポッドが起動されるようになります。また、HorizontalPodAutoscalerリソース(「Kubernetes HorizontalPodAutoscalerリソースのデプロイ」を参照)を使用して、特定タイプのポッドの数を必要に応じてスケール・アップおよびスケール・ダウンすることもできます。

ノート:

必要なエントリが欠落していれば、追加します。

次の例は、oaaおよびspuiコンテナに追加するリソース要件を示しています。

oaaoverride.yamlファイルの例:


#override file for ooa installation
 
#if database is external to the cluster set the flag to ExternalName
riskdb:
  service:
    type: ExternalName
 
#replica count of oaa service
replicaCount: 1
 
#The following properties define the dependency spui service and can be overridden here.
spui:
  resources:
    requests:
      cpu: 200m
      memory: "1Gi"
  replicaCount: 1
 
#The following properties define the dependency totp service and can be overridden here.
totp:
  resources:
    requests:
      cpu: 200m
      memory: "1Gi"
  replicaCount: 1
 
#The following properties define the dependency yotp service and can be overridden here.
yotp:
  resources:
    requests:
      cpu: 200m
      memory: "1Gi"
  replicaCount: 1
 
#The following properties define the dependency fido service and can be overridden here.
fido:
  resources:
    requests:
      cpu: 200m
      memory: "1Gi"
  replicaCount: 1
 
#The following properties define the dependency oaa-admin-ui service and can be overridden here.
oaa-admin-ui:
  resources:
    requests:
      cpu: 200m
      memory: "1Gi"
  replicaCount: 1
 
#The following properties define the dependency email service and can be overridden here.
email:
  resources:
    requests:
      cpu: 200m
      memory: "1Gi"
  replicaCount: 1
 
#The following properties define the dependency push service and can be overridden here.
push:
  resources:
    requests:
      cpu: 200m
      memory: "1Gi"
  replicaCount: 1
 
#The following properties define the dependency sms service and can be overridden here.
sms:
  resources:
    requests:
      cpu: 200m
      memory: "1Gi"
  replicaCount: 1
  
#The following properties define the dependency oaa-policy service and can be overridden here.
oaa-policy:
  resources:
    requests:
      cpu: 200m
      memory: "1Gi"
  replicaCount: 1
 
#The following properties define the defaults of risk and riskcc services.
risk:
  resources:
    requests:
      cpu: 200m
      memory: "1Gi"
  replicaCount: 1
  riskcc: //Need to remove
    replicaCount: 1
 
riskcc:
  resources:
    requests:
      cpu: 200m
      memory: "1Gi"
  replicaCount: 1
#
#The following properties define the defaults of customfactor service.
customfactor:
  resources:
    requests:
      cpu: 200m
      memory: "1Gi"
  replicaCount: 2
#
#The following properties define the defaults of oaa-kba service.
oaa-kba:
  resources:
    requests:
      cpu: 200m
      memory: "1Gi"
  replicaCount: 1
 
#
#The following properties define the defaults of oaa-drss service.
oaa-drss:
  resources:
    requests:
      cpu: 200m
      memory: "1Gi"
  replicaCount: 1

データベース・スキーマの作成

Oracle Advanced Authenticationは、データベースにスキーマを自動的に作成します。

OAuthの有効化

Oracle Access Managerでは、OAAのOAuthサーバーとして機能するようにOAuthが有効になっている必要があります。

OAuthを有効にするには:
  1. http://iadadmin.example.com/oamconsole URLを使用してOAM管理コンソールにログインします。OAM管理ユーザー名(oamadminなど)を使用してログインします。
  2. 「ようこそ」ページで、「構成」,、「使用可能なサービス」の順にクリックします
  3. 「OAuthおよびOpenIDConnectサービス」の横にある「サービスの有効化」をクリックします(または、緑のステータス・チェック・マークが表示されることを確認します)。

OAuthの検証

このステージでは、OAuthが使用可能になっており、Oracle HTTPがリクエストをOAuthサーバーに転送していることを確認することが重要です。

次のコマンドを実行して、クイック・テストを実行できます:
curl -s -k --location --request GET https://login.example.com/oauth2/rest/token
Method Not Allowedというメッセージが表示されるはずです。これは、リクエストをOAuthサーバーに正常に送信したが、OAuthサーバーによってリクエストが拒否されたという意味です。このメッセージが表示されない場合は、次のことを確認してください:
  • OAMコンソールでOAuthが正常に有効になっていること。
  • 仮想ホスト・ファイル内に適切なOracle HTTP Serverエントリがあること。
  • OAMでOAuthポリシーが定義されていること。

Oracle Advanced Authenticationのデプロイ

OAuthアプリケーションをデプロイするには、OAA-MGMTポッド内でステップを実行する必要があります。

  1. /u01/oracle/scripts/settings/installOAA.propertiesファイルを編集します。

    database.createschemaプロパティの値をfalseに設定します。

  2. 次のコマンドを実行します。
    cd /u01/oracle/scripts/settings/
    /u01/oracle/OAA.sh -f installOAA.properties

    このコマンドにより、OAAコンテナおよびOARMコンテナがデプロイされます。また、OAMサーバーにOAuthが設定されます。コマンドが失敗した場合は、問題を修正し、/u01/oracle/logs/status.infoファイルを編集して、値をfalseからtrueに変更します。その後、コマンドを再実行できます。

タイムアウトの解決

コンテナ・レジストリからコンテナ・イメージをプルするのに予想よりも時間がかかる場合、デプロイメントは失敗することがあります。デプロイメント・ログにエラーが表示されます。

エラーは次のように表示されます:
NAME: oaainstall
LAST DEPLOYED: Thu Apr 29 20:24:09 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
Error: timed out waiting for the condition
TEST SUITE:     oaainstall-email-sanity-check
Last Started:   Thu Apr 29 20:24:12 2021
Last Completed: Thu Apr 29 20:29:12 2021
Phase:          Failed
NOTES:
Get the Oracle Advance Authentication(OAA) Service URL by running these commands:
  bash -c 'export NODE_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services oaainstall-oaa) && export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}") && echo "" && echo https://$NODE_IP:$NODE_PORT/health'
Helm test failed
Fail to install OAA. Please check the log file
次のコマンドを実行して、ポッドのステータスを確認できます:
kubectl get pods

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

NAME                                       READY   STATUS          RESTARTS   AGE
edg-email-66944cd9d8-7vp7g                 1/1     Running         0          41m
edg-email-66944cd9d8-t8gcc                 1/1     Running         0          41m
edg-fido-66b969fb6f-9zcnr                  1/1     Running         0          41m
edg-fido-66b969fb6f-mzj2n                  1/1     Running         0          41m
edg-oaa-86cd6b4ff6-pxrmm                   1/1     Running         0          41m
edg-oaa-86cd6b4ff6-svlpk                   1/1     Running         0          41m
edg-oaa-admin-ui-764c555cf4-6xtzv          1/1     Running         0          41m
edg-oaa-admin-ui-764c555cf4-rxs2c          1/1     Running         0          41m
edg-oaa-kba-6d6d7bcd59-rwm5q               1/1     Running         0          41m
edg-oaa-policy-7cc99c7bc5-8tpzz            1/1     Running         0          41m
edg-oaa-policy-7cc99c7bc5-rsvqr            1/1     Running         0          41m
edg-push-794c8d89d-6xcjt                   1/1     Running         0          41m
edg-push-794c8d89d-b9xl4                   1/1     Running         0          41m
edg-risk-768fddd6b5-6k4p4                  1/1     Running         0          41m
edg-risk-768fddd6b5-wrcjh                  1/1     Running         0          41m
edg-risk-cc-77fcd64cb5-7nfft               1/1     Running         0          41m
edg-risk-cc-77fcd64cb5-bfzfn               1/1     Running         0          41m
edg-sms-7bdbf58d66-kk6qq                   1/1     Running         0          41m
edg-sms-7bdbf58d66-lp8jj                   1/1     Running         0          41m
edg-spui-59649cd778-5rbgb                  1/1     Running         0          41m
edg-spui-59649cd778-nkl8s                  1/1     Running         0          41m
edg-totp-7dc888b994-m854x                  1/1     Running         0          41m
edg-totp-7dc888b994-zgfkw                  1/1     Running         0          41m
edg-yotp-569fbbc7df-27zgm                  1/1     Running         0          41m
edg-yotp-569fbbc7df-9qsx7                  1/1     Running         0          41m
oaa-mgmt                                   1/1     Running         0          45m
時間を与えれば、最終的にはポッドが起動されます。タイムアウトを回避するには、OAA管理コンテナ内で/u01/oracle/helmcharts/OAA/values.yamlファイルの値を調整します。セクションは次のとおりです:
test:
  # test.image -- image name that will be used to test sanity of installation.
  image: shared/oracle/linux:8-slim
  # test.timeoutsecs time for which sanity tests will run before timing out.
  timeoutsecs: 480
  # test.waitsecs time interval between sanity checks.
  waitsecs: 50

OAAポリシー・スナップショットのインポート

スナップショットにより、データベース・スキーマにシード・データが移入されます。OAA-MGMTポッド内にインポートするステップを実行する必要があります。

OAAポリシー・スナップショットをインポートするには:
  1. settings/installOAA.propertiesファイルに、次のエントリがあることを確認します:
    common.deployment.import.snapshot=true
    common.deployment.import.snapshot.file=/u01/oracle/scripts/oarm-12.2.1.4.1-base-snapshot.zip
  2. 次のコマンドを使用して、スナップショットをインポートします:
    cd ~/scripts
    ./importPolicySnapshot.sh -f settings/installOAA.properties
    次のメッセージが表示された場合は、スナップショットが適用されています:
    Successfully applied snapshot:

    ノート:

    「504 ゲートウェイ・タイムアウト」のようなエラーが表示された場合は、importPolicySnapshot.shファイルを再発行してください。このステップは、2回目には成功します。
  3. Snapshotフラグをfalseにリセットして、今後のアップグレードでデータが上書きされないようにしてください。

    settings/installOAA.propertiesファイルを更新し、common.deployment.import.snapshot=falseを設定します

OHSウォレットへのOAA証明書の追加

Oracle HTTP ServerがOAAサーバーを信頼していることを確認する必要があります。信頼を構築するには、OAA証明書をOracle HTTP Serverウォレットに追加する必要があります。

ウォレットを追加するには:
  1. Oracle HTTP ServerごとにOracleウォレットを作成します(まだ作成していない場合)。「Oracle HTTP Serverウォレットの作成」を参照してください
  2. 次のコマンドを使用して、OAA証明書を取得します:
    openssl s_client -connect <K8WORKER>:<OAA_ADMIN_K8> -showcerts </dev/null 2>/dev/null|openssl x509 -outform PEM > oaa.pem
    説明:
    • <K8WORKER>は、Kubernetesワーカー・ノードの1つです。
    • <OAA_ADMIN_K8>は、OAA管理ポッドのNodePortサービスです。次のコマンドで、NodePortサービスを見つけることができます:
      kubectl get service -n oaans | grep NodePort | grep oaa-admin | awk '{ print $5 }'
  3. 次のコマンドを使用して、証明書をウォレットに追加します:
    export ORACLE_HOME=/u02/private/oracle/products/ohs/
    export OHS_DOMAIN_HOME=/u02/private/oracle/config/domains/ohsDomain
    export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/oracle_common/bin:$PATH
    orapki wallet add -wallet $OHS_DOMAIN_HOME/ohswallet -trusted_cert -cert oaa.pem -auto_login_only

OAAの検証

OAAをデプロイした後、OAA管理コンソールにアクセスしてOAAが機能していることを確認します。

OAAを検証するには、http://iadadmin.example.com/oaa-admin URLを使用してOAA管理コンソールにログインします。

OAMの資格証明コレクション・ページにリダイレクトされます。oaaadminのユーザー名とパスワードを入力します。何も問題がなければ、OAuth認証を受け入れるように求められます。「許可」をクリックすると、OAA管理ページが表示されます。

電子メール/SMSサーバーおよび自動ユーザー作成の構成

OAAには、電子メール/SMSの統合が組み込まれています。電子メールSMTPクライアントおよびSMSクライアントを使用するようにOAAを構成する必要があります。

また、ユーザーが最初にSPUIにログインしたときに、LDAPにすでに存在するOAAデータベースにユーザーが自動的に作成されるようにSPUIを設定できます。これは、設定可能な追加の構成プロパティです。

cURLを使用してOAA電子メール/SMSクライアントを構成できます。curlコマンドは次のとおりです:

curl --location --insecure --request PUT '<OAM_LOGIN_LBR_PROTOCOL>://<OAM_LOGIN_LBR_HOST>:<OAM_LOGIN_LBR_PORT>/oaa/runtime/config/property/v1' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <Encoded OAA User>' \
-d '[
    {
        "name": "bharosa.uio.default.challenge.type.enum.ChallengeEmail.umsClientURL",
        "value": "<UMS_SERVER_URL>"
    },
    {
        "name": "bharosa.uio.default.challenge.type.enum.ChallengeEmail.umsClientName",
        "value": "<UMS_ADMIN_USER>"
    },
    {
        "name": "bharosa.uio.default.challenge.type.enum.ChallengeEmail.umsClientPass",
        "value": "<UMS_ADMIN_PASSWORD>"
    },
    {
        "name": "bharosa.uio.default.challenge.type.enum.ChallengeSMS.umsClientURL",
        "value": "<UMS_SERVER_URL>"
    },
    {
        "name": "bharosa.uio.default.challenge.type.enum.ChallengeSMS.umsClientName",
        "value": "<UMS_ADMIN_USER>"
    },
    {
        "name": "bharosa.uio.default.challenge.type.enum.ChallengeSMS.umsClientPass",
        "value": "<UMS_ADMIN_PASSWORD>"
    }
    {
        "name": "oaa.default.spui.pref.runtime.autoCreateUser",
        "value": "true"
    }

]'
たとえば:
curl --location --insecure --request PUT 'http://login.example.com/oaa/runtime/config/property/v1' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic b2FhLW9hYTphcGlrZXl0b2Jlc2V0ZHVyaW5naW5zdGFsbGF0aW9u' \
-d '[
    {
        "name": "bharosa.uio.default.challenge.type.enum.ChallengeEmail.umsClientURL",
        "value": "http://governancedomain-cluster-soa-cluster.oigns.svc.cluster.local:8001/ucs/messaging/webservice
"
    },
    {
        "name": "bharosa.uio.default.challenge.type.enum.ChallengeEmail.umsClientName",
        "value": "weblogic"
    },
    {
        "name": "bharosa.uio.default.challenge.type.enum.ChallengeEmail.umsClientPass",
        "value": "password"
    },
    {
        "name": "bharosa.uio.default.challenge.type.enum.ChallengeSMS.umsClientURL",
        "value": "http://governancedomain-cluster-soa-cluster.oigns.svc.cluster.local:8001/ucs/messaging/webservice
"
    },
    {
        "name": "bharosa.uio.default.challenge.type.enum.ChallengeSMS.umsClientName",
        "value": "weblogic"
    },
    {
        "name": "bharosa.uio.default.challenge.type.enum.ChallengeSMS.umsClientPass",
        "value": "password"
    }
    {
        "name": "oaa.default.spui.pref.runtime.autoCreateUser",
        "value": "true"
    }

]'

Oracle Advanced AuthenticationとOracle Access Managerの統合

この手順では、保護されたリソースにアクセスしたときにOAM資格証明コレクタが最初に表示されてから、PINコード検証のためにセッションがOAAに渡されるように、OAMでOAAを構成する手順を説明します。

この統合は、OAMをOAuthサーバーとして使用することに加えて行います。

統合手順は次のステップで構成されます:

OAAでのOAMエージェントの構成

OAMエージェントを構成するには:
  1. 管理者資格証明を使用してOAA管理コンソールにログインします:

    http://iadadmin.example.com/oaa-admin

  2. 「クイック・アクション」,で、OAM統合エージェントの作成を選択します。
  3. 「エージェントの作成」「詳細」タブで、次のように入力します:
    • 名前: <OAA_OAM_TAP_PARTNER> - パートナの名前は、前に登録したTAPパートナ名と同じである必要があります。例: OAM-OAA-TAP「OAM TAPパートナとしてのOAAの登録」を参照してください。
    • 説明: OAAのOAM TAPパートナ。
    • クライアント・タイプ: Oracle Access Manager。
    • クライアントID: 「再生成」をクリックします。
    • クライアント・シークレット: 「再生成」をクリックします。
    • 秘密キー・ファイル: /workdir/OAA/OAMOAAKeyStore.jksキー・ファイルをドラッグ・アンド・ドロップするか、「+」をクリックして、ファイル・システムからファイルを選択します。
    • 秘密キー・パスワード: TAPパートナの登録時にキーストアに指定したパスワード(<OAA_KEYSTORE_PWD>)。
  4. 「クライアントID」および「クライアント・シークレット」の値を安全な場所にコピーします。これらは後でOAMを構成するときに必要になります。
  5. 「保存」をクリックします。
  6. 「エージェント」画面で、作成したエージェントの名前をクリックします。例: OAM-OAA-TAP
  7. 「保証レベル」タブをクリックします。
  8. 「作成」をクリックして、新しい保証レベルを作成します。
  9. 「保証レベルの作成」画面で、次の詳細を入力して、「作成」をクリックします:
    • 名前: OAM-OAA-Level
    • 説明: OAM統合のためのOAM-OAA-Level
  10. 「ポリシーの定義」で、保証レベルに割り当てるファクタを選択します。例: 「Oracle Mobile Authenticator」および「電子メール・チャレンジ」
  11. 「保存」をクリックします。

OAMドメインの再起動

OAM管理対象サーバーがOAAプラグインを使用できるようにするには、OAMドメインを再起動する必要があります。

次のコマンドを使用して、ドメインを再起動します:
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": "IF_NEEDED" }]'

ノート:

次のコマンドを使用して、ネームスペース内のすべての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": "IF_NEEDED" }]'

OAA用のOAM認証モジュールの作成

OAAプラグインをOAMにインポートした後は、OAM認証モジュールを作成する必要があります:

  1. http://iadadmin.example.com/oamconsole URLを使用してOAM管理コンソールにログインします。
  2. OAMコンソールで、「アプリケーション・セキュリティ」を選択し、「プラグイン」「認証モジュール」の順に選択します。
  3. 「認証モジュール」タブで、「認証モジュールの作成」「カスタム認証モジュールの作成」の順にクリックします。
  4. 「認証モジュール」ページで、「一般」タブをクリックし、次の情報を入力します:
    • 名前: OAA-MFA-Auth-Module
    • 説明: OAA MFA認証モジュール
  5. 「ステップ」リンクをクリックし、「ステップ」タブで「追加」をクリックします。
    「新規ステップの追加」ページで、次の詳細を入力し、「OK」をクリックします:
    • ステップ名: UserIdentificationStep
    • 説明: ユーザーの識別
    • プラグイン名: UserIdentificationPlugIn
    「追加」を再度クリックし、次の詳細を入力して「OK」をクリックします:
    • ステップ名: ユーザーOAA MFAステップ
    • 説明: OAAによるMFA
    • プラグイン名: OAAAuthnPlugin
    「追加」を再度クリックし、次の詳細を入力して「OK」をクリックします:
    • ステップ名: PasswordValidation
    • 説明: OAMでのユーザー・パスワードの検証
    • プラグイン名: UserAuthenticationPlugin
  6. 「ユーザーOAA MFAステップ」をクリックし、次の情報を指定します:
    • OAA_URL: <SPUI_URL/authn/v1> (例: https://login.example.com:443/oaa/rui/authn/v1)。
    • TAP_AGENT: <partner_name> - この値は、TAPパートナをOAMに登録するときに指定した名前と同じである必要があります。例: OAM-OAA-TAP「OAM TAPパートナとしてのOAAの登録」を参照してください。
    • APPLICATION_ID: <app_id> - これは、OAAに移行されたOAMユーザー名と関連付けるOAAグループの名前です。例: edg。この値は、OAAのインストール時にinstallOAA.propertiesファイルで使用されているoauth.applicationidの値と一致する必要があります。
    • IDENTITY_STORE_REF: <default_user_identity_store> - この値は、OAMコンソール(「構成」「ユーザー・アイデンティティ・ストア」)で設定したデフォルト・ストアの値に設定する必要があります。例: OAMIDSTORE
    • ASSURANCE_LEVEL: <assurance_level> - この値は、前にOAAで作成された保証レベルに設定する必要があります。例: OAM-OAA-Level「OAAでのOAMエージェントの構成」を参照してください。
    • CLIENT_ID: <client_id> - これは、エージェントの作成時にコピーされるクライアントIDの値です。例: 485aa420-85c0-47db-958c-04c1258e4bc2
    • CLIENT_SECRET: <client_secret> - これは、エージェントの作成時にコピーされるクライアント・シークレットの値です。例: 3bc9bc4d-ebd7-4909-bcf5-2ac7472c13db
    • LDAP_ATTRS: mailpostalcode - これらは電子メール・アドレスに設定されるLDAP属性であり、Oracle Mobile Authenticatorで、LDAPサーバーに格納されているユーザー名に対して使用されます。これらの属性を使用すると、ユーザー・データをOAAに移行できます。小文字で入力する必要があります。
  7. 「保存」をクリックします。

OAA用のOAM認証スキームの作成

OAA認証モジュールを使用できるようにするOAM認証スキームを作成します。
  1. http://iadadmin.example.com/oamconsole URLを使用してOAM管理コンソールにログインします。
  2. OAMコンソールで、「アプリケーション・セキュリティ」「アクセス・マネージャ」「認証スキーム」の順に選択します。
  3. 「認証スキーム」タブで、「認証スキームの作成」を選択し、次の情報を入力します:
    • 名前: OAA-MFA-Scheme
    • 説明: OAA MFA認証スキーム
    • 認証レベル: 2
    • チャレンジ・メソッド: フォーム
    • チャレンジ・リダイレクトURL: /oam/server/
    • 認証モジュール: OAA-MFA-Auth-Module
    • チャレンジURL: /pages/login.jsp
    • コンテキスト・タイプ: デフォルト
    • コンテキスト値: /oam
    • チャレンジ・パラメータ: initial_command=NONE
  4. 「適用」をクリックして変更を保存します。

OAM認可ポリシーの作成

OAAを使用してリソースを保護できるようにするには、OAM認可ポリシーを作成する必要があります。
  1. http://iadadmin.example.com/oamconsole URLを使用してOAM管理コンソールにログインします。
  2. OAMコンソールで、「アプリケーション・セキュリティ」メニューを選択し、「アクセス・マネージャ」を選択して、「アプリケーション・ドメイン」をクリックします。
  3. 「アプリケーション・ドメインの検索」ウィンドウで、「検索」をクリックして、使用可能なドメインをリストします。
  4. 「IAMスイート」ドメインを選択します。
  5. 「認証ポリシー」タブを選択し、「作成」をクリックして、新しい認証ポリシーを作成します。次の情報を入力します。
    • 名前: OAA_MFA-Policy
    • 認証スキーム: OAA-MFA-Scheme

    「適用」をクリックして変更を保存します。

OAA Cookieドメインの設定

デバイスCookieを収集するには、プロパティoaa.browser.cookie.domainをOAAホスト・ドメインに設定する必要があります。たとえば、https://login.example.comでOAAにアクセスできる場合は、値をlogin.example.comに設定します。

リスクのあるIP、地理的速度、地理的位置などのユース・ケースに対するリスク・ルールを呼び出すには、プロパティoaa.risk.integration.postauth.cpをpostauthに設定する必要があります。

プロパティの設定

  1. 次のコマンドを実行して、エンコードされたOAAユーザーを取得します:

    echo -n <OAA_DEPLOYMENT>-oaa-policy:<OAA_API_PWD> | base64

    たとえば:

    
    curl --location -g --request PUT 'http://iadadmin.example.com/policy/config/property/v1' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic ZWRnLW9hYS1wb2xpY3k6bXlBUElwYXNzd29yZAo=' \
    --data '[
        {
            "name": "oaa.browser.cookie.domain",
            "value": "login.example.com"
        },
        {
            "name": "oaa.risk.integration.postauth.cp",
            "value": "postauth"
        }
    ]'
  2. <POLICY_URL>/config/property/v1 REST APIを使用してプロパティを設定します。

    たとえば:

    
    curl --location -g --request PUT '<OAA_POLICY_URL>/config/property/v1' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic <Encoded OAA User>' \
    --data '[
        {
            "name": "oaa.browser.cookie.domain",
            "value": "<host.domain>"
        },
        {
            "name": "oaa.risk.integration.postauth.cp",
            "value": "postauth"
        }
    ]'

OAM-OAA統合の検証

これは、OAMとOAAの統合を検証する単純な方法です。検証の完了後にすべてのステップをロールバックすることをお薦めします。

検証手順は次のステップで構成されます:

HTMLテスト・ページの作成
各Oracle HTTP Serverで、単純なHTMLテスト・ページを作成します。このテスト・ページには、OAAで保護できる単純なリソースが用意されています。

WEB_DOMAIN_HOME/config/fmwconfig/components/OHS/<instance_name>/htdocsディレクトリにあるOHSサーバーで、次の内容を含むtest_page.htmlというテスト・ページを作成します:

  1. WEB_DOMAIN_HOME/config/fmwconfig/components/OHS/<instance_name>/htdocsディレクトリにあるOHSサーバーで、次の内容を含むtest_page.htmlというテスト・ページを作成します:
    <!DOCTYPE html>
    <html>
    <body>
    
    <h1>This is a Test Page</h1>
    
    </body>
    </html>
  2. ファイルを保存し、Oracle HTTP Serverを再起動します。
テスト・ページのOracleリソースの作成
テスト・ページを作成した後、OAMにリソースを作成し、そのリソースがWebGateで認識され、OAAを使用して保護されるようにします。
  1. http://iadadmin.example.com/oamconsole URLを使用してOAM管理コンソールにログインします。
  2. OAMコンソールで、「アクセス・マネージャ」を選択し、「アプリケーション・ドメイン」をクリックします。
  3. 「検索」をクリックして、定義されているアプリケーション・ドメインを表示します。
  4. 「IAMスイート」ドメインをクリックします。
  5. 「リソース」タブを選択し、「作成」をクリックして、次の情報を入力します:
    • タイプ: HTTP
    • 説明: OAAリソース
    • ホスト識別子: IAMSuiteAgent
    • リソースURL: /test_page.html
    • 操作: すべて
    • 保護レベル: 保護
    • 認証ポリシー: OAA_MFA-Policy
    • 認可ポリシー: Protected Resource Policy

    「適用」をクリックして変更を保存します。

再起動は必要ありませんが、変更が伝播されるまでに時間がかかる場合があります。

テスト・ユーザーの作成

Oracle Unified Directory (OUD)でテスト・ユーザーを作成します。このユーザーをOAA-APP-Userグループに割り当てます。また、電子メールでワンタイムPINコードを受信する場合はユーザーには有効な電子メール・アドレスが必要で、Oracle Mobile Authenticatorを構成した場合は郵便番号が必要です。

次のサンプルldifファイルを使用して、テスト・ユーザーを作成できます:
dn: cn=oaauser,cn=Users,dc=example,dc=com
changetype: add
objectClass: orclUserV2
objectClass: oblixorgperson
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: oblixPersonPwdPolicy
objectClass: orclAppIDUser
objectClass: orclUser
objectClass: orclIDXPerson
objectClass: top
objectClass: OIMPersonPwdPolicy
givenName: oaauser
uid: oaauser
orclIsEnabled: ENABLED
sn: oaauser
userPassword: password
mail: oaauser@example.com
orclSAMAccountName: oaauser
cn: oaauser
postalCode: oaauser
obpasswordchangeflag: false
obpsftid: true
ds-pwp-password-policy-dn: cn=FAPolicy,cn=pwdPolicies,cn=Common,cn=Products,cn=OracleContext,dc=example,dc=com

dn:cn=OAA-App-User,cn=Groups,dc=example,dc=com
changetype: modify
add: uniqueMember
uniqueMember: cn=oaauser,cn=Users,dc=example,dc=com
デプロイメントの検証
デプロイメントを検証するには:
  1. https://login.example.com/test_page.htmlに移動します。
  2. ユーザー名とパスワードの入力を求められたら、前に作成した'oaa'テスト・ユーザーを入力します。「テスト・ユーザーの作成」を参照してください。
  3. 電子メールでワンタイムPINを受信する場合は、「電子メール」を選択します。
  4. プロンプトが表示されたら、電子メールで受信したワンタイムPINを入力します。
    テスト・ページが表示されます。

Oracle Universal Authenticationの構成

この項では、Oracle Universal Authenticationの構成に関連する様々なタスクについて説明します。

ノート:

現在、Oracle Universal InstallerはMicrosoft Windowsクライアントのみをサポートしています。

Microsoft Entraドメイン

Microsoft Windowsクライアントを使用してOUAでログインする場合は、次の前提条件が必要です。

  • Microsoft Entra Domain Services管理対象ドメインが必要です。
  • OUAを使用する場合は、ドメインにMicrosoft Windowsユーザーを作成する必要があります。

管理者は、OUAを使用する前に、Microsoft Entraの実務的な知識を持っている必要があります。次のドキュメントには、Microsoft Entraドメイン、LDAPディレクトリまたはユーザー・アカウントの設定方法は記載されていません。

Windowsデスクトップ環境のための前提条件の構成

Microsoft WindowsクライアントがOUAでログインするには、次の前提条件が必要です。これは、OUAクライアント・アプリケーションがインストールされているWindowsデスクトップまたはサーバーに適用されます:

  • Windows 10または11を実行しているMicrosoft Windowsデスクトップ・クライアント、またはWindows 2016または2019サーバー。
  • Microsoft Windowsデスクトップまたはサーバーは、Microsoft EntraのWindowsドメインに参加している必要があります。
  • OUAを介してログインするMicrosoft Windowsユーザーは、有効なユーザー名とパスワードを使用してWindowsドメインにログインできる必要があります。
  • OUA SSOブラウザ拡張機能には、Chrome v88+、Microsoft Edge v92+が必要です。
  • OUAクライアント・アプリケーションをインストールするための管理者資格証明。
OAMユーザー・アカウント

Microsoft Windowsユーザーは、Oracle Access Management (OAM)で使用されるユーザー・アイデンティティ・ストアにユーザー・アカウントを持っている必要があります。ユーザーは、OAMで保護されているアプリケーションにシングル・サインオン(SSO)でログインできる必要があります。

DRSS用のOAM統合エージェントの作成

次のステップを実行して、DRSS用のOAM統合エージェントを構成し、DRSS構成パラメータを更新します:
  1. 次のコマンドを実行して、OAA管理コンテナに接続します:
    kubectl exec -n oaans -ti oaa-mgmt -- /bin/bash
  2. 次のコマンドを実行して、ディレクトリを/u01/oracle/scripts/drssconfigに変更します:
    cd /u01/oracle/scripts/drssconfig
  3. 次のコマンドを実行して、スクリプトconfigureDRSS.shを実行します:
    ./configureDRSS.sh -f /u01/oracle/scripts/settings/installOAA.properties
  4. 次のコマンドを使用して、DRSSパラメータoua.drss.oaa.groupinstallOAA.propertyファイルのoauth.applicationidの値に設定します:
    
    curl --location -g -v -k --request PUT 'https://login.example.com/oaa-drss/oua/property/v1' \
    --header 'Content-Type: application/json' \
    -u <OAA_DEPLOYMENT>_OAA_DRSS:<OAA_API_PWD> \
    -d '[
    {
    "name": "oua.drss.oaa.group",
    "value": "<OAA_DEPLOYMENT>"
    }
    ]'
    
    例:
    
    curl --location -g -v -k --request PUT 'https://login.example.com/oaa-drss/oua/property/v1' \
    --header 'Content-Type: application/json' \
    -u EDG_OAA_DRSS: myAPIpassword \
    -d '[
    {
    "name": "oua.drss.oaa.group",
    "value": "edg"
    }
    ]'

OAMセッション管理APIの有効化

次のステップを実行して、oam-config.xml内でOAMセッション管理APIを有効にします。
  1. 次の内容を含むsession.xmlというファイルを作成します:
    
    <Configuration>
      <Setting Name="RequireAuthorizationHeader" Type="xsd:boolean" Path="/DeployedComponent/Server/NGAMServer/Profile/RestServices/Token/RequireAuthorizationHeader">true</Setting>
    </Configuration>
  2. ファイルを保存します。
  3. 次のコマンドを実行して、oam-config.xmlを更新します:
    curl -s -u <LDAP_WLSADMIN_USER>:<LDAP_WLSADMIN_PWD> -H 'Content-Type: text/xml' -X PUT 
    http://<OAM_ADMIN_LBR_HOST>:<OAM_ADMIN_LBR_PORT>/iam/admin/config/api/v1/config?
    path=/DeployedComponent/Server/NGAMServer/Profile/RestServices/Token/RequireAuthorizationHeader
     -d @./session.xml
    例:
    curl -s -u weblogic_iam:MyPassword -H 'Content-Type: text/xml' -X PUT http://iadadmin.example.com/iam/admin/config/api/v1/config?
    path=/DeployedComponent/Server/NGAMServer/Profile/RestServices/Token/RequireAuthorizationHeader 
    -d @./session.xml
  4. 次のコマンドを使用して、変更を確認します:
    kubectl exec -n <OAMNS> -ti <OAM_DOMAIN_NAME>-adminserver -- /bin/bash
    例:
    kubectl exec -n oamns -ti accessdomain-adminserver -- /bin/bash
    /u01/oracle/user_projects/domains/accessdomain/config/fmwconfig/oam-config.xmlで次の行を見つけます:
    
    <Setting Name="Token" Type="htf:map">
      <Setting Name="Enabled" Type="xsd:boolean">true</Setting>
      <Setting Name="RequireAuthorizationHeader" Type="xsd:boolean">true</Setting>

OAMアイデンティティ・サービスの有効化

次のステップを実行して、oam-config.xml内でOAMアイデンティティ・サービスを有効にします。
  1. 次の内容を含むservice.xmlというファイルを作成します:
    
    <Configuration>
      <Setting Name="IdentityServiceEnabled" Type="xsd:boolean" Path="/DeployedComponent/Server/NGAMServer/Profile/IdentityManagement/IdentityServiceConfiguration/IdentityServiceEnabled">true</Setting>
    </Configuration>
  2. ファイルを保存します。
  3. 次のコマンドを実行して、oam-config.xmlを更新します:
    curl -s -u <LDAP_WLSADMIN_USER>:<LDAP_WLSADMIN_PWD> -H 'Content-Type: text/xml' -X PUT http://<OAM_ADMIN_LBR_HOST>:<OAM_ADMIN_LBR_PORT>/iam/admin/config/api/v1/config?path=/DeployedComponent/Server/NGAMServer/Profile/IdentityManagement/IdentityServiceConfiguration/IdentityServiceEnabled -d @./service.xml

    例:

    curl -s -u weblogic_iam:MyPassword -H 'Content-Type: text/xml' -X PUT http://iadadmin.example.com/iam/admin/config/api/v1/config?path=/DeployedComponent/Server/NGAMServer/Profile/IdentityManagement/IdentityServiceConfiguration/IdentityServiceEnabled -d @./service.xml
  4. 次のコマンドを使用して、変更を確認します:
    kubectl exec -n <OAMNS> -ti <OAM_DOMAIN_NAME>-adminserver -- /bin/bash

    例:

    kubectl exec -n oamns -ti accessdomain-adminserver -- /bin/bash

    /u01/oracle/user_projects/domains/accessdomain/config/fmwconfig/oam-config.xmlで次の行を見つけます:

    
           <Setting Name="IdentityServiceConfiguration" Type="htf:map">
             <Setting Name="IdentityServiceEnabled" Type="xsd:boolean">true</Setting>
             <Setting Name="IdentityServiceProvider" Type="xsd:string">oracle.security.am.engines.idm.provider.OracleIdentityServiceProvider</Setting>
             <Setting Name="AnonymousAuthLevel" Type="xsd:integer">0</Setting>
             <Setting Name="IdentityServiceProviderConfiguration" Type="htf:map">
               <Setting Name="DateFormatPattern" Type="xsd:string">yyyy-MM-dd'T'HH:mm:ss'Z'</Setting>
               <Setting Name="ForcedPasswordChangeURL" Type="xsd:string">/identity/faces/firstlogin</Setting>
               <Setting Name="ChallengeSetupNotDoneURL" Type="xsd:string">/identity/faces/firstlogin</Setting>
               <Setting Name="TimeFormatPattern" Type="xsd:string">yyyyMMddHHmmss'z'</Setting>
               <Setting Name="LockoutDurationSeconds" Type="xsd:long">1</Setting>
               <Setting Name="PasswordExpiredURL" Type="xsd:string">/identity/faces/firstlogin</Setting>
               <Setting Name="AccountLockedURL" Type="xsd:string">/identity/faces/accountlocked</Setting>
               <Setting Name="IdentityManagementServer" Type="xsd:string">OIM-SERVER-1</Setting>
               <Setting Name="LockoutAttempts" Type="xsd:integer">5</Setting>
             </Setting>
           </Setting>

OAM永続ログインの有効化

OUAでは、OAMで永続ログインを有効にする必要があります。永続ログインの詳細は、永続ログインの理解に関する項を参照してください。次のステップを実行して、OAMで永続ログインを有効にします:
  1. 次のコマンドを実行して、OAM管理サーバーに接続します:
    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>')
    例:
    connect('weblogic','MyPassword')
  4. 次のWLSTコマンドを実行して、永続ログインを構成します:
    configurePersistentLogin(enable="true",validityInDays="30", maxAuthnLevel="2", userAttribute="obPSFTID")
    SUCCESSメッセージが表示されます。
  5. 次のコマンドを使用して、WLSTを終了します
    exit()

永続ログイン・スキームの構成

次のステップを実行して、永続ログイン・スキームを構成します:
  1. 次のURLを使用してブラウザを起動し、OAM管理コンソールにアクセスします:
    http://iadadmin.example.com/oamconsole
  2. oamadminユーザーとしてログインします。
  3. 「構成」「ユーザー・アイデンティティ・ストア」に移動します。「デフォルト・ストア」がOAMユーザーが存在するストアに設定されていることを確認する必要があります。たとえば、OAMIDStoreです。
  4. 「OAM IDストア」で、ストアOAMIDSTOREを選択し、「編集」をクリックします。
    アイデンティティ・ストアの構成ページで、「ネイティブIDストア設定の使用」「パスワード管理の有効化」および「Oblixユーザー・スキーマの使用」を選択します。
    アイデンティティ・ストアの構成ページで、「パスワード管理の有効化」および「ネイティブIDストア設定の使用」を選択します。
  5. 「適用」をクリックします。

OAMドメインの再起動

OAM管理対象サーバーがOAAプラグインを使用できるようにするには、OAMドメインを再起動する必要があります。

次のコマンドを使用して、ドメインを再起動します:
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": "If_Needed" }]'

ノート:

次のコマンドを使用して、ネームスペース内のすべての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": "If_Needed" }]'

オーセンティケータを追加するためのテスト・ユーザーの更新

「テスト・ユーザーの作成」でOAAテスト・ユーザーを作成し、このユーザーを使用してOUAを検証する場合は、OAAユーザー・プリファレンス画面でファクタを追加して、このユーザーに対してTOTPオーセンティケータを登録する必要があります。

  1. 次のURLを使用して、OAAユーザー・プリファレンス・コンソールにログインします
    https://login.example.com/oaa/rui

    認証ファクタを設定するユーザーを使用します。たとえば、oaauserdです。

  2. 「マイ・オーセンティケータ」ボックスから「管理」をクリックします。
  3. 「認証ファクタの追加」をクリックします。
  4. 認証ファクタを選択します。たとえば、モバイル・オーセンティケータです。
  5. 名前を入力します。
  6. 「保存」をクリックします。

    ノート:

    詳細を保存する前に、表示されたQRコードを使用してOracle Mobile Authenticatorを設定するか、下にあるキーを書き留めて後でOracle Mobile Authenticatorを設定する必要があります。これらの詳細を再度取得することはできません。

OUAクライアント・アプリケーションのインストール

OUAクライアント・アプリケーションのインストール方法の詳細は、Oracle Universal Authenticatorクライアント・アプリケーションのインストールに関する項を参照してください。