アクセスコントロール目次アクセスコントロール設定ユーザー管理アクセス制限バックグラウンド情報アクセスコントロールDokuWikiや多くのWikiはデフォルトで非常にオープンになっています。すべての訪問者がページを作成、編集、削除することができます。一部のページや全ページに対してアクセスを制限したいときもあるでしょう。そんなときは、アクセスコントロールリスト(ACL)を使ってください。このページでは、DokuWikiのACLの動作や設定について、説明します。DokuWikiのACLの機能は、長い間機能として内蔵され、かなり安定しています。権限のないユーザーがWikiの情報にアクセスするリスクを心配するなら、コンピュータをインターネットからアクセスできないようにするべきです。設定DokuWikiのACLを有効にするには、最低一つのデフォルトが必要です。単純に手本となるファイルをコピーしてもよいでしょう。conf/acl.auth.php.distとconf/users.auth.php.distをそれぞれconf/acl.auth.phpとconf/users.auth.phpにコピーすれば、ログインページが動作するはずです。設定オプションも設定する必要があります。デフォルトのプレーンテキストの認証を有効にするため、local.phpに追加する例を見ていきましょう。ACLの機能を有効化します。管理グループは、スーパーユーザーです。ユーザー管理は、ACLの機能を有効にします。この機能を有効にすると、すべてのWikiページの下にログインボタンが現れ、ユーザーは自分自身で登録することができます。スーパーユーザーオプションは、DokuWikiのすべてを実行できるようにします(新しいACLの制限を追加するなど)。単独のユーザーまたはグループ(@を先頭に付加して指定)を指定します。ブラウザを使って、ACLを使うようにDokuWikiをインストールした場合、“ログイン”ボタンをクリックし、“登録”のリンクをたどり、最低1つのユーザーを登録してください。(もし登録のリンクがない場合は、conf/users.auth.phpの設定が間違っています。新しいデータが書かれていません。conf/users.authを編集し、最低一つは“ユーザー”から“管理者”にしてください。すると、“管理者”グループに属するユーザーでログインすると、“管理”ボタンが追加され、有効になります。ユーザーは自分自身で登録できません(デフォルトは1)この動作を有効とする場合、ユーザーは管理者によって追加されるのみです(ウェブ上の管理画面または、conf/users.auth.phpを直接編集)。いくつかの設定オプションがあります。デフォルトの設定で満足するものでなければ、他にもACLの詳細を設定できます。//認証方法(デフォルトはプレーン)autopasswd(パスワードの自動生成)を0にすると、登録時にパスワードをユーザー自身が決められるようになります。すると正当なメールアドレスで登録しているかどうかの保証がなくなってしまいます。passcrypt(暗号化の方法)は、格納されるパスワードの暗号化の方法を指定します。defaultgroup(デフォルトグループ)は、一目瞭然ですが、すべての新規ユーザーがデフォルトで所属するグループです。profileconfirm(プロファイルの確認)を0にすると、現在のパスワードで確認することなしに、ログインしているユーザーにプロファイル(氏名・パスワード・メールアドレス)の変更が可能になります。DokuWikiは、ユーザーやグループのデータへのアクセスに様々な方法を使うことが可能です。デフォルトでは、plaintextのバックエンドを使います。バックエンドは、authtypeオプションの設定で選択されます。どのオプションが使えるかは、backendsのページをご覧ください。ユーザー管理ユーザー管理で、ユーザーの追加、削除、編集が可能です。公開登録が有効であれば、同様にユーザー自身でユーザーの登録ができます。手動でユーザーを登録するときの情報は、単純なバックエンドのドキュメントにある詳細をご覧ください。アップロード、削除の5つの権限があります。読取の権限が低く、削除の権限が高くなっていて、高い権限は低い権限を包括します。作成、アップロード、削除の権限は、名前空間に割り当てられることに注意してください。DokuWikiがユーザーに与えられた権限をチェックするとき、ユーザー名や所属グループに該当するすべてのルールが適用されます。高い権限が与えられているルールが使われます。権限は最初にページでチェックされます。次に上位の名前空間がチェックされます。該当するルールが見つかるまで、上位の名前空間が続きます。制限のルールを追加するには、制限したいページを開き、管理と書かれたボタンをクリックし、管理画面に入ってください(スーパーユーザーのみが可能です)。そこで、アクセスコントロールリスト管理を選択し、表示しているページへの該当する制限が表示されます。制限は、表の一番上の行に追加されます。現在のページ自体か、上位の名前空間など、範囲を選択する必要があります(最上位の名前空間は*と表現します)。アクセスを与える(または拒否する)かを選択する必要があります。これはグループでもユーザーでも可能です。最後に、実際の制限を指定します。選択しないことで、効果的に特定のユーザーやグループをページや名前空間から締め出すことができます。注意:削除権限はメディアファイルにのみ影響します。ページは全員から削除(復活)が可能です。アップロードの権限を有して、削除権限がない場合、存在するメディアファイルに上書きはできません。特別なグループALL。ログインしていないユーザーを含めて全員がALLグループのメンバーになります。すべてのユーザーをアクセス制限し(デフォルトの設定)、特定のユーザーには規制を緩めるといった使い方ができます。上のスクリーンショットでは、アップロードは誰にも許可されていませんが、uploadグループのメンバーにだけは許可されています。自分で登録したユーザーすべては、デフォルトで'user'グループのメンバーに自動的になります。ログインユーザーに権限を与えるときに使います。defaultgroupオプションで設定可能です。事実上の“ALL”グループ以外、“プレーン認証バックエンドを使うとき、user”グループは自動で追加されるユーザすべてが属するグループになります。別のバックエンドを使うなら、そのバックエンドが提供するグループを使ってください。バックグラウンド情報アクセス制限は、conf/acl.auth.phpというファイルに保存されます。ACL管理画面で使うのならウェブサーバーから書き込み可能にしてください。空行とシェルの書式のコメントは、無視されます。それぞれの行は、半角スペースで3つのフィールドに分けられます:制限するリソース。ページ名または名前空間になります。名前空間は、アスタリスクが付きます(上の例を参照)。グループまたはユーザー名。グループ名は@で始まります。許可のレベル(上の例を参照)。7つの許可レベルが数値によって示されます。高いレベルは下位のレベルを含みます。編集できるなら、読むこともできるでしょう。2行ごとに見ていきましょう(下記に詳細)メインの名前空間に許可を与えています。全員にページの編集と作成を許可しています。アップロードは許可されていません。bigbossユーザーは、すべての権利を与えられています。startページに対する許可は、全員に「読み取りのみ」に制限されています。名前空間marketingに対する許可が与えられています。marketingグループのメンバーは、そこにアップロードの権限が許可されています。他のユーザーは1行目で条件に一致するので、作成と編集だけです。bigbossは、2行目の権利を受け継ぐので、ファイルのアップロードや削除が可能です。