あるディレクトリについて,
各ディレクトリにおけるアクセス制限の設定内容は,ディフォルトのディレクトリインデックスの最後に記される.
ただし,アクセス制限設定,およびディレクトリインデックスページの更新は,EDB/CMSによる定時更新か,ユーザがボタンをクリックするまでは更新されない.
アクセス制限の設定が上位ディレクトリから変化しないときには,アクセスコントロールファイル(.sacc)を生成せず,また表示も「上位ディレクトリと同じ」のように示す(サーバにおけるアクセス制御は,上位ディレクトリの設定を継承する).
アクセス制限の設定が特定の個人(グループ)に制限されているときには,その個人を認証情報の有無によって,
のように示す.
EDB/CMSにおいて,HTTP(80/tcp)によるアクセスは,原則としてクライアント認証を行わない.許可されるのはREADアクセスのみである(WebDAVは利用できない).
アクセス制限は,コンテンツのパスに含まれるディレクトリ名による静的な制御のみで行っている.すなわち,
〜/@University/〜 | 学内利用者(学生,一般)のみ |
---|---|
〜/@User/〜 | アクセス禁止 |
〜/@Member/〜 | アクセス禁止 |
上記以外 | 学外からもアクセス可能 |
となる.
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」ファイルを実際にアクセス制限に反映させるには,ボタンをクリックして,能動的にディレクトリの再設定を行う必要がある(もしくは,定期的な再設定作業を待つ).
アクセス制限の設定は,そのディレクトリ中の
にて行われる(ただし,ディレクトリ「@User」,「@Member」以下では作成されない).
「@passwd」ファイルの内容は,HTTPによるアクセス(http://〜)からは隠蔽されるが,認証されたHTTP+SSLによるアクセス(https://cms.-, https://cms-pki.-)に対しては隠蔽されない.
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」を設定後,各サーバでは,
サーバ | ユーザ名 | 適用 |
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」による設定は無視される.
ウェブブラウザにおいて,「https://cms.〜」または「https://cms-pki.〜」を指定したアクセスと,WebDAVクライアントを用いて「https://cms.〜」または「https://cms-pki.〜」に接続後,ネットワークファイルシステム上のファイルを「file://〜」のように指定してアクセスすることが,これに相当する.
EDB/CMSにおいて,HTTP + SSL(443/tcp)によるアクセスには,すべてクライアント認証を行っている.従って,匿名ユーザからのアクセスは不可となる.
通常のREADアクセスとWebDAVの機能を用いたWRITEアクセスが可能となる.
アクセス制限はディレクトリ名による静的な制御は利用せず,すべて
という,ディレクトリ毎におかれたアクセスコントロールファイルにて行っている.
アクセスコントロールファイルの設定は一日一回定時に更新されるが,新規にディレクトリを作成した直後は未設定なので,定時更新以前にアクセス制限の設定を行うには,ボタンをクリックして,設定更新および確認を行う必要がある.
HTTPでのアクセス制御に用いたディレクトリ名のマッチング規則のうち,「〜/@University〜」は無効となる.すなわち,認証を経たユーザは学内からアクセスしていることと見なす(HTTP + SSLの通信は暗号化されるので,学外からのアクセスに関しても通信路上での漏洩の危険はない).
同様に「〜/@User/〜」も同様に,HTTP + SSLではアクセス制限に関与しないディレクトリとなる.
アクセス制限では,情報のディレクトリにおいて,
を初期値とする.その後,上位ディレクトリから順にディレクトリの探索を行い,ディレクトリ探索中に「@Member」が現れたとき,「その時点のReaders」と「EDBから抽出した構成員」の積集合を新しいReadersとする.
「@Writable」が現れたとき,「その時点のWritable」と「EDBから抽出した構成員」の和集合を新しい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)に権限を持つユーザ | 無意味 |