目次

関連項目
EDB/CMSの技術仕様
EDB/CMSのアクセスコントロール
EDB/CMS - サーバの切替え (ヘルプ)

ディレクトリ,ファイル名についての制約

EDB/CMSには,ディレクトリ,ファイルの名前について以下のような制約が存在する.

ディレクトリ(フォルダ),ファイル名には半角ASCII文字を使用する

EDB/CMSにおけるディレクトリ(フォルダ)やファイルの名前には半角ASCII文字を利用することを推奨する.

すなわち,名前に使用できる文字は,「a」〜「z」,「A」〜「z」,「0」〜「9」,「-」,「.」,「@」とする.これら以外の文字を使用した場合には,EDB/CMS上で行われるディレクトリ,ファイルの操作は保証されない.

EDB/CMSで利用しているウェブサーバ自体は,和文のファイル名を使用することができる.文字コードはUnicodeTM(エンコード方式はUTF-8)である.Unicodeは世界中の文字種を統合するために設計されたものであるが,機種依存文字という概念を許容している.すなわち,オペレーティングシステムによって表示できるかどうかが左右される文字が存在している.特に丸付きの数字やローマ数字,複合文字などは危険である.

WWWの特徴のひとつとして,ハイパーリンクによるコンテンツの有機的な結合が挙げられるが,和文を含むリンク指定がうまく動作する保証はないため,注意が必要である.

「.」,「@」から始まるディレクトリ,ファイル名は予約される

「0」〜「9」で始まるディレクトリ,ファイル名は特別な意味で解釈される

「0」〜「9」のいずれかから始まる名前は,EDBの登録情報と関連付けを行うために利用されている.

特別なディレクトリ名

EDB/CMSには特別なディレクトリ名が予約されており,それによって読み出し制限や書き込み制限の制御を行っている.

読み出し制限

EDB/CMSにおいて,「@University」「@User」,「@Member」というディレクトリ名は特別な意味を持ち,そのディレクトリ以下のコンテンツに対して以下のようなアクセス制限を掛けることができる.

ディレクトリ名 説明
@University 学内のみに公表するコンテンツ
  • 「学内」とは,IPアドレスが「150.59.0.0/16」に含まれるホストからのアクセスである
  • https(SSL接続)においてパスワード認証,もしくはX.509個人証明書の認証に成功したユーザに対しては,接続元IPアドレスの制約を受けない(学内からのアクセスと見なす)
  • アクセスを許可される可能性があるのは,本学の教職員,学生,および一時的な学内ネットワークの利用者である
@User EDBユーザ(教職員)のみに公表するコンテンツ
  • 「ユーザ」とは,EDBにおいてアカウントを所有するユーザを意味する
  • 原則として,EDBのアカウントを付与されるのは,本学の教職員およびそれに類する(補佐員など)人物である
@Member 組織に属するメンバにのみ公表するコンテンツ
  • 対象となる情報が組織の場合のみ意味を持つ
  • 「メンバ」とは,該当する組織情報において「構成員」「支援者」「観察者」として登録されている個人である(Apr. 21, 2010変更)
  • 組織の構成員のリスト作成においては,下位の組織を再起的に探索する
  • 学部や学科に属する教職員,委員会のメンバがこれにあたる

上記のアクセス制限においては,おおむね「インターネット ⊃ @University ⊃ @User ⊃ @Member」という包含関係が満たされている.

上記のディレクトリは,ディレクトリのどの階層にある場合にも当てはまる.

上記のディレクトリが入れ子になっている場合には,上位のディレクトリが下位のディレクトリのアクセス制限に影響する.すなわち,

における「@University」以下のアクセス制限は,「@User」と同等となる.

書き込み制限

通常,ある情報に対応するディレクトリは,その情報に関して権限を持っているユーザのみが書き込み可能となる.

「@Writable」という名前のディレクトリを作ると,それ以下の領域において書き込み権限をその情報の「構成員」に登録されているユーザに広げることができる.

