目次

関連項目
EDB/CMSの技術仕様
EDB/CMSの名前の制約と特別な名前
EDB/CMS - サーバの切替え (ヘルプ)

EDB/CMSのアクセスコントロールについて

アクセスコントロールリストの生成ポリシー

あるディレクトリについて,

アクセス制限設定の確認方法

各ディレクトリにおけるアクセス制限の設定内容は,ディフォルトのディレクトリインデックスの最後に記される.

ただし,アクセス制限設定,およびディレクトリインデックスページの更新は,EDB/CMSによる定時更新か,ユーザがボタンをクリックするまでは更新されない

アクセス制限の設定が上位ディレクトリから変化しないときには,アクセスコントロールファイル(.sacc)を生成せず,また表示も「上位ディレクトリと同じ」のように示す(サーバにおけるアクセス制御は,上位ディレクトリの設定を継承する).

アクセス制限の設定が特定の個人(グループ)に制限されているときには,その個人を認証情報の有無によって,

認証情報あり
EDB/CMSへの認証接続に必要なパスワード(「個人」情報の「パスワード」)の設定,もしくはX.509個人証明書のいずれかが発行されている状態.すなわち,認証手続きの意味で「教職員限定のコンテンツへアクセス可能」,「コンテンツの登録が可能」なユーザを表している
認証情報なし
EDB/CMSへの認証接続に必要なパスワード(「個人」情報の「パスワード」)の設定とX.509個人証明書の発行の両方ともがなされていない状態.すなわち,教職員限定のコンテンツへのアクセスやコンテンツの登録が不可能なユーザを表している(パスワードの設定や個人証明書の発行によってEDB/CMSでの作業が可能となる)

のように示す.

http://cms.-, http://cms-ldap.-, https://cms-ldap.-によるアクセス

EDB/CMSにおいて,HTTP(80/tcp)によるアクセスは,原則としてクライアント認証を行わない.許可されるのはREADアクセスのみである(WebDAVは利用できない).

アクセス制限は,コンテンツのパスに含まれるディレクトリ名による静的な制御のみで行っている.すなわち,

〜/@University/〜 学内利用者(学生,一般)のみ
〜/@User/〜 アクセス禁止
〜/@Member/〜 アクセス禁止
上記以外 学外からもアクセス可能

となる.

「@passwd」ファイルによるBasic認証

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

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

「@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://cms.-, https://cms-pki.-)に対しては隠蔽されない.

「@ldap」ファイルによるBasic認証,LDAP認証

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」による設定は無視される.

HTTP + SSL + WebDAV(https://cms.-, https://cms-pki.-)によるアクセス

ウェブブラウザにおいて,「https://cms.〜」または「https://cms-pki.〜」を指定したアクセスと,WebDAVクライアントを用いて「https://cms.〜」または「https://cms-pki.〜」に接続後,ネットワークファイルシステム上のファイルを「file://〜」のように指定してアクセスすることが,これに相当する.

EDB/CMSにおいて,HTTP + SSL(443/tcp)によるアクセスには,すべてクライアント認証を行っている.従って,匿名ユーザからのアクセスは不可となる.

通常のREADアクセスとWebDAVの機能を用いたWRITEアクセスが可能となる.

アクセス制限はディレクトリ名による静的な制御は利用せず,すべて

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

という,ディレクトリ毎におかれたアクセスコントロールファイルにて行っている.

アクセスコントロールファイルの設定は一日一回定時に更新されるが,新規にディレクトリを作成した直後は未設定なので,定時更新以前にアクセス制限の設定を行うには,ボタンをクリックして,設定更新および確認を行う必要がある.

HTTPでのアクセス制御に用いたディレクトリ名のマッチング規則のうち,「〜/@University〜」は無効となる.すなわち,認証を経たユーザは学内からアクセスしていることと見なす(HTTP + SSLの通信は暗号化されるので,学外からのアクセスに関しても通信路上での漏洩の危険はない).

同様に「〜/@User/〜」も同様に,HTTP + SSLではアクセス制限に関与しないディレクトリとなる.

アクセス制限では,情報のディレクトリにおいて,

Readers
すべてのEDBユーザの集合
Writers
その情報について権限を持つユーザの集合

を初期値とする.その後,上位ディレクトリから順にディレクトリの探索を行い,ディレクトリ探索中に「@Member」が現れたとき,「その時点のReaders」と「EDBから抽出した構成員」の積集合を新しいReadersとする.

「@Writable」が現れたとき,「その時点のWritable」と「EDBから抽出した構成員」の和集合を新しいWritersとする.

ディレクトリ毎のアクセスコントロールファイルには,

読み出し可能なユーザ
Readers ∪ Writers
書き込み可能なユーザ
Writers

が登録される.

ディレクトリ配置とアクセス制限の例

情報 ディレクトリ サブディレクトリ READ可能なユーザ WRITE可能なユーザ 備考
HTTP HTTP + SSL HTTP + SSL
個人 〜/SEID EDBユーザ SEID
@University 学内ユーザ EDBユーザ SEID
@User × EDBユーザ SEID
@Member × SEID SEID
@Writable EDBユーザ SEID 無意味
組織 〜/EID EDBユーザ 組織(EID)に権限を持つユーザ
@University 学内ユーザ EDBユーザ 組織(EID)に権限を持つユーザ
@User × EDBユーザ 組織(EID)に権限を持つユーザ
@Member × 組織(EID)の構成員 組織(EID)に権限を持つユーザ
@Writable EDBユーザ 組織(EID)の構成員 ∪ 組織(EID)に権限を持つユーザ
@Member/@Writeble/ × 組織(EID)の構成員 ∪ 組織(EID)に権限を持つユーザ(ひとつめのサブディレクトリの権限が異なることに注意.@Member/@Writableを推奨)
@Writable/@Member/
教育プログラム 〜/EID EDBユーザ 教育プログラム(EID)に権限を持つユーザ
@University 学内ユーザ EDBユーザ 教育プログラム(EID)に権限を持つユーザ
@User × EDBユーザ 教育プログラム(EID)に権限を持つユーザ
@Member × 教育プログラム(EID)の所属組織の構成員 教育プログラム(EID)に権限を持つユーザ
@Writable EDBユーザ 教育プログラム(EID)の所属組織の構成員 ∪ 教育プログラム(EID)に権限を持つユーザ
@Member/@Writeble/ × 教育プログラム(EID)の所属組織の構成員 ∪ 教育プログラム(EID)に権限を持つユーザ(ひとつめのサブディレクトリの権限が異なることに注意.@Member/@Writableを推奨)
@Writable/@Member/
* 〜/EID EDBユーザ SEID
@University 学内ユーザ EDBユーザ SEID
@User × EDBユーザ 情報(EID)に権限を持つユーザ
@Member × 情報(EID)に権限を持つユーザ
@Writable EDBユーザ 情報(EID)に権限を持つユーザ 無意味