データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

Oracle Internet Directory(OID)からOracle Unified Directory(OUD)への移行完全ガイド

Oracle Internet Directory(OID)は、外部のOracleデータベースを使用してデータを保存するLDAP(Lightweight Directory Access Protocol)サーバーであり、Oracleアプリケーション向けにシングルサインオン(SSO)ソリューションを提供します。

OIDの主な特徴

  • 大規模アプリケーションに対して高いパフォーマンスを発揮します。
  • 転送中のデータからストレージやバックアップに至るまで、あらゆるレベルでセキュリティを確保する、最も安全なディレクトリサービスです。
  • ストレージおよび同期サービスを提供します。

一方、Oracle Unified Directory(OUD)は、ストレージ、プロキシ、同期、仮想化機能をすべて備えたOracleの次世代オールインワン・ディレクトリソリューションです。このLDAPサーバーはJavaで完全に記述されており、スケーラブルな大規模デプロイメントに対応し、高いパフォーマンスを実現します。

OUDで実現できること

  • データを格納するLDAPディレクトリサーバーとしての利用
  • クライアントとディレクトリサーバー間のプロキシサーバーインターフェースとしての利用
  • OUDとOracle Directory Server Enterprise Edition間のレプリケーションゲートウェイとしての利用

OIDからOUDへの移行には、主に以下の2つのアプローチがあります。

  1. DIPを使用したOUDとOIDの同期
  2. Schemasync

1. DIPを使用したOUDとOIDの同期

事前準備:外部変更ログ(ECL)の有効化

移行を進める前に、事前ステップとして外部変更ログ(ECL: External Change Log)を有効にする必要があります。ECLは、ディレクトリサーバーとレプリケーションサーバーの両方を含む任意のサーバーインスタンスでデフォルトで利用可能です。インストール時にディレクトリサーバーがレプリケーショントポロジの一部として構成された場合、またはdsreplicationコマンドを実行してレプリケーションを構成した場合に、ECLが有効になります。

$ dsreplication enable-changelog -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -r 8989 -b dc=example,dc=com -X -n

以下のコマンドを実行して、変更ログが有効になっていることを確認します。

ldapsearch -h <HOSTNAME> -p <PORT> -D "cn=<DM_ADMIN>" -w <PASSWORD> -s base -b "" "objectclass=*" namingContexts
version: 1
dn:
namingContexts: cn=changelog
namingContexts: <SUFFIX_DN>

なお、DIPとOIDは事前に構成・デプロイされている必要があります。

OIDでのSSL有効化

DIP-OID間の同期はSSLモードでのみ可能です。そのため、SSLモードでOIDへのバインドを許可するために、OIDウォレットを作成する必要があります。Enterprise Managerを使用して自己署名ウォレットを作成し、以下の手順でそれをOracleウォレットにコピーします。

OID自己署名証明書の作成手順:

  • 信頼できる証明書をエクスポートし、Oracle Wallet Managerにコピーします。
  • OWM(Oracle Wallet Manager)からOIDウォレットを作成し、信頼できる証明書をウォレットにコピーします。

以下のコマンドを使用して、SSLモードでOID1にバインドします。

ldapbind -h <OID_HOSTNAME> -p <OID_PORT> -D "cn=<OID_ADMIN>" -w <PASSWORD> -U 2 -W "file:/home/oracle/oid1_client_wallet" -P "<PASSWORD>"
bind successful

DIP構成の手順

Keytoolを使用して、OID自己署名証明書を含むキーストアを作成します。

keytool -importcert -trustcacerts -file /home/oracle/certificates_base/oid1_selfsigned_cert.txt -keystore $HOME/dip_keystore
Enter keystore password:
Re-enter new password:
Trust this certificate? [no]:  yes
Certificate was added to keystore

DIP構成を更新して、キーストアの場所を指定します。

$ORACLE_HOME/bin/manageDIPServerConfig set -attribute keystorelocation -h <OID_HOSTNAME> -p <WLS_PORT> -D <WL_ADMIN> -value $HOME/dip_keystore <wls admin user password>
Connection parameters initialized.
Connected successfully.
The attribute keystorelocation is successfully changed to value /home/oracle/dip_keystore.

以下のコマンドを使用して、DIPをSSL V2モードで構成します。

$ORACLE_HOME/bin/manageDIPServerConfig set -attribute sslmode -h <OID_HOSTNAME> -p <WLS_PORT> -D <WLS_ADMIN> -value 2 <wls admin user password>
Connection parameters initialized.
Connected successfully.
The attribute sslmode is successfully changed to a value of 2.

wlst.shを使用してJavaキーストアを更新し、変更を反映させるためにOIDとDIPサービスを再起動します。

wlst.sh
connect('<WLS_ADMIN>','<PASSWORD>','t3://localhost:<EM_PORT>')
createCred(map="dip",key="jksKey", user="<JKS_USER>",password="<PASSWORD>")
disconnect()

OUDとOIDの同期プロファイル作成

OUDデータを投入するために、OIDにSuffix DNエントリを作成する必要があります。どのサフィックスを作成するかを選択することは非常に重要であり、これは同期プロファイル管理の際に直接使用されます。以下のスクリーンショットのように親ディレクトリを選択してください。

同期プロファイルの作成

メニューから「Identity and Access」配下のOIDを選択し、「OID Administration」→「Synchronization Profile」を選択します。

以下の2つの同期プロファイルを作成します。

  • OUD → OID: OUDImport
  • OID → OUD: OUDExport

