組織変更ライブラリ
テクニカル・ホワイトペーパー
2003 年 6 月
1 目的 ...1 2 アーキテクチャと動作環境 ...2 3 階層組織に対応したファイル共有の実装 ...4 3.1 組織による共有(組織フォルダ) ...4 3.2 職責による共有(職責フォルダ) ...5 3.3 プロジェクトによる共有(プロジェクトフォルダ)...6 3.4 非共有(マイ・フォルダ) ...6 4 アクセス権限を一括変更するバッチ処理 ...7 4.1 組織バッチ ...7 4.2 職責バッチ ...9 4.3 組織配属バッチ ...9 4.4 プロジェクトバッチ ...10 4.5 プロジェクト配属バッチ ...10 5 使いやすい Web ユーザー・インタフェース ...11 5.1 一般ユーザー向けの WebUI 機能...11
5.2 Oracle 9iFS の管理者ユーザー向けの WebUI 機能...12
6 Oracle9i AS 上のアプリケーションとのシームレスな統合...13
6.1 OiD 連携による認証 ...13
6.2 シングル・サインオン(SSO)対応 ...13
7 カスタマイズについて ...14
1 目的
本資料では、「組織変更ライブラリ」(以下、本ライブラリ)の提供するソリューション
全体を把握していただくことを目的に、「Oracle Internet File System(Oracle 9iFS)」上での実
2 アーキテクチャと動作環境
システム全体の構成を、図 1 に示します。Oracle 9iFS
Oracle 9iFS
一般ユーザー、Oracle 9iFSの管理者ユーザー http LDAP 認証組織変更・
人事異動
バッチ
Oracle Internet Directory (OiD) 組織定義 CSVファイル
ユーザーの日常的な利用
組織変更にあわせた共有フォルダの
変更(バッチ)
提供部分 凡例 ユーザー情報 • 配属情報 • パスワードWebUI
変更反映
変更反映
バッチアーキテクチャ 図 1 システム全体像 バッチプログラムは、CSV ファイルに記述された組織変更情報と、「Oracle Internet Directory(OiD)」のユーザーエントリから取得したユーザーの組織配属や職責に関する情報を元に、Oracle 9iFS 上のフォルダ、ACL(Access Control List)、 ユーザーグループ(Oracle 9iFS の「グループ」を指します)を一括で変更します。 サーバー上に Java スタンドアローン・プログラムとして実装しています。 WebUI アーキテクチャ 一般ユーザーによる共有ファイルへのアクセスと、Oracle 9iFS の管理者権限を もつユーザーによる個別の権限設定ができる Web アプリケーションです。「Jakarta Struts」フレームワークを活用した J2EE アプリケーションとして実装しています。 ユーザー認証には OiD を用います。 2
本ライブラリの動作は、次のオラクル製品を前提としています。
Oracle 9iFS : Oracle Internet File System R9.0.2
(Oracle9i Application Server R9.0.2 標準付属) Oracle 9iFS 用データベース: Oracle9i Database R9.0.1, 9.2
(Oracle 9iFS R9.0.2 に対応したバージョン) アプリケーションサーバー: Oracle9i Application Server R9.0.2
3 階層組織に対応したファイル共有の実装
本ライブラリは、「組織による共有(組織フォルダ)」「職責による共有(職責フォルダ)」 「プロジェクトによる共有(プロジェクトフォルダ)」の3つの共有形態と、共有しない文 書を管理するための「非共有(マイ・フォルダ)」を提供します。このような、階層組織に 対応するファイル共有を、Oracle 9iFS の標準機能を用いて実装しています。 Oracle 9iFS では、ユーザーもしくはユーザーグループの権限を個別かつ詳細に定義でき ますが、本ライブラリでは、個々のユーザーではなく組織や職責ごとにユーザーグループ を作成し、そのユーザーグループ単位で ACL(Access Control List)を定義します。アクセ ス権限は「ALL」のみを使用します。ユーザーグループの定義から ACL の作成・変更、フォルダへの割当てまでを、バッチに よって一括処理できます。また、Oracle 9iFS の管理者ユーザーは WebUI を使用して設定と 確認をすることができます。
3.1 組織による共有(組織フォルダ)
ユーザーは、業務責任範囲のすべての組織フォルダと、上位組織のフォルダに アクセス権限をもちます。たとえば、ある部に所属する部員は、責任範囲のすべ ての部署(課、係など)と、上位部署である本部のフォルダにアクセスできます。 実装 階層組織を Oracle 9iFS 上に実装するために、組織のユーザーグループには階層 構造をもたせています。ユーザーが所属している組織のうち、最下層組織のユー ザーグループへユーザーを登録することにより、業務責任範囲内のすべての組織 フォルダと、上位組織のフォルダへのアクセス権限が付与されることになります (図2)。 配属される 最下層の組織 配属指示した 組織に配属 アクセスできない フォルダ 配属する組織 アクセスで きないフォ ルダ 最下層の組織に 登録 図 2 組織フォルダの権限設定 43.2 職責による共有(職責フォルダ)
部長職、課長職など職責単位でアクセス権限を設定し、ファイルを共有します。 上位の職責のユーザーは下位職責のフォルダへのアクセス権限をもちます。たと えば部長職にあるユーザーは、課長フォルダにもアクセスできます。 実装 組織のユーザーグループとは異なり、職責のユーザーグループは階層構造をも たせていません。バッチ処理または WebUI での処理により、ユーザーはその職責 に対応した職責グループと、職責レベルが下の職責グループにも登録されます。 そのため、所属する職責より下位のフォルダにもアクセスできます(図3)。職責 レベルは、職責バッチ実行時の CSV データの行番号順に設定されます。 配 属 指 示 し た こ の 職 責 に 配 属 ア ク セ ス で き な い フ ォ ル ダ 職 責 レ ベ ル = 1 職 責 レ ベ ル = 2 職 責 レ ベ ル = 3 職 責 レ ベ ル = 4 職 責 レ ベ ル = 5 職 責 レ ベ ル = 6配属する職責
配属する職責 配属する職責 以下に登録 アクセスでき ないフォルダ 図 3 職責フォルダの権限設定3.3 プロジェクトによる共有(プロジェクトフォルダ)
組織横断的にファイルを共有します。組織構造とは別に、仕事単位(プロジェ クト単位)でフォルダを作成し、プロジェクトに参加するユーザーにアクセス権 限を与えてファイルを共有します。 実装 職責フォルダと同様、プロジェクトのユーザーグループには階層構造をもたせ ていません。各プロジェクトのユーザーグループにユーザーを登録することで、 ユーザーは、配属されたプロジェクトのフォルダにアクセスできます(図4)。 プロジェクト管理者として登録する場合は、グループに「プロジェクト管理者」 という追加属性を設定して識別します。プロジェクト管理者は、そのプロジェク トに配属するメンバーを追加・削除できます。 配属指示した プロジェクトに配属 アクセスできない フォルダ アクセスできない フォルダ 配属する プロジェクト 図 4 プロジェクトフォルダの権限設定3.4 非共有(マイ・フォルダ)
非共有フォルダとして、ユーザー全員に個人用のフォルダを提供します。 64 アクセス権限を一括変更するバッチ処理
メンテナンス作業の軽減
各共有フォルダとそれらに対するアクセス権限は、システム内部では Oracle 9iFS のフォ ルダ、グループ、ACL(Access Control List)を用いて設定されます。
Oracle 9iFS は、これらを手動で個別設定する機能を提供していますが、定期人事異動など 一度に大量の組織変更をシステムに反映しなければならない場合はメンテナンス作業に大 きな負担がかかります。 そこで本ライブラリは、組織の変更を記述した CSV ファイルを利用したバッチ処理機能 を提供します。バッチ処理によって、各共有フォルダの変更とユーザーへのアクセス権限 の付与を一括処理できます。 図5のとおり、バッチには3種類の変更バッチと2種類の配属バッチがあります。変更 バッチは、フォルダを構成し、それぞれに対応するユーザーグループと ACL を作成します。 配属バッチは各ユーザーグループにユーザーを追加・削除します。 プロジェクトバッチ 職責バッチ 組織バッチ 変更バッチ 組織配属バッチ 組織共有フォルダ プロジェクト配属バッチ プロジェクトフォルダ 職責共有フォルダ 配属バッチ プロジェクトバッチ 職責バッチ 組織バッチ 変更バッチ 組織配属バッチ 組織フォルダ プロジェクト配属バッチ プロジェクトフォルダ 職責フォルダ 配属バッチ 対象フォルダ バッチの種類 図 5 組織変更ライブラリのバッチ一覧
4.1 組織バッチ
組織構造に対応したフォルダ構成と権限設定を一括処理します。組織バッチの 変更処理には、「新規作成」「廃止」「分割」「統合」「親部署変更」「再作成」があ ります。 新規作成: 新たに部署を作成する 廃止: 部署を廃止する。廃止後はプロジェクトフォルダ内の「廃止フォル ダ」に移動分割: 分割先の組織に引き継ぐファイルを機械的に判断できないためフ ォルダは分割せず、プロジェクトフォルダ内に「分割フォルダ」以 下に移動し、分割先となる組織(グループ)にアクセス権限を付与 する 統合: 複数の組織を1つにまとめる。統合前の組織フォルダは統合後の新 しい組織フォルダ内に移動 親部署変更: 親となる部署を変更する 再作成: 廃止、分割、統合、親部署変更によってなくなった部署と同じ名前 の部署を新たに作成する 変更するときは、変更前の組織構造と変更指示、および変更後の組織構造をそ れぞれ別の CSV ファイルに記述します。Microsoft Excel などを用いて表1、表2 のように表形式で作成できますが、保存の際には図 6、図 7 のような CSV 形式に します。CSV ファイルの作成方法は問いません。 Id 変更無 分割先 統合先 親部署変更 廃止 組織名 1 y 総務部 2 y 総務課 3 y 1係 4 3 5 5,6 6 y 7 8 8 9 2係 a係 b係 人事課 1係 表 1 旧組織表 Id 新規 再作成 組織名 1 総務部 2 総務課 3 1 4 y 5 A 6 B 7 y C係 8 人事部 9 人事課 10 1係 係 2係 係 係 表 2 新組織表 8
Id,新 規 ,再 作 成 ,組 織 名 ,, 1,,,総 務 部 ,, 2,,,,総 務 課 , 3,,,,,1係 4,,y,,,2係 5,y,,,,3係 6,y,,,,4係 7,y,,,,5係 8,y,,人 事 部 ,, 9,,,,人 事 課 , 10,,,,,1係 Id,変更無,分割先,統合先,親部署変更,廃止,組織名,, 1,y,,,,,総務部,, 2,y,,,,,,総務課, 3,y,,,,,,,1係 4,,,3,,,,,2係 5,,"5,6",,,,,,a係 6,,,,,y,,,b係 7,,,,8,,,人事課, 8,,,,9,,,,1係 図 6 旧組織 CSV 図 7 新組織 CSV
4.2 職責バッチ
職責のユーザーグループには階層構造がないため、「親部署変更」がありません。 その他の変更処理は組織バッチと同じです。CSV ファイルの記述も、「親部署変更」 の項目がない以外は組織バッチと同様です。4.3 組織配属バッチ
組織バッチと職責バッチが作成したグループにユーザーを割り当てます。ユー ザーの所属組織や職責などの情報は CSV ファイルではなく、OiD のユーザーエン トリの属性から取得します。ユーザーエントリの例を図 8 に示します。図 8 OiD のユーザーエントリ例
4.4 プロジェクトバッチ
プロジェクトのユーザーグループには階層構造がないため、「親部署変更」があ りません。その他の変更処理は組織バッチと同じです。CSV ファイルの記述も、 「親部署変更」の項目がない以外は組織バッチと同様です。4.5 プロジェクト配属バッチ
プロジェクトフォルダは、組織構造とは無関係に組織横断で共有します。プロ ジェクトにメンバーを追加する方法には、バッチ処理によって実行する方法と、 Oracle 9iFS の管理者ユーザーもしくはプロジェクト管理者ユーザーが WebUI を使 って手動で処理する方法の2種類があります。バッチ処理の場合には、OiD のユ ーザーエントリではなく、CSV ファイルからプロジェクトへ登録するユーザー情 報を取得します。項目の例を表 3 に示します。 プロジェクト ユーザID 管理者 社員旅行企画 suzuki y tanaka sato 情報共有推進 sato y yoshida 花見 murata y takeda 新入社員歓迎企画kojima y yamada 表 3 プロジェクト配属表 105 使いやすい Web ユーザー・インタフェース
共有ファイルにアクセスするための Web ユーザー・インタフェース(以下、WebUI)を 提供します。Oracle 9iFS の管理者ユーザーは、全ファイルへのアクセスのほか、グループ、 ACL、ユーザーの管理ができます。 実装 MVC モデルに基づくフレームワーク Jakarta Struts を用いて実装しています。個々の画面 と、画面フローおよびビジネスロジックとが分離されており、要件に応じて簡単にカスタ マイズできます。5.1 一般ユーザー向けの WebUI 機能
一般ユーザーには、次の Web インタフェースを提供します(図 9)。 組織フォルダ、職責フォルダ、プロジェクトフォルダ、マイ・フォ ルダのツリーをタブで切替え表示 ファイルのアップロード、ダウンロード ファイルの属性の表示 ファイル名、キーワード、作成者などさまざまな条件による検索 ファイルのバージョニング、チェックイン、チェックアウト プロジェクトの作成、メンバーの追加・削除 マイ・フォルダと組織、職責、 プロジェクトフォルダの選択 タブ ユーザーがアクセス権をも つフォルダのみを表示 ファイルのバージョニング 状況に応じたオブジェクト の削除(ここではファイル やフォルダの削除) ファイル、フォル ダに対する操作 状況に応じた オブジェクトの 作成(ここでは ファイル) プロジェクト作成、メンバー 編集 さまざまな条件によるファ イル検索 図 9 一般ユーザー向けの WebUI 機能5.2 Oracle 9iFS の管理者ユーザー向けの WebUI 機能
Oracle 9iFS の管理者権限をもつユーザーには、次の Web インタフェースを提供 します(図 10)。 一般ユーザー向けのすべての機能 すべてのフォルダへのアクセス権限 組織、職責、プロジェクトのグループ一覧表示と変更 ユーザーの作成・削除 組織、職責、プロジェ クトのグループの一 覧表示 グループ(組織)の一覧表示 管理者ユーザー はACL、ユー ザー、グループ の作成が可能 ユーザーの一覧表示 ACLの一覧表示 全フォルダを表示 図 10 管理者ユーザー向けの WebUI 機能 12
6 Oracle9i AS 上のアプリケーションとのシームレスな統合
6.1 OiD 連携による認証
WebUI のユーザー認証は、Oracle9iAS インフラストラクチャの OiD と連携して おこないます。OiD は、IETF 標準規格の LDAP v3 を実装した LDAP サーバーであ るため、本ライブラリのアプリケーション以外にも、メール・サーバーのユーザ ー認証やメール・クライアントのアドレス帳など他の Web アプリケーションとの 共通ユーザー・リポジトリとして使用できます(図 11)。
6.2 シングル・サインオン(SSO)対応
Oracle9iAS の提供するシングル・サインオン(SSO)にも対応しています(図 11)。本ライブラリの WebUI を含む SSO アプリケーションのいずれか1つでログ インすると、他のアプリケーションも自動的にログイン状態になります。Oracle9i AS インフラストラクチャ
9iFS
WebUI
認証
OiD
Single-Sign On
導入可能新サービスの導入
または既存サービスとの統合
図 11 OiD 連携による認証、シングル・サインオン対応7 カスタマイズについて
オープン技術による実装
本ライブラリはすべてのソースコードを付属提供しており、要件に応じて自由 に改変できます。WebUI は、オープンソースの Jakarta Struts をフレームワークと して用い、J2EE アプリケーションとして実装しています。
WebUI、バッチともにソースコードのビルドツールとしてオープンソースの 「Apache Ant」を用いており、一般的な開発ツールを用いてカスタマイズできます。
開発ツールに関してとくに制限はなく、「Oracle9i JDeveloper」をはじめとする各種
開発ツールを使用できます。
※ Oracle 9iFS SDK API を含む Oracle 9iFS に関するサポートサービス は日本オラクルとのサポート契約により提供されますが、本ライブラリ に関するサポートサービスは提供しておりません。
※ 開発方法に関しては、「組織変更ライブラリ ソリューション構築ガ イド」をご参照ください。
8 関連情報紹介
Jakarta プロジェクト http://jakarta.apache.org • http://www.jajakarta.org/ (日本語訳サイト) • Jakarta Struts http://jakarta.apache.org/struts/index.html • http://www.jajakarta.org/struts/ (日本語訳サイト) • Apache Ant http://ant.apache.org/ • http://www.jajakarta.org/ant/ (日本語翻訳サイト) •日本オラクル株式会社
Copyright © 2003 Oracle Corporation Japan, All Rights Reserved. 無断転載を禁ず
Oracle は、オラクル・コーポレーションの登録商標です。 Oracle9i, Oracle9i Database, Oracle9i Application Server, Oracle9i Developer Suite, Oracle Collaboration Suite, Oracle E-Business Suite 11i はオラクル・コーポレーションの商標または登録商標です。 このほか、本書に記載されたオラクル製品名、オラクルサービ ス名、ロゴはオラクル・コーポレーションの商標または登録商 標です。 その他の会社名、製品名、サービス名、ロゴは、識別のために のみ掲載されており、それぞれの所有者の商標である場合が あります。 本書はあくまでも参考資料であり、記載されている情報は、予 告なしに変更されることがあります。日本オラクルは、本書の 内容に関していかなる保証もいたしません。また、本書の内容 に関連したいかなる損害についても責任を負いかねます。 企業名や団体名などの敬称は省略しました。