Sun WebServer 2.0 では、Sun WebServer 1.0 のアクセス制御にかなりの変更が加えられています。従来の Sun WebServer のアクセス制御構造を新しい Sun WebServer のアクセス制御構造へ移行する前に、Sun WebServer 2.0 のアクセス制御マニュアルをお読みすることをお勧めします。主な変更を以下に示します。
realm というコンセプトが大きく拡大されており、新しい構成ファイル realm.conf が追加されている
アクセス制御の委任が廃止されている
「/sws-administration」URL に対して指定されているアクセス制御が Sun WebServer 全体にわたって使用されており、このアクセス制御によりサーバー管理者 (URL がサーバーレベル access.conf に指定された場合) またはサイト管理者 (URL がサイトレベル access.conf に指定された場合) が決定される
システムのすべてのインスタンスに対して単一のサーバーレベル access.conf ファイルが存在する (このファイルは /etc/http/access.conf に存在する)。このファイルには、「/sws-administration」URL が格納されており、すべてのインスタンスの管理者が定義されている
各 Web サイトには、サイト管理者を指定する独自のサイトレベル access.conf ファイルも存在する
realm では、より多くのユーザーデータソースを使用できるようになりました。realm は、標準 HTPASSWD
データベースまたは NIS+ データベースと比較してユーザーを認証できます
Sun WebServer 1.0 の access.acl ファイルを Sun WebServer 2.0 に移行するには、認証 realm を作成または選択し、マッピングされた URL のアクセス制御構文を変更してから新しい 2.0 構文を反映させ、access.acl ファイルおよび委託されたファイルのアクセス制御を各 Web サイトの access.conf ファイルに収集する必要があります。
Sun WebServer 1.0では realm
指示語は、ブラウザの識別子 (認証ダイアログボックスに出力される) として以外はほとんど意味をなしませんでした。Sun WebServer 2.0 では、realm が URL へのアクセスを認証するために使用されるユーザーとグループの既存セットを指定します。realm 情報は、realms.conf ファイルに格納されます。HTPASSWD
realm には、認証で使用される「ユーザー」ファイルと「グループ」ファイルが存在する関連ディレクトリ (realm.conf で定義されている) も存在します。したがって、Sun WebServer 1.0 ACL の password_file
指示語および group_file
指示語は廃止されました。Sun WebServer 1.0 のすべての realm は、Sun WebServer 2.0 では HTPASSWD
realm になります。これは、ユーザーが作成したこれらのデータベースが、Sun WebServer 1.0 で使用可能な唯一のソースだったためです。
以下に示す Sun WebServer 1.0 のアクセス制御がホストウィジェットの /etc/http/access.acl に存在すると仮定します。
url /reports { realm Managers authentication_type basic password_file /usr/auth/Managers/Maners_users group_file /usr/auth/Managers/Managers_groups + group report_managers - user Joe } |
パスワードおよびグループファイルを格納する realm を作成します。この作業は、以下のコマンドで行えます。
# htrealm add -i server1 -h widgets -r Managers -s HTPASSWD |
このコマンドは、以下のエントリをサイトウィジェットの realms.conf に追加します。
realm Managers { realm_source HTPASSWD } |
このコマンドはまた、サイトウィジェットに以下のディレクトリを作成します。
/var/http/server1/websites/widgets/conf/realms/Managers/ |
ユーザーファイルおよびグループファイルを Managers ディレクトリにコピーします。
# cp /usr/auth/Managers/Managers_users ¥ /var/http/server1/websites/widgets/conf/realms/Managers/users # cp /usr/auth/Managers/Managers_groups ¥ /var/http/server1/websites/widgets/conf/realms/Managers/groups |
ファイルの指示語を Sun WebServer 1.0 の ACL から削除し、新しい ACL を Sun WebServer 2.0 の ACL ファイル /var/http/server1/websites/widgets/conf/access.conf に格納します。
url /reports { realm Managers authentication_type basic + group report_managers - user Joe } |
委託というコンセプトは、Sun WebServer 2.0 では廃止されています。Sun WebServer 1.0 では委託したファイル内に委託アクセス制御を定義していましたが、これらはすべて特定サイトの単一 access.conf に移し換えなければなりません。
以下に示す Sun WebServer 1.0 の ACL および委託されたファイルが存在すると仮定します。
/etc/http/access.aclのACL
url /statistics { delegate /var/http/acls/.admin_acl } |
/var/http/acls/.admin_aclファイル
realm admin password_file /usr/auth/admin_user group_file /usr/auth/admin_group + group stat_admins |
これらは、単一の ACL に収集しなければならない
realm の admin
は、最初に作成されていなければなりません。上の例を参照してください。
url /statistics { realm admin + group stat_admins } |
以下に示す Sun WebServer 1.0 の ACL および委託されたファイルが存在すると仮定します。
access.aclのACL
url /statistics { delegate /var/http/acls/.admin_acl } |
/var/http/acls/.admin_aclファイル (このファイルの所有者は joe:adm
)
realm admins password_file /usr/auth/admin_user group_file /usr/auth/admin_group + group stat_admins |
これらは、単一の ACL に収集しなければなりません。
url /statistics { realm admins administrators { user joe group adm } + group stat_admins } |