Oracle Tuxedoの拡張認証および認可の構成
概要
- Tuxedo 12c 64ビット版(ダウンロード)(インストール)
- OpenDS 2.2-1以降(ダウンロード)(インストール)
- 64ビットOS(Tuxedo 12cは64ビット・システムでのみ使用できるため)
- 2GB RAM
- 40GBのディスク
- 1Ghz以上のCPU
- Tuxedo 12cのインストール: このコースでは、/opt/tuxedoにインストールしたものを使用します。
- OpenDS 2.2-1以降のインストール: このコースでは、/opt/openDSにインストールしたものを使用します。
目的
このチュートリアルでは、Oracle Tuxedo 12cの拡張認証および認可セキュリティ機能の構成とテストの方法を説明します。
所要時間
約1時間
はじめに
一般のLDAPサーバー(GAUTHSVR)とデフォルトのTuxedoセキュリティ機能を使用するときに、TuxedoのセキュリティをACLまたはMANDATORY_ACLに設定する場合は、tpgrpファイルとtpaclファイルの維持管理が引き続き必要です。 Tuxedo専用のファイルと標準のID管理システムの間で引き続きグループと権限を同期化する必要があるため、これは維持管理するうえで面倒な課題です。
Tuxedoには、この問題を排除する拡張認証および認可機能も用意されています。 XAUTHSVRは、汎用認可サービスの他に、GAUTHSVRで提供される汎用認証サービスも提供します。
この演習では、ユーザー認証および認可にオープンソースのOpenDS LDAPサーバーを使用します。 また、Tuxedoのサンプル・アプリケーションsimpappを拡張してTuxedoのセキュリティ構成を使用した拡張認証および認可を行えるようにし、関連するセキュリティ・コードを使用してTuxedoのクライアントおよびサーバーからOpenDS LDAPサーバーに対して認証および認可を実行できるようにします。
この機能を使用すると、他のエンタープライズ・アプリケーションで使用しているのと同じ一元化されたLDAPサーバーをTuxedoアプリケーションでも使用して認証ができるようになると同時に、IDデータを重複して維持管理しなくても保護されたリソースへの認可をTuxedoから行えるようになります。
ハードウェアとソフトウェアの要件
ハードウェアとソフトウェアの要件のリストは、以下のとおりです。
前提条件
このチュートリアルを始める前に、以下の前提条件を満たしておく必要があります。
環境の準備
まず、この演習で使用する環境を設定する必要があります。 今回は、オリジナルのsimpappサンプル・アプリケーションを流用し、Tuxedoのセキュリティを使用できるように変更を加えていきます。
ターミナル・ウィンドウを開いて、演習用のフォルダを作成します。 ここでは、oracleユーザーでログインし、演習用フォルダとして/home/oracle/labを作成します。
$ cd /home/oracle
$ mkdir lab
$ cd lab
simpapp.zipファイルをlabフォルダに保存して解凍します。 これにより、/home/oracle/lab/simpappというフォルダ構造が作成されます。
$ unzip simpapp.zip
setenv.shファイルを編集し、環境変数がすべて正しいことを確認します。
$ cd simpapp
$ gedit setenv.sh &

