Provided by EDB working group. $Id: ac.html,v 1.11 2013/12/26 05:40:58 alex Exp $

目次

1. まえがき

今日,さまざまな局面でWEBサーバの運用が行なわれている. WEBサーバにコンテンツを掲載することにより,簡単にコンテンツを複数の利用者が閲覧できるからである.
しかし,限られた利用者にコンテンツを公開する手段は限られている.
勿論,対象が大学人というように利用者が特定のネットワーク(キャンパスネットワーク)に所属している場合には,ネットワークアドレスによりアクセスの可否を決定することができる. ところがアクセス権はそのネットワーク全体に開放されてしまうため,教職員のような特定の利用者のみに限定することはできない.
結果として,利用者(各教職員)にアカウントを発行し,かつ,WEBサーバの利用者認証機構を利用することになる.
しかして,セキュリティを保持しつつアカウントを発行・運用するという作業はWEBページ作成者にとっては結構大変なことである.
何故か?
考えられる事柄をいくつか列挙すると

などなど,きりがない. 所詮,セキュリティと利用者の思想は相反するものなのである.

現在,幸いなことに本学ではEDBの運用により教職員がEDBにログインするためのパスフレーズを持っている. EDBにおいて行なわれる認証機構を利用して,学内外の汎用WEBサーバに使い捨てできるパスワードを発行するというのが本システムの目的である.
勿論,認証の対象となる利用者はEDBにおいて認証可能な利用者(本学の教職員)に限られるが,EDBに登録されている利用者全体や更に限定された利用者に設定可能とすることで,大学,学部や学科毎の教職員のみに制限されたコンテンツをWEB上に搭載できることの意義は大きい.
本システムの特徴を列挙すると,

などがあげられる.
さらに,本システムを利用することによって,従来おのおののWEBページ作成者が行なっていたアカウント管理を飛躍的に軽減することが可能である. また,利用者はEDBのパスフレーズだけを覚えていれば良く,複数のパスワードを紙に書かずに覚えておくという非常に苛酷な試練を免れるのである.

2. 前提事項

本システムを利用するにあたりWEBページ作成者は以下の事柄を了解する必要がある.

3. WEBサーバに要求される事項

現存のほとんどのUNIX+WEBサーバ(Apache)はこれぐらいのことは設定次第で可能なので心配はありません. (その他のOSについては未調査ですが,並のOSならばできるでしょう)

4. システム概要

通常,WEBサーバのユーザ認証はサーバ内に用意したパスワードファイルの情報をもとにして行なわれる. 本システムでは,このパスワードファイル(以下の例では".passwd")の内容を

で制御する.

本システムの動作を簡単に説明すると次のようになる.

