EDB/CMSには,ディレクトリ,ファイルの名前について以下のような制約が存在する.
EDB/CMSにおけるディレクトリ(フォルダ)やファイルの名前には半角ASCII文字を利用することを推奨する.
すなわち,名前に使用できる文字は,「a」〜「z」,「A」〜「z」,「0」〜「9」,「-」,「.」,「@」とする.これら以外の文字を使用した場合には,EDB/CMS上で行われるディレクトリ,ファイルの操作は保証されない.
EDB/CMSで利用しているウェブサーバ自体は,和文のファイル名を使用することができる.文字コードはUnicodeTM(エンコード方式はUTF-8)である.Unicodeは世界中の文字種を統合するために設計されたものであるが,機種依存文字という概念を許容している.すなわち,オペレーティングシステムによって表示できるかどうかが左右される文字が存在している.特に丸付きの数字やローマ数字,複合文字などは危険である.
WWWの特徴のひとつとして,ハイパーリンクによるコンテンツの有機的な結合が挙げられるが,和文を含むリンク指定がうまく動作する保証はないため,注意が必要である.
「0」〜「9」のいずれかから始まる名前は,EDBの登録情報と関連付けを行うために利用されている.
EDB/CMSには特別なディレクトリ名が予約されており,それによって読み出し制限や書き込み制限の制御を行っている.
EDB/CMSにおいて,「@University」「@User」,「@Member」というディレクトリ名は特別な意味を持ち,そのディレクトリ以下のコンテンツに対して以下のようなアクセス制限を掛けることができる.
ディレクトリ名 | 説明 |
@University | 学内のみに公表するコンテンツ
|
---|---|
@User | EDBユーザ(教職員)のみに公表するコンテンツ
|
@Member | 組織に属するメンバにのみ公表するコンテンツ
|
上記のアクセス制限においては,おおむね「インターネット ⊃ @University ⊃ @User ⊃ @Member」という包含関係が満たされている.
上記のディレクトリは,ディレクトリのどの階層にある場合にも当てはまる.
上記のディレクトリが入れ子になっている場合には,上位のディレクトリが下位のディレクトリのアクセス制限に影響する.すなわち,
における「@University」以下のアクセス制限は,「@User」と同等となる.
通常,ある情報に対応するディレクトリは,その情報に関して権限を持っているユーザのみが書き込み可能となる.
「@Writable」という名前のディレクトリを作ると,それ以下の領域において書き込み権限をその情報の「構成員」に登録されているユーザに広げることができる.
「個人」,「擬人」,その他の情報に対応するディレクトリに「@Writable」というディレクトリを作成しても無意味である.
EDBのテーブル | 権限を持つユーザの抽出 | 構成員の抽出(@Writable以下) |
組織 | その組織情報に対して権限を持つユーザ および「支援者」に登録されているユーザもしくは組織の「構成員」(再起的に抽出)(Apr. 21, 2010追加) |
その組織情報の「構成員」に登録されている個人(再起的に抽出) |
---|---|---|
教育プログラム | 教育プログラムの所有者,および所属する組織の権限を持つユーザ | 教育プログラムが所属する組織の「構成員」に登録されているユーザ |
個人 | その個人のみ | |
擬人 | その擬人に対して権限を持つユーザのみ.ただし所有者は除く | |
その他 | EDBの情報に対して権限を持つユーザ |
EDB/CMSにアクセスする方法としては,
が用意されている.ディレクトリ名に対するアクセス制限は以下のように設定される.
ディレクトリ名 | 認証なし(http://〜) | 認証あり(https://〜) | ||
インターネットユーザ | EDBのユーザ(教職員) | |||
読み込み | 書き込み | 読み込み | 書き込み | |
〜/@University/〜 | 学内 | × | ○ | 許可されている場合のみ |
---|---|---|---|---|
〜/@User/〜 | × | × | ○ | 許可されている場合のみ |
〜/@Member/〜 | × | × | ○ | 許可されている場合のみ |
〜/@Writable/〜 | ○ | × | ○ | 許可されている場合のみ |
ただし,ディレクトリが入れ子になっている場合には,上位ディレクトリのアクセス制限が下位ディレクトリのアクセス制限に影響する.
アクセスリストの生成には基本的にEDBの登録情報の権限継承関係を利用しているが,若干の変更がなされている.
あるディレクトリの階層構造に関して,
名前が「0」〜「9」から始まるディレクトリ,ファイルで,
の形式に当てはまるものは,正整数の部分(すなわち,最初から「.」の直前まで)をEDBの登録情報のEIDに対応するものと解釈する.
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では,
% htpasswd -b -c -s @passwd username passwordとする. 「@passwd」ファイルを実際にアクセス制限に反映させるには,ボタンをクリックして,能動的にディレクトリの再設定を行う必要がある(もしくは,定期的な再設定作業を待つ). アクセス制限の設定は,そのディレクトリ中の
|
||||||||||||||||||||||||||||||
(*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回の提供なので,アクセスコントロールリストの更新は実質,日単位で行われる.言い替えると,履修登録後,コンテンツにアクセス可能になるのは翌日となる. アクセス制限の設定は,そのディレクトリ中の
にて行われる(ただし,ディレクトリ「@User」,「@Member」以下では作成されない). 「@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)
本機能はWebサーバ(Apache)のアクセスログファイルを元に処理を行っているため,サーバシステムの更新やメンテナンス作業によるログファイルの消失時には,100%の正確性を保証するものではありません.
|
||||||||||||||||||||||||||||||
(*9) | EDB/CMSによって自動的に生成される. |