setenv.shファイルを使用して環境を設定します。
$ . ./setenv.sh
これで、開発環境が整いました。
構成
- BASEをdc=example,dc=comに変更します。この値は、この後LDAPリポジトリを移入するときに使用するsimpapp.ldifファイルに構成されているベースDNと一致しています。
- LDAP_ADDRを//localhost:1389(または、OpenDSをインストールするときに構成したポート番号)に変更します。
- MEMBEROF_KWをismemberofに変更します。これは、グループ・メンバーを検索するときにOpenDSで使用されるキーワードです。
Tuxedoの拡張認証および認可を構成するには、tpldap.xauth構成ファイルの構成と、セキュリティを設定してtpldap.xauthファイルを使用できるようにするTuxedoのUBBCONFIGファイルの構成が必要です。
XAUTHSVR LDAPの構成テキスト・ファイルの編集
tpldap.xauthファイルをコピーし、エディタで開きます。
$ cp $TUXDIR/udataobj/tpldap.xauth .
$ gedit tpldap.xauth
ファイルは次のようになっています。
tpldap.xauthの各パラメータを変更して、ファイルを保存します。
LDAPの管理ログイン資格証明を作成します。
$ tpldapconf -f tpldap.xauth
CMDTUX_CAT:8248: INFO: Using XAUTHSVR configuration file tpldap.xauth
BINDDN: cn=Directory Manager
PASSWORD: oracle
Confirm PASSWORD: oracle
CMDTUX_CAT:8249: INFO: Successfully update tpldap.xauth
このコマンドにより、OpenDS LDAPへの接続に必要な資格証明がtpldap.xauthファイルに追加され、以下のようになります。
これでtpldap.xauthファイルの準備が終了しました。
Tuxedoの構成テキスト・ファイルの編集
ubb.shスクリプトを実行して、UBBCONFIG起動ファイルを作成します。 このスクリプトでは、現在の環境を使用して、UBBCONFIGファイルのパラメータ(マシン名など)を構成します。 スクリプトを実行すると、新しいファイルubbが作成されます。
$ ./ubb.sh
UBBCONFIGファイルを開いて編集し、Tuxedoの拡張認証および認可で必要になる構成パラメータを追加します。
$ gedit ubb &
#TODO: CONFIGURE SECURITY SETTINGS HEREという行を探し、拡張認証および認可を構成するSECURITY、AUTHSVC、およびOPTIONSの各パラメータ値を追加します。
#TODO: CONFIGURE SECURITY SETTINGS HERE
SECURITY ACL
AUTHSVC "..AUTHSVC"
OPTIONS EXT_AA
#TODO: CONFIGURE SECURITY SERVER HEREという行を探し、XAUTHSVRサーバーの構成を追加します。
#TODO: CONFIGURE SECURITY SERVER HERE
XAUTHSVR SRVGRP=GROUP1 SRVID=10 RESTART=Y
CLOPT="-A -- -f tpldap.xauth"
ファイルを保存し、閉じます。
バイナリ・ファイルTUXCONFIGを作成します。アプリケーション・パスワードとしてtuxedoを入力します。 MAXGEN < 2に関する警告メッセージは無視します。
$ tmloadcf -y ubb
これで、TUXCONFIGファイルの準備が終了しました。
LDAPサーバー・スキーマの拡張
Tuxedoの拡張認証および認可用のパーミッションを構成するには、Tuxedoで使用されるオブジェクト・クラスおよび属性を使用して、LDAPサーバーで使用されるスキーマを拡張する必要があります。
ext_schema.ldifファイルを開きます。 最初の行には、LDAPサーバーに格納されているスキーマ情報の場所を示すDNが指定されています。 このエントリのOpenDS側の名前は、cn=schemaです。 このファイルに対する変更はありません。 内容を確認してファイルを閉じます。
ldifファイルをschemaフォルダにコピーしてOpenDSを起動すると、OpenDSのスキーマが拡張されます。
$ cp /home/oracle/lab/simpapp/ext_schema.ldif /opt/openDS/config/schema
$ start-ds &
OpenDSサーバーが起動したら、コントロール・パネルを開いてLDAPサーバーの内容を表示できます。 コントロール・パネルを実行し、カスタム・スキーマがOpenDSに取り込まれていることを確認します。
$ control-panel &
以下の資格証明を入力して、「OK」をクリックします。
Bind DN: cn=Directory Manager
Password: oracle
注: 上のスクリーンショットに表示されているとおり、OpenDSは実際には/home/oracle/OpenDS-2.2.1にインストールされています。 ただし、このフォルダへのリンクを/opt/openDSとして作成してあるため、このコースではリンクを参照しています。
左側のナビゲーション・ウィンドウで、「Schema」→「Manage Schema」の順に選択して、スキーマ・ブラウザを開きます。
左側のナビゲーション・ウィンドウで、「Object Classes」→「Custom」→「orcljaznpermission」の順に選択して、Tuxedoのパーミッション・クラスを表示します。 ウィンドウを下方向にスクロールして、関連属性を表示します。
左側のナビゲーション・ウィンドウで、「Attributes」→「Custom」の順に選択して、Tuxedoのパーミッション属性を表示します。 いくつかの属性を選択して、詳細を確認します。
これで、LDAPサーバーのスキーマは、Tuxedoによる認可ができるよう適切に拡張されました。
OpenDS LDAPサーバーのIDとパーミッションの構成
OpenDSを使用して、LDAPのIDとパーミッションの構成をインポートします。 この情報は、Tuxedoでユーザーを認証および認可するときに使用されます。
「Directory Data」→「Import LDIF」の順に選択します。
File to Import: /home/oracle/lab/simpapp/simpapp.ldif
Import Type: Append to Existing Data(およびReplace Entries that have Matching DN's with imported values)
Schema Validation: Reject Entries That are Not Schema-Compliant
「OK」をクリックし、Import Completeダイアログが表示されるまで待機します。 「Close」をクリックします。
LDAPサーバーにIDが存在することを確認します。
「Directory Data」→「Manage Entries」の順に選択して、LDAPエントリ・ブラウザを開きます。
最上位レベルのエントリであるusers、groups、およびpermissionsが左側のペインに表示されます。 構造全体を開き、すべてのエントリを表示します。
TOUPPERサービスは、toupper_svcパーミッションで保護されています。このパーミッションでは、toupperグループのメンバーのみにこのサービスのEXECUTE権限を付与しています。 ユーザーjimは、toupperグループの唯一のメンバーであるため、jimのみがTOUPPERサービスの実行を認可されます。
TOLOWERサービスは、tolower_svcパーミッションで保護されています。このパーミッションでは、tolowerグループのメンバーのみにこのサービスのEXECUTE権限を付与しています。 ユーザーjohnは、tolowerグループの唯一のメンバーであるため、johnのみがTOLOWERサービスの実行を認可されます。
MIXEDサービスは、mixed_svcパーミッションで保護されています。このパーミッションでは、employeesグループのメンバーのみにこのサービスのEXECUTE権限を付与しています。 toupperグループとtolowerグループは両方ともemployeesグループの子であるため、jimとjohnは、2人ともMIXEDサービスの実行を認可されます。
終了したら、「Close」をクリックします。
これで、LDAPサーバーが適切に構成されました。
アプリケーションの実行
- ユーザーjimは、toupperグループとemployeesグループのメンバーであるため、TOUPPERサービスとMIXEDサービスへのアクセスを許可されます。
- ユーザーjohnは、tolowerグループとemployeesグループのメンバーであるため、TOLOWERサービスとMIXEDサービスへのアクセスを許可されます。
新しく構成したアプリケーションを実行して、あらゆることをテストします。
Tuxedoアプリケーションの起動
Tuxedoを起動します。
$ tmboot -y
XAUTHSVRプロセスの起動が成功していることを確認します。 userlogをチェックして、エラーがないことを確認します。
テスト・クライアントの実行
simpclクライアントを実行して、拡張認証および認可の構成が機能するかどうかをテストします。 すべてが適切に構成されていれば、以下のような結果になります。
次のコマンドを入力して、クライアントを実行します。
$ simpcl helloWORLD
$ Application Password: tuxedo
$ User Name: [jimまたはjohn]
& User Password: oracle
これで完了です。 アプリケーションが適切に機能し、使用を認可されたサービスへのアクセスのみがユーザーに認可されていれば、Tuxedoの拡張セキュリティは適切に構成されています。
アプリケーションの停止
次は、環境をクリーンアップして、アプリケーションを停止します。
Tuxedoを停止し、すべてのターミナル・ウィンドウを閉じます。
$ tmshutdown -y
まとめ
- TuxedoのXAUTHSVRセキュリティ・サーバーの構成
- OpenDSへのTuxedo認可スキーマ・オブジェクトの追加
- OpenDSのIDの構成
- OpenDSの認可パーミッションの構成
- 認証シナリオと認可シナリオのテスト
- Tuxedo 12cのドキュメント
- Tuxedoについて詳しくは、Oracle Learning Libraryでその他のOBEを参照してください。
- カリキュラム開発責任者: Mark Lindros
- 共著者: Weiming Zhang
このチュートリアルでは、次の手順でTuxedoの拡張認証および認可を構成する方法を学習しました。
参考資料
著者
このOracle by Exampleをナビゲートする際、次の機能を使用できます。
- ヘッダー・ボタンの非表示:
- ヘッダー内のボタンを非表示にするには、タイトルをクリックします。 ボタンを再表示するには、もう一度タイトルをクリックします。
- トピック一覧ボタン:
- すべてのトピックの一覧です。 いずれかのトピックをクリックすると、その項に移動します。
- すべてのトピックを開く/閉じる:
- すべての項に対する詳細を表示または非表示にします。 デフォルトでは、すべてのトピックが閉じられています。
- すべてのイメージを表示/非表示:
- すべてのスクリーンショットを表示または非表示にします。 デフォルトでは、すべてのイメージが表示されています。
- 印刷:
- コンテンツを印刷します。 現在表示または非表示にされているコンテンツが印刷されます。
このチュートリアルの特定の項に移動するには、一覧からトピックを選択してください。