同期プロファイルの作成時に、OIDをソースとして使用するか宛先として使用するかを決定する必要があります。OIDがソースとして使用されるため、ホスト名とポートはOIDのホスト名とポート番号を指定します。

上記のマッピングが完了すると、OUDImport / OUDExportは、両側で"ou=people, dc=people,dc=com"がマッピングされます。マッピングを有効にすると、デフォルトで以下の属性が自動的にマッピングされます。

OIDからOUDへのデータのブートストラップ

syncProfileBootstrapを実行してDIPがサフィックスDNにアクセスできるようにするため、OID ACIを追加します。

以下のコマンドでACIファイルを作成し、OID ACIを追加します。

cat aci_oudimport.ldif
dn: ou=People,dc=people,dc=com
changetype :modify
add: orclaci
orclaci:access to entry by dn="orclodipagentname=OUDImport,cn=subscriber profile, cn=changelog subscriber,cn=oracle internet directory" (browse,add,delete)
orclaci: access to attr=(*) by group="orclodipagentname=OUDImport,cn=subscriber profile,cn=changelog subscriber,cn=oracle internet directory" (read,search,write, selfwrite,compare)

ldapmodifyコマンドを実行してACIを追加します。

ldapmodify -h <OID_HOSTNAME> -p <OID_PORT> -D cn=<OID_ADMIN> -w <PASSWORD> -f aci_oudimport.ldif

以下のコマンドを実行して、OIDからOUDへデータをブートストラップします。

syncProfileBootstrap -h <OID_HOSTNAME> -p <WLS_PORT> -D <WLS_ADMIN> -pf OUDImport
Connection parameters initialized.
Connecting at <OID_HOSTNAME>:<WLS_PORT>, with userid "<WLS_ADMIN>".
Connected successfully.

ブートストラップ操作が完了すると、操作結果は以下のようになります。

entries read in bootstrap operation: 1907
entries filtered in bootstrap operation: 0
entries ignored in bootstrap operation: 0
entries processed in bootstrap operation: 1906
entries failed in bootstrap operaton: 1

これで、OUD側でもサフィックスデータを確認できるようになりました。

ou=people,dc=people,dc=com

2. Schemasyncによるスキーマ同期

Schemasyncユーティリティを使用すると、OIDと他のサードパーティLDAPディレクトリ間で、スキーマ属性およびオブジェクトクラスを同期できます。

Schemasyncの構文:

schemasync -srchost hostname -srcport port -srcdn bindDN -srcpwd password -dsthost hostname -dstport port -dstdn bindDN -dstpwd password [-ldap]
  • -srchost – ソースディレクトリサーバーのホスト名
  • -srcport – ソースディレクトリサーバーのLDAPリスニングポート
  • -srcdn – ソースディレクトリへのバインドに使用するユーザーのDN
  • -srcpwd – ソースディレクトリへのバインドに使用するユーザーパスワード
  • -dsthost – 宛先ディレクトリサーバーのホスト名
  • -destport – 宛先ディレクトリサーバーのLDAPリスニングポート
  • -dstdn – 宛先ディレクトリサーバーへのバインドに使用するユーザーのDN
  • -ldap – LDAPを使用する場合、スキーマ変更はソースLDAPから宛先LDAPに直接適用されます。

実行例:

schemasync -srchost srchost.domain.com -srcport 3060 -srcdn "cn=orcladmin" \
   -dsthost dsthost.domain.com -dstport 3060 \
   -dstdn "uid=superuser,ou=people,dc=people,dc=com" -ldap

上記のコマンドを実行した後、宛先ディレクトリサーバーでDNの詳細を確認してください。

まとめ

本記事で紹介した方法により、既存のOIDストアをOUDへ移行し、大規模アプリケーション向けのシングルサインオンソリューションを実現できます。OUDはLDAPサーバーとしてユーザー認証プロセスにおいて高いパフォーマンスを発揮します。移行手順は非常にわかりやすく、あらゆる種類のアプリケーションに簡単に導入できます。


  1. Oracle繰延売上原価(DCOGS)会計の仕組みと設定方法

    本記事では、Oracle® Cost Management リリース12.0.0以降で利用できる「繰延売上原価(Deferred Cost of Goods Sold:DCOGS)」勘定機能について解説します。この拡張機能により、売上原価(COGS)を収益に直接対応させることが可能となり、従来は実現できなかった収益と費用の正確なマッチングが実現します。 はじめに 以前のバージョンでは、在庫から出荷された商品の価値は、その出荷がまだ収益を計上していなくても、売上原価(COGS)として即時に費用処理されていました。この拡張機能の導入により、在庫から出荷された商品の価値は、まずDCOGS勘定に一時的

  2. Oracle 19cのDBCAコマンドでデータベースをクローンする方法【サイレントモード完全ガイド】

    本記事では、Oracle Database 19cの新機能であるDatabase Configuration Assistant(DBCA)を使用して、ソースデータベースのバックアップを作成することなく、リモートのプラガブル・データベース(PDB)をコンテナ・データベース(CDB)へクローンする手順をご紹介します。 DBCAによるクローンの最大の特長は、ソースからターゲットへの複製にかかる時間が最小限に抑えられる点です。 ソースDBの構成 CDB:LCONCDB PDB:LCON 以下は、ソース側の各コンテナ(CDBおよびPDB)に存在するDBFファイルの総数です。クローン作成後は、ター