「個人」,「擬人」,その他の情報に対応するディレクトリに「@Writable」というディレクトリを作成しても無意味である.

EDBのテーブル 権限を持つユーザの抽出 構成員の抽出(@Writable以下)
組織 その組織情報に対して権限を持つユーザ
および「支援者」に登録されているユーザもしくは組織の「構成員」(再起的に抽出)(Apr. 21, 2010追加)
その組織情報の「構成員」に登録されている個人(再起的に抽出)
教育プログラム 教育プログラムの所有者,および所属する組織の権限を持つユーザ 教育プログラムが所属する組織の「構成員」に登録されているユーザ
個人 その個人のみ
擬人 その擬人に対して権限を持つユーザのみ.ただし所有者は除く
その他 EDBの情報に対して権限を持つユーザ

アクセス制限

EDB/CMSにアクセスする方法としては,

HTTPプロトコルによるアクセス
ウェブブラウザを用いて「http://〜」にアクセスする方法
ユーザ認証を行わず,アクセス制限は静的に設定されている
「@passwd」ファイルが存在するディレクトリに関しては,「@passwd」によるユーザ認証を行う(July 15, 2006)
「@ldap」ファイルが存在するディレクトリに関しては,「@ldap」によるユーザ認可を行う(July 21, 2009)
HTTPSプロトコルによるアクセス
ウェブブラウザを用いて「https://〜」にアクセスする方法
WebDAVのクライアントアプリケーションを用いる方法
ユーザ認証が必要であり,アクセス制限は静的+各ディレクトリにおけるアクセス制限設定によってアクセスの可否が判断される
アクセス制限はEDB/CMSの定期的な処理,もしくはユーザが明示的にを押して再設定を行った後に有効となる

が用意されている.ディレクトリ名に対するアクセス制限は以下のように設定される.