アクセス制限されたWEBサーバのページにアクセスしたユーザは,EDBサーバにおいて利用者認証を受けることを要求される. EDBサーバにおける利用者認証に成功した場合,EDBサーバから目的のWEBサーバに対して〔ユーザID,使い捨てパスワード〕のアカウント登録要求(CGI)を行ない,WEBサーバ上にその利用者のアカウントを登録する. 利用者には,〔ユーザID,使い捨てパスワード〕を埋め込んだURLによるリンクを提示する. 利用者は,提示されたリンクを辿ることにより,目的のWEBサーバへアクセスすることが可能となる.
本システムの動作を詳しく説明しよう.
まず,役者を紹介する. 以下,本ページの例では, の場合を示している. すなわち,クライアント(CLI)がWEBサーバ(WEB)にあるアクセス制限されたコンテンツ($L: http://web.db.tokushima-u.ac.jp/ac-example/)にアクセスするという状況を考えている.

4.1 認証手順

認証手順は以下のように行なわれる.

authentication procedure
  1. CLI → WEB : $Lの入口のページにアクセス.
  2. WEB → CLI : リンク「EDB_AC?R=$R&L=$L&I=$I」が含まれたページを返す.
  3. CLI → EDB : 「EDB_AC?R=$R&L=$L&I=$I」にアクセス.
  4. EDB → CLI : 認証画面を表示.($R, $L, $Iを保存)
  5. CLI → EDB : (認証対象者,パスフレーズ)を送信.
  6. EDB → CLI : (認証対象者,パスフレーズ)を検証.
    • 失敗: 手順終了.
    • 成功: ユーザID($U), 使い捨てパスワード($P)と$Pの暗号化パスワード($CP)を合成.
  7. EDB → WEB : パスワードを登録するためのアクセス($R?U=$U&P=$CP&I=$I)を行なう.
  8. WEB: CGI($R)は$U,$CP,$Iの情報を用いてパスワードファイル(.passwd)を変更.
  9. WEB → EDB: 終了ステータスを返送.
    • 1xx: 失敗
    • 200: 成功
  10. EDB → CLI : WEBに登録したユーザID($U), パスワード($P)の情報を画面に提示.
  11. CLI → WEB : $Lに$U, $Pを用いてアクセス.
  12. WEB → CLI : 認証の結果,$Lの内容を返送.
実装例としては,(認証を行っていない状態では)アクセスできないhttp://web.db.tokushima-u.ac.jp/ac-example/が,
本システムの認証を経ることによって,
https://web.db.tokushima-u.ac.jp/cgi-bin/edb_ac?
R=http://web.db.tokushima-u.ac.jp/ac-example/.regist.cgi&
L=http://web.db.tokushima-u.ac.jp/ac-example/
でみることができます.(Apacheのマニュアルページが目的地にあります.)

4.2 パスワードの消去

上記の認証手順で登録されたパスワードは自動的には消去されないので,何らかの手順を行なうことが必要です.
本システムでは,WEBサーバ上で動作するCGIプログラム($R)を利用して,パスワードの無効化手続きを行ないます.
現在用意しているCGIプログラム($R).regist.cgiを利用すると,

に(古い)パスワードを消去します.

5. 導入手順

UNIX上でApacheを運用している場合について導入手順(例)を説明します.

ここではユーザ認証を必要とするディレクトリ($L)において,

の3つのファイルを設定する方法を説明します.

  1. ApacheのBasic認証手順が有効になっているディレクトリを準備する.
    (例)http://web.db.tokushima-u.ac.jp/ac-example/ ($Lの値)
    Basic認証手順を利用するためには,Apacheの設定ファイルにて
    • AllowOverride AuthConfig
    の設定をいくつかの場所に追加しなくてはならないかも知れません. また,アクセス認証は,通常そのディレクトリにおかれた .htaccess で設定します. Basic認証が不可能になっている場合には,サーバの管理者に相談して下さい.
  2. ".regist.cgi"を用意したディレクトリ(または,CGIが実行可能なディレクトリ)におく.
    • デフォルトはディレクトリ($L)におかれることを想定している.このときEDB_ACのパラメータR=$Rは省略できる.
    • CGIをドキュメントのディレクトリで実行可能にするためには,Apacheの設定ファイルにて
      • Option ExecCGI
      • AddHandler cgi-script .cgi
      の設定をいくつかの場所に追加しなくてはならないかも知れません. CGIが実行できない場合には,サーバの管理者に相談して下さい.
    • /bin-cgi/のようなシステム共通の場所においた場合には,EDB_ACのパラメータR=$Rを明示的に指定する必要がある.
    • ApacheのユーザID(または,CGIの実行ユーザID)で実行パーミッションがONになっている必要があります.
  3. ".regist.cgi"の設定.
    適当なエディタを用いて".regist.cgi"を編集し,以下の設定項目を調整して下さい.
    • ".regist.cgi"に正しいPerlのパスを教える.(CONFIGURATION [0]: 1行目)
    • CONFIGURATION [1]: EDBのFQDN(変更する必要なし)
    • CONFIGURATION [2]: 認証登録の範囲($accept_edb_user)
      • 0: パスワードファイルに既存の利用者のみを受け付ける.
      • 1: EDBで認証可能な利用者(教職員)を全て受け付ける.
    • CONFIGURATION [3]: パスワードの有効期限.(秒単位で設定)
    • CONFIGURATION [4]: パスワードファイルのパス名.(デフォルトは .regist.cgi のあるディレクトリの".passwd")
  4. パスワードファイルを準備する.
    • パスワードファイルは .regist.cgi の CONFIGURATION [4] で指定した場所に作成してください.
    • パスワードファイルはApacheのユーザID(または,CGIの実行ユーザID)で書き換え可能になっている必要があります.
    • パスワードファイルはApacheのBasic認証システムが利用する(htpasswdコマンドで作成される)ファイルの拡張になっています.
    • パスワードファイルには,EDB利用者以外の一般のユーザのパスワードも登録することができます.
    ".regist.cgi"の設定時に $accept_edb_userを1にセット(全てのEDB利用者,すなわち教職員全員を受け入れるに)し,かつ他のユーザがいない場合にはパスワードファイルを特に編集する必要はなく,空のファイルを用意して下さい.
    $accept_edb_userを0とした場合や,他にも閲覧を許可するユーザがいる場合には,付録A.4を参考にして,ユーザのリストをパスワードファイルに登録して下さい.
  5. $Lのディレクトリに".htaccess"を作成し,サンプル.htaccessを参考にして調整する.
    • 2行目のAuthUserFileは認証に利用するパスワードファイルのパス名を指定するためのものです.(フルパスで書く) 状況に応じて変更してください.
    • Allow from 150.59.230.68」という行の"150.59.230.68"はEDBサーバの現在のIPアドレスです.
      このIPアドレスは変更される可能性がありますので,HostNameLookupsがonになっているApacheシステムでは"web.db.tokushima-u.ac.jp"に変更した方がベターです.
    • サンプルは,
      • 150.59.230.68からの.regist.cgiへのアクセス.
      • Basic認証手順を経たユーザの任意のファイルへのアクセス.
      のいずれかが満足された場合,アクセスを許可する設定です.
    • ErrorDocument 401 ....」はWEBサーバでの認証が成功しなかったときに,表示するメッセージ,リダイレクトするURLを指定するためのものです. 期待した入口から辿って来なかったユーザをEDB認証に導くようなメッセージ(もしくはページを作成しそのURL)を記述して下さい.(詳しくは,Apacheのマニュアルページを参照)
      サンプルでは必要最小限のメッセージしか記述していませんが,適切なスクリプトを利用・指定すればEDB認証後に目的のURLに導くことができると思われます.
  6. ApacheのユーザID(または,CGIの実行ユーザID)で実行される crontab にて定期的に(1時間周期ぐらいで),.regist.cgi を実行してください. 有効期限を過ぎたパスワードを消去します.(パスワードファイルの第2フィールドを無効なパスワードに書き換える)
    (例)毎時45分に.regist.cgiを実行し,有効期限に達したパスワードを消去する.
    45 * * * * /usr/local/share/apache/htdocs/ac-example/.regist.cgi > /dev/null

  7. アクセス制限されていないWEBページにURL: $Lへのリンクを,「EDB_AC?R=$R&L=$L&I=$I」の形式で張り付ける.
    (例)
    ○「....については<a href="https://web.db.tokushima-u.ac.jp/cgi-bin/edb_ac?
    L=http://web.db.tokushima-u.ac.jp/ac-example/">こちら</a> を参照してください.ただし,閲覧は大学の教職員に限られています(EDB認証機構を利用).」
    ○「....については<a href="https://web.db.tokushima-u.ac.jp/cgi-bin/edb_ac?
    R=http://web.db.tokushima-u.ac.jp/ac-example/.regist.cgi&
    L=http://web.db.tokushima-u.ac.jp/ac-example/">こちら</a> を参照してください.ただし,閲覧は教職員に限られています(EDB認証機構を利用).」
    ○「学科内の教職員は<a href="https://web.db.tokushima-u.ac.jp/cgi-bin/edb_ac?
    R=http://web.db.tokushima-u.ac.jp/ac-example/.regist.cgi&
    L=http://web.db.tokushima-u.ac.jp/ac-example/">ここ</a>から入ってください(EDB認証機構を利用).その他のユーザは<a href="http://web.db.tokushima-u.ac.jp/ac-example/">ここ</a>から入ってください(静的に登録されたアカウントを利用).」
    ○通常と同じように, 「学科内の教職員は<a href="http://web.db.tokushima-u.ac.jp/ac-example/">ここ</a>から入ってください.」としておいて,WEBサーバの認証エラーで表示されるメッセージでEDB認証に導くというのも一つの方法です.
    ○EDB認証画面に表示する利用者の一覧を特定の学科に限定する.
    建設工学科: (EID=11077)「....については<a href="https://web.db.tokushima-u.ac.jp/cgi-bin/edb_ac?
    EID=11077&
    R=http://web.db.tokushima-u.ac.jp/ac-example/.regist.cgi&
    L=http://web.db.tokushima-u.ac.jp/ac-example/">こちら</a>を参照してください.ただし,閲覧は本学科の教職員に限られています.」
    機械工学科: (EID=11090)
    化学応用工学科: (EID=11103)
    電気電子工学科: (EID=11115)
    知能情報工学科: (EID=11128)
    生物工学科: (EID=11139)
    光応用工学科: (EID=11150)
    共通講座: (EID=11159)
    エコシステム工学専攻: (EID=11044)
  8. ユーザに明示的にアカウントを消去させるためには,ユーザに.regist.cgiにアクセスさせてください.
    (例)
    「閲覧が終了しましたら,<a href="http://web.db.tokushima-u.ac.jp/ac-example/.regist.cgi?
    L=http://web.db.tokushima-u.ac.jp/">ログアウト</a>してください.」
    ここで与えるパラメータLは,ログアウト後に移動するページのURLです.
[カスタマイズ]
パスワードファイルをよりセキュアな場所におく.
EDBサーバから与えられる使い捨てパスワード以外に,静的にパスワードを設定しているユーザが存在する場合には,パスワードファイルをセキュアな場所におくことをお奨めします.
たとえば,パスワードファイル(teacher-password)を外部からアクセスできないディレクトリ(例: /usr/local/share/apache/passwd/)におく場合には,
  • .htaccess におけるパスワードファイルの設定 AuthUserFile をパスワードファイルの場所に合わせて変更して下さい.
    (例) AuthUserFile /usr/local/share/apache/passwd/teacher-password
  • .regist.cgi の CONFIGURATION [4] の $pwfile をパスワードファイルの場所に合わせて変更して下さい.
    (例) $pwfile = "/usr/local/share/apache/passwd/teacher-password";
の変更を行なって下さい.
.regist.cgi を他の場所(システム共通の場所 .../cgi-bin/ など)におく.
あまりお奨めではありませんが,以下のことに注意してシステムを調整して下さい.
  • .regist.cgi のアクセス権を
    • EDBサーバからは無条件にアクセスできる.
    • 上記以外では,Basic認証されているユーザからのみアクセスできる. (.regist.cgi が用いているパスワードファイルで制限されたユーザにのみ制限されていることが望ましい. パスワードファイルを幾種類も運用する場合には少し面倒である.)
    のように制限して下さい.
  • crontabによって実行する.regist.cgiを変更する.(管理しているパスワードファイル毎に設定する.)
  • リンク作成時の「<a href="EDB_AC?R=$R&L=$L"> ... </A> 」中のRパラメータ(.regist.cgiのURL)を必ず指定する.

6. 技術的側面

6.1 セキュリティ

Basic認証
本システムでは閲覧ソフト-WEBサーバ間の認証手順にHTTP/1.0, HTTP/1.1 で規定されているBasic認証を利用する. Basic認証では,パスワードは平文(実際にはbase64で符号化されているが暗号化の意味では平文と同じ)で送信されるため,簡単に盗聴することが可能である. これに対し,HTTP/1.1ではDigest認証が規定されており,Challenge-response型(平文のパスワードがネットワーク上を流れない)の認証が可能である.ただし,この認証方式をサポートしている閲覧ソフトを利用しなくてはならない. (現在,全ての閲覧ソフトがDigest認証方式をサポートしている訳ではない)
今日においては,利用されている閲覧ソフトの種類はある程度集約されているが,閲覧ソフトの変更やバージョンアップの作業を利用者に科さなくてもよく,かつ,利用している閲覧ソフトによって利用者を限定させなくても良いBasic認証を利用する.
なお,盗聴の危険性はあるが,一定時間経過するとパスワードを消去することで,不正アクセスの可能性を減じる.
(システムの構成としてDigest認証方式が不可能なことを意味しているのではない.Digest認証方式が広く一般的に利用できるようになった段階で,Digest認証方式が利用できるインプリメントを考えるということである.)

EDB認証にかかるパスフレーズ
閲覧ソフト-EDBサーバ間のパスフレーズの送信は,SSLで保護されているため,盗聴の危険性は希少である. また,EDBサーバにおいて生成される使い捨てパスワードは,パスフレーズとは独立に生成されるので,パスワードからパスフレーズを解読される可能性はない.
また,EDBサーバから閲覧ソフトに対しページ上に平文のパスワードを提示するが,このページもSSLにより保護されているため,盗聴の危険性は希少である.

EDBサーバ-WEBサーバ間のパスワード転送
EDBサーバからWEBサーバに転送されるパスワードは,MD5で暗号化されている.
暗号化パスワードが盗聴されれば,その文字列から平文のパスワードを解読される危険性があるが,(解読プログラムの演算速度によるが)パスワードの有効期限を数時間〜数日程度としておけば,解読されるころにはパスワードはEXPIREしている.
解読アルゴリズムに依存するが,素当たり方式(+現在のPCの性能)では解読には(期待値として)数年以上を要する.

利用者の限定
EDBサーバでは利用者の認証と使い捨てパスワードの生成のみを行ない,実際にその情報(ユーザID,パスワード)を利用するか否かは,WEBサーバ上で起動する .regist.cgi によって判断される. すなわち,利用者の範囲の決定権は完全にWEBページ作成者に委ねられる.

6.2 応用面

WEBサーバ上でのユーザ識別(UNIX+Apacheの場合)
Apacheサーバは,Basic認証 を行なったアクセスに関しては,環境変数 ``REMOTE_USER'' にユーザIDをセットする. この環境変数をCGIプログラムから参照することで,現在アクセスしているユーザをCGIプログラム中で容易に特定することができる.
情報の更新作業がWEB上で可能なCGIプログラムを作成するときに,誰が更新作業を行なったかを特定できることは有用な情報となる. (ユーザIDから,EDBの【個人】情報を得る方法については,付録A.1を参照のこと)

7. むすび

本ページでは,EDB認証機構を利用して,汎用のWEBサーバにおいて複雑な手続き無しに教職員を識別する方法について述べた.
従来,構想時点で噸座することが多かった,

が,このシステムを利用することによって促進されることを望む.
なお,ここにあげた例以外にも,ユーザ認証が可能になることによって,さまざまな応用例を考えることができると思われる. みなさんの発想力の豊かさに期待する.

なお,本システムに対する質問,意見,コメントなどはEDB working groupにお願いします.

付録

A.1 ユーザIDからユーザの情報を得る方法

EDBでは,whois/tcp インタフェースによる登録情報(公開可能なものに限る)へのアクセス方法を提供しています. ユーザIDから,そのユーザの姓名を得るには,

whois -h web.db.tokushima-u.ac.jp
	'STYLE=TSV DML=PLAIN LANG=Japanese LOOK=\E{ユーザID} PRINT={@.surname @.givenname}'
(実際には1行)として下さい.

Perlで書くと,以下のようなプログラム.

# $lifename = get_user_info(uid)
#	Notice: please set correct path of 'whois' command.
sub get_user_info {
	my $uid = $_[0];
	my $name = "(unknown)";
	my $line; my $eid; my $surname; my $givenname;

	open(WHOIS, "/usr/bin/whois -h web.db.tokushima-u.ac.jp		…(行は継続)
		'STYLE=TSV DML=PLAIN LANG=Japanese		…(行は継続)
		LOOK=\\E{10729} PRINT={@.surname @.givenname}' |") or return "(unknown)";
	while($line = <WHOIS>) {
		chomp($line);
		($eid, $surname, $givenname) = split(/\t/, $line);
		if($eid eq $uid) {
			$name = "$surname $givenname";
		}
	}
	close(WHOIS);
	return $name;
}

A.2 アカウント登録用CGIプログラムの改造について

本システムでは,WEBサーバ側の要求に合わせて,アカウント登録用CGIプログラム(.regist.cgi)を改造することを禁止していません. WEBページ作成者の責任において自由に変更して下さい. プログラミング言語Perlで書かれている必要もありません. ただし,EDBサーバからのアクセスは

	CGIプログラム?U=$U&P=$CP&I=$I
のようになっておりますので,これらの引数を正しく処理するようにして下さい. また,CGIプログラムの(EDBサーバに対する)出力は,'Content-Type: text/plain'形式とし, 正常に終了した場合には,
	STATUS: 200 何らかのメッセージ
何らかの理由で失敗した場合には,
	STATUS: 100 失敗の原因を示すようなメッセージ
を返答して下さい.

A.3 超簡単設定手順

Linux や FreeBSD などのOSで,ApacheでBasic認証やCGI利用のための設定がすでに完了していて,教職員に限定したページを作成する場合.

  1. tutorial% su アパッチの実行ユーザ名
  2. tutorial% cd $TOP …($TOP はアパッチのドキュメントルート.以下,同様)
  3. tutorial% mkdir for-eng-teachers …(教職員に限定するコンテンツを入れるディレクトリ)
  4. tutorial% cd for-eng-teachers
  5. .regist.cgi を ".regist.cgi" にダウンロード.
  6. .htaccess を ".htaccess" にダウンロード.
  7. tutorial% touch .passwd
  8. tutorial% chmod +x .regist.cgi
  9. tutorial% ./.regist.cgi
    Perlがないというメッセージが出たら,".regist.cgi" の1行目を修正.(正しいperlのパスを設定する)
  10. tutorial% vi .htaccess
    • 「AuthUserFile ...」を「AuthUserFile $TOP/for-eng-teachers/.passwd」に変更する.
    • 「ErrorDocument 401 ...」の行の 「L=...」を「L=http://貴方のサーバの名前/for-eng-teachers/」に変更する.
  11. tutorial% vi index.html …何かページを作成する.他からコピーしても良い.
  12. 閲覧ソフトでhttp://貴方のサーバの名前/for-eng-teachers/をみる.
    • ユーザ名,パスワードを聞いて来ない.→WEBサーバ管理者にアクセス制限設定について相談.
    • EDBの認証はとおるが,アカント登録に失敗する.→WEBサーバ管理者にCGI実行権限について相談.
    • その他,正常にログインできない..→メッセージ,現象をみて考える.わからなければ有識者に尋ねる.
  13. tutorial% crontab -e
    	45 * * * * $TOP/for-eng-teachers/.regist.cgi > /dev/null
    という行を追加する.
  14. 終了.(以上の作業で,$TOP/for-eng-teachers/以下のコンテンツが教職員に限定される)
    • ログインできるユーザを制限したい.→付録A.4(パスワードファイルの作成方法)を読む.
以上,超簡単な説明でした.

A.4 パスワードファイルの作成方法

本ページで提供するWEBサーバ上のパスワード登録CGI(.regist.cgi)が扱うパスワードファイルは,Apacheのhtpasswdコマンドで作成されるパスワードファイルの拡張になっています.
拡張されたパスワードファイルの様式は,1行毎に

	ユーザID:暗号化パスワード:ライフネーム:登録時刻
が記述されます. それぞれのフィールドは, となっています.(htpasswdでは,`ユーザID'と`暗号化パスワード'のみが作成され,Apacheのユーザ認証ではその2つだけが利用される.)

□ EDB利用者を全て受け入れる
.regist.cgi の設定パラメータ $accept_edb_user を 1 にセットして下さい. EDBで認証可能な利用者(すなわち,全教職員)を全て受け入れます.

□ EDB利用者を制限する.
.regist.cgi の設定パラメータ $accept_edb_user を 0 にセットして下さい.
パスワードファイル(.passwd)に受け入れ可能なEDB利用者毎に
	ユーザID:*:ライフネーム:1
という行を用意してください(Windowsなどの crypt(3)関数を実装していないOS上でApacheを起動している場合には,
	ユーザID:$apr1$abcdefgh$*:ライフネーム:1
としてください).ユーザIDはEDBに登録されている【個人】情報のEID(情報識別子)です.
パスワードファイルに登録されたEDB利用者のみについて,.regist.cgiはパスワード登録を受け付けます.
(例)
	12345:*:Ichiro Suzuki:1
	12346:*:Hideo Nomo:1
	12351:*:Naoko Takahashi:1
	13459:*:Sumika Minamoto:1
  • これらの行の作成は少々面倒ですが,学科や講座単位の教職員に限定するような場合では,EDB閲覧インタフェースの【個人】情報の〔検索〕ページにて,
    • 形式: PLAIN
    • 書式: TSV
    • 言語: 英語
    • 文字コード: 欧文
    • 表示項目: 名,姓
    とし,検索条件として[所属]などを指定して得られた検索結果(テキスト)をもとにすると,割と簡単に学科や講座単位の利用者リストを作成できると思われます.(一応,リストの過不足はチェックして下さい)
  • WHOISを利用して
    tutorial% whois -h web.db.tokushima-u.ac.jp 'STYLE=TSV LANG=English DML=PLAIN LOOK=person.{@.affiliation=\E{組織情報のEID}} PRINT={@.surname @.givenname}' | grep '^[0-9]' | awk '{ print $1 ":$apr1$abcdefgh$*:" $2 ", " $3 ":1"; }'
    としてももとになるデータを作成することができます.

□ EDB利用者以外のユーザを登録する.
EDB利用者のユーザIDと重複しないユーザ名(EDB利用者のユーザIDは整数値(【個人】情報のEID)を示す文字列で与えられますので,一般のユーザについては数字(0〜9)以外で始まるユーザIDを割り当ててください.)を選び, htpasswdコマンドを用いて,
	% htpasswd .passwd ユーザ名
	Enter new password: password
	Re-enter new password: password
のようにすると,ユーザを登録することができます.(passwordの部分は画面にエコーバックされません)
当然ながら,このように作成したユーザについては,ユーザ名とパスワードを本人に知らせる必要があります.