Oracle Tuxedoの拡張認証および認可の構成

概要

    目的

    このチュートリアルでは、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から行えるようになります。

    ハードウェアとソフトウェアの要件

    ハードウェアとソフトウェアの要件のリストは、以下のとおりです。

    前提条件

    このチュートリアルを始める前に、以下の前提条件を満たしておく必要があります。

    • Tuxedo 12cのインストール: このコースでは、/opt/tuxedoにインストールしたものを使用します。
    • OpenDS 2.2-1以降のインストール: このコースでは、/opt/openDSにインストールしたものを使用します。

環境の準備

    まず、この演習で使用する環境を設定する必要があります。 今回は、オリジナルの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

    これで、開発環境が整いました。

構成

    Tuxedoの拡張認証および認可を構成するには、tpldap.xauth構成ファイルの構成と、セキュリティを設定してtpldap.xauthファイルを使用できるようにするTuxedoのUBBCONFIGファイルの構成が必要です。

    XAUTHSVR LDAPの構成テキスト・ファイルの編集

      tpldap.xauthファイルをコピーし、エディタで開きます。

      $ cp $TUXDIR/udataobj/tpldap.xauth .
      $ gedit tpldap.xauth

      ファイルは次のようになっています。

      tpldap.xauthの各パラメータを変更して、ファイルを保存します。

      • BASEdc=example,dc=comに変更します。この値は、この後LDAPリポジトリを移入するときに使用するsimpapp.ldifファイルに構成されているベースDNと一致しています。
      • LDAP_ADDR//localhost:1389(または、OpenDSをインストールするときに構成したポート番号)に変更します。
      • MEMBEROF_KWismemberofに変更します。これは、グループ・メンバーを検索するときにOpenDSで使用されるキーワードです。

      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という行を探し、拡張認証および認可を構成するSECURITYAUTHSVC、および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エントリ・ブラウザを開きます。

      最上位レベルのエントリであるusersgroups、および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グループの子であるため、jimjohnは、2人ともMIXEDサービスの実行を認可されます。

      終了したら、「Close」をクリックします。

      これで、LDAPサーバーが適切に構成されました。

アプリケーションの実行

    新しく構成したアプリケーションを実行して、あらゆることをテストします。

    Tuxedoアプリケーションの起動

      Tuxedoを起動します。

      $ tmboot -y

      XAUTHSVRプロセスの起動が成功していることを確認します。 userlogをチェックして、エラーがないことを確認します。

    テスト・クライアントの実行

      simpclクライアントを実行して、拡張認証および認可の構成が機能するかどうかをテストします。 すべてが適切に構成されていれば、以下のような結果になります。

      • ユーザーjimは、toupperグループとemployeesグループのメンバーであるため、TOUPPERサービスとMIXEDサービスへのアクセスを許可されます。
      • ユーザーjohnは、tolowerグループとemployeesグループのメンバーであるため、TOLOWERサービスとMIXEDサービスへのアクセスを許可されます。

      次のコマンドを入力して、クライアントを実行します。

      $ simpcl helloWORLD
      $ Application Password: tuxedo
      $ User Name: [jimまたはjohn]
      & User Password: oracle

      これで完了です。 アプリケーションが適切に機能し、使用を認可されたサービスへのアクセスのみがユーザーに認可されていれば、Tuxedoの拡張セキュリティは適切に構成されています。

アプリケーションの停止

    次は、環境をクリーンアップして、アプリケーションを停止します。

    Tuxedoを停止し、すべてのターミナル・ウィンドウを閉じます。

    $ tmshutdown -y

まとめ

    このチュートリアルでは、次の手順でTuxedoの拡張認証および認可を構成する方法を学習しました。

    • TuxedoのXAUTHSVRセキュリティ・サーバーの構成
    • OpenDSへのTuxedo認可スキーマ・オブジェクトの追加
    • OpenDSのIDの構成
    • OpenDSの認可パーミッションの構成
    • 認証シナリオと認可シナリオのテスト

    参考資料

    著者

    • カリキュラム開発責任者: Mark Lindros
    • 共著者: Weiming Zhang

このOracle by Exampleをナビゲートする際、次の機能を使用できます。

ヘッダー・ボタンの非表示:
ヘッダー内のボタンを非表示にするには、タイトルをクリックします。 ボタンを再表示するには、もう一度タイトルをクリックします。
トピック一覧ボタン:
すべてのトピックの一覧です。 いずれかのトピックをクリックすると、その項に移動します。
すべてのトピックを開く/閉じる:
すべての項に対する詳細を表示または非表示にします。 デフォルトでは、すべてのトピックが閉じられています。
すべてのイメージを表示/非表示:
すべてのスクリーンショットを表示または非表示にします。 デフォルトでは、すべてのイメージが表示されています。
印刷:
コンテンツを印刷します。 現在表示または非表示にされているコンテンツが印刷されます。

このチュートリアルの特定の項に移動するには、一覧からトピックを選択してください。