ディレクトリ名 認証なし(http://〜) 認証あり(https://〜)
インターネットユーザ EDBのユーザ(教職員)
読み込み 書き込み 読み込み 書き込み
〜/@University/〜 学内 × 許可されている場合のみ
〜/@User/〜 × × 許可されている場合のみ
〜/@Member/〜 × × 許可されている場合のみ
〜/@Writable/〜 × 許可されている場合のみ

ただし,ディレクトリが入れ子になっている場合には,上位ディレクトリのアクセス制限が下位ディレクトリのアクセス制限に影響する.

アクセスリスト生成に関する基本事項

アクセスリストの生成には基本的にEDBの登録情報の権限継承関係を利用しているが,若干の変更がなされている.

あるディレクトリの階層構造に関して,

名前が「0」〜「9」から始まるディレクトリ,ファイル

名前が「0」〜「9」から始まるディレクトリ,ファイルで,

の形式に当てはまるものは,正整数の部分(すなわち,最初から「.」の直前まで)をEDBの登録情報のEIDに対応するものと解釈する.

EDBの登録情報に関連するディレクトリ,ファイル名

EIDのディレクトリ名やファイル名が入れ子になる場合には,下位のEIDが優先する.

特別なファイル名

EDB/CMSには,以下のような特別なファイル名が予約されている.

ファイル名 認証なし(http://〜) 認証あり(https://〜) 認証あり(WebDAV) ユーザによる変更の可否
インターネットユーザ EDBユーザ(教職員)
.htsacc アクセス制限設定ファイル (*9) ×
.sacc アクセス制限設定ファイル (*2, *9) ×
.acc アクセス制限設定ファイル (*2, *9) ×
@passwd ユーザが設定するパスワードファイル (*5)
@ldap ユーザが設定するLDAPユーザリストファイル (*6)
@ldap-result.txt @ldapを参照して作成されたユーザリスト(確認用) ×
@reader 読み込み権限を持たせるユーザの追加ファイル (*7)
@writer 書き込み権限を持たせるユーザの追加ファイル (*7)
.head.html ディフォルトのディレクトリインデックスの最初の部分 (*9) ×
.foot.html ディフォルトのディレクトリインデックスの最後の部分 (*9) ×
@davindex.html WebDAV用のインデックス (*9) ×
index.html ユーザが独自に作成するインデックスファイル (*1)
sindex.html ユーザが独自に作成するインデックスファイル (*1)
@replace.url リダイレクト先のURLリスト (*3)
@here.url (*4) ×
@config (*8) 各種設定
(*1) このファイルが存在する場合,ディフォルトのディレクトリインデックスは表示されない
(*2) このファイルはユーザが任意に消去できるように設定されているが,このファイルを単独で消去するとアクセス制限を誤作動させる危険性があることに注意する
(*3) 「.foot.html」作成時に参照され,ディフォルトのディレクトリインデックスアクセス時にリダイレクト(転送)が掛かる.「index.html」作成時には無効.ファイルの内容は,
URL=url
という形式である.例として,
URL=http://cms.db.tokushima-u.ac.jp/DAV/lecture/1234567/
URL=http://my.server/my/folder/lecture/1234567/
URL=/DAV/lecture/1234567/
URL=@University/
URLはフルパスで書くのが好ましい(多くのブラウザでファイル自体を開くことが可能).url中に非Latin文字(和文など)が含まれる場合には,文字コードの違いによりウェブブラウザが正しく目的のページを開くことができない可能性がある.和文等が含まれる場合には,複数のブラウザで動作確認を行う
(*4) 現在のディレクトリを指し示す.urlファイル.「@replace.url」に名前を変更して,他のディレクトリにおいて利用する
(*5) EDBユーザ以外のアクセスにBasic認証を適用したい場合には,対象となるディレクトリに「@passwd」ファイルを設置する方法を提供している(July 15, 2006).ただし設定可能なのは読み出しのみである.また,この方法ではアカウント,パスワードの管理はそのコンテンツエリアを管理している方の責任において行ってもらう必要がある. 「@passwd」は通常のウェブサーバで用いられる「.htpasswd」と同じフォーマットであり,現在のEDB/CMSでは,
plain text(平文) 強く使うべきではない
crypto(3)(DES暗号化) あまり使うべきではない
Apache modified MD5 SHAが利用できない場合に使う
SHA 推奨
が利用できる.作成例は,Apacheの「htpasswd」コマンドが利用できる環境で,
% htpasswd -b -c -s @passwd username password
とする. 「@passwd」ファイルを実際にアクセス制限に反映させるには,ボタンをクリックして,能動的にディレクトリの再設定を行う必要がある(もしくは,定期的な再設定作業を待つ). アクセス制限の設定は,そのディレクトリ中の
.acc
情報のサブディレクトリにおけるアクセスコントロールファイル(削除可能)
にて行われる(ただし,ディレクトリ「@User」,「@Member」以下では作成されない). 「@passwd」ファイルの内容は,HTTPによるアクセス(http://〜)からは隠蔽されるが,認証されたHTTP+SSLによるアクセス(https://〜)に対しては隠蔽されない
(*6)

EDBユーザ以外のアクセスにユーザ認証を適用したい場合には,対象となるディレクトリに「@ldap」ファイルを設置する方法を提供している(July 21, 2009).ただし,読み出しのみが可能である.また,この方法ではユーザリストはそのコンテンツエリアを管理しているユーザの責任において行っていただくことになる.

「@ldap」を利用した場合でも,上記のディレクトリ名によるアクセス制限は有効であり,その制限の中でさらにユーザを制限したい場合に用いることができる.すなわち,「@User」,「@Member」ディレクトリ以下で「@ldap」を作成しても意味である(HTTPアクセスではもともと読み出し不可なため).「@University」以下で作成した場合には,学内からのアクセスで,かつ「@ldap」によるLDAP認証可能なユーザに制限される.

「@ldap」はテキスト形式で内容は

uid:user-id1:任意文字列
uid:user-id2:任意文字列
uid:user-id3:任意文字列
uid:user-id4:任意文字列
のように記述する.user-id1は徳島大学統一認証基盤にて利用可能なアカウント名である.

「@ldap」ファイルを実際にアクセス制限に反映させるには,ボタンをクリックして,能動的にディレクトリの再設定を行う必要がある(もしくは,定期的な再設定作業を待つ).

「@ldap」に教務システムにおける時間割コード,科目コードを指定することにより,履修学生の集合を登録することが可能である.(Apr. 27, 2012)
時間割コードの場合には

timetable:履修年度-時間割コード1:任意文字列
timetable:履修年度-時間割コード2:任意文字列
のように記述する.時間割コード1は時間割表等に記載してあるおおよそ7桁ぐらいのコードである.
科目コードの場合には
subject:履修年度-科目コード1:任意文字列
subject:履修年度-科目コード2:任意文字列
のように記述する.(科目コードは教務システム外においてはあまり使われていないようである)

一つの「@ldap」にuid, timetable, subjectによる指定を混在させて良い.結果は和集合となる.

履修年度にワイルドカード(*)指定すると,履修年度に依らない履修学生の集合(ただし,在学生のみ)に変換される.

時間割コード,科目コードのいずれの場合においても,その時点で得られている履修学生の集合に展開された後,アクセス制限に反映される.したがって,教務システムへの学生の履修登録状況の変化に対して自動的に追従する.

「@ldap」を参照して作成されたユーザリストは,「@ldap-result.txt」にリストアップされる.正常に設定されているかどうかはこのファイルの内容で確認することができる.

教務システムからの履修学生のリストは1日1回の提供なので,アクセスコントロールリストの更新は実質,日単位で行われる.言い替えると,履修登録後,コンテンツにアクセス可能になるのは翌日となる.

アクセス制限の設定は,そのディレクトリ中の

.acc, .ldap-acc, .ldap-sacc
情報のサブディレクトリにおけるアクセスコントロールファイル(削除可能)

にて行われる(ただし,ディレクトリ「@User」,「@Member」以下では作成されない).

「@ldap」を設定後,各サーバでは,

サーバ ユーザ名 適用
http://cms.- user-id1-otp
user-id2-otp
user-id3-otp
user-id4-otp
使い捨てパスワードによるBasic認証
{http,https}://cms-ldap.tokushima-u.ac.jp/cgi-bin/ldap-ac でhttp://cms.db.tokushima-u.ac.jpに使い捨てパスワードを設定する.
設定される使い捨てパスワードはhttp://cms.db.tokushima-u.ac.jp内で共通.
http://cms-ldap.- user-id1
user-id2
user-id3
user-id4
LDAP(UNI-LDAP)認証
https://cms-ldap.-
のように認可されるアカウント名が設定される.

「@passwd」によるBasic認証を設定した時には,「@ldap」による設定は無視される.

(*7) EDBから自動的に生成されるReaders(読み出し可能なユーザ),Writers(書き込み可能なユーザ)のリストに,新たに追加したいユーザのリストを設定するファイル(Jan 24, 2007). 「@reader」に記述されたユーザは読み出し可能ユーザのリストに追加され,「@writer」に記述されたユーザは読み出し可能ユーザと書き込み可能ユーザのリスト両方に追加される. 各々のファイルの内容は,
S12345
S23456
のように,必要なだけユーザ名を一行ずつ記述する. これらのファイルを実際にアクセス制限に反映させるには,ボタンをクリックして,能動的にディレクトリの再設定を行う必要がある(もしくは,定期的な再設定作業を待つ). 「@reader」「@writer」によるユーザリストの追加は,下位のディレクトリにも影響する.この影響を抑制するには,内容が空の「@reader」「@writer」を下位ディレクトリに配置する.階層ディレクトリ構造において,「@reader」「@writer」の内容は追加ではなく上書きされる. 上位ディレクトリにおいて読み出し権限のないユーザを「@reader」「@writer」中に記述しても,読み出し可能ユーザリストや書き込み可能ユーザリストに追加されることはない
(*8) 設定時に参照される.(@config)
○ インデックスページ作成制御
noindex ディレクトリ名
と記述しておくと,そのディレクトリ以下についてはインデックスを作成しない.ただし,インデックスが作成されないので,「@replace.url」によるリダイレクト機能は利用できなくなる
○ ログ出力制御
@configファイルが置かれたディレクトリ(以降,$BaseDir)以下のコンテンツへのアクセス状況を出力する.
☆ 指定方法:
log-output ログ期間開始時点 ディレクトリ名
ログ期間開始時点
指定方法は秒数による指定と日時による指定方法がある.
(いずれの場合にも終了時点はログ作成時刻)
秒数による指定 … ログ作成時刻から遡る過去の秒数を整数値で指定する.
記述ログ期間開始時点
86400ログ作成時刻から1日(24時間)前を開始時刻とする.
604800ログ作成時刻から7日(168時間)前を開始時刻とする.
2592000ログ作成時刻から30日前を開始時刻とする.
7776000ログ作成時刻から90日前を開始時刻とする.
ログ開始時刻による指定 … ログ開始日時を
YYYY-MM-DD
YYYY-MM-DDThh:mm:ss
形式で直接指定する.(時刻はJSTによる指定とみなされる)
記述ログ期間開始時点
2013-12-282013年12月28日 00時00分00秒
2013-12-28T19:00:002013年12月28日 19時00分00秒
いずれの指定方法においても,システムに定める最大の過去を越えて遡ることはできない.(このドキュメントを記述している時点でログ作成時刻から90日の過去の設定)
ディレクトリ名
アクセスログを出力するディレクトリ.$BaseDir からの相対パスで指定する.
ディレクトリは自動作成されないため,あらかじめユーザ側で作成する.(指定ディレクトリが存在しない場合には,ログ出力ファイルを作成しない)
☆ 設定例:
「過去1週間」のログファイルをディレクトリ「@Member/log」に作成する.
log-output 604800 @Member/log
「2014年1月1日」からのログファイルをディレクトリ「@University/log」に作成する.
log-output 2014-01-01 @University/log
☆ ログ出力ファイルの内容: EDB/CMSにおいて提供されているコンテンツへのアクセスインタフェース
  • 一般閲覧用
  • 学生閲覧用(学内)
  • 学生閲覧用(学外)
  • 教職員閲覧・登録(ID&Pass)
  • 教職員閲覧・登録(EDB/PKI)
のアクセスログをマージし,$BaseDir 以下のへのコンテンツに関するアクセスログを抽出したもの.
(注)処理の軽量化のため,
  • HTTPリクエストのうち,GET, HEAD以外のアクセス
  • HTTPリクエストのうち,エラーとなったアクセス
  • EDB/CMS固有の設定ファイル等(「.」「@」で始まるファイル名)へのアクセス.
  • EDB関連システムからのアクセス
  • Web検索エンジンのクローリングと判断されるアクセス
は省略している.
☆ ログ出力ファイルのフォーマット:
ファイル名フォーマット
@access-logApacheログ形式.
@access-log.xlsExcel形式
@access-log.csvCSV形式(UTF-8 Encoding)
@access-log.CSVCSV形式(Shifted-JIS Encoding)
@access-log.tsvTSV形式(UTF-8 Encoding)
@access-log.TSVTSV形式(Shifted-JIS Encoding)
(各カラムの内容説明は,見れば大体わかるので省略)
(注)Excel, CSV形式のカラム並び順の変更および追加は予告なく行われる可能性がある.(カラムの名称変更及び削除は可能な限り行わない)プログラムによるログ解析を行う場合には必ず先頭行のカラム名の並び順を参照した処理を行うこと.(固定の値の並び順に依存した処理は行わない)
☆ ログ出力ファイル更新は
  • 数時間周期で行われるEDB/CMSの自動再設定処理
  • ユーザによるボタン押下による再設定
時に行われる.
本機能はWebサーバ(Apache)のアクセスログファイルを元に処理を行っているため,サーバシステムの更新やメンテナンス作業によるログファイルの消失時には,100%の正確性を保証するものではありません.
(*9) EDB/CMSによって自動的に生成される.