Top > Documents > Function limitation

認証による機能制限

認証により、ユーザを特定することで、機能を制限することが可能です。 制限できる機能としては、以下の通りとなっています。

  • 閲覧制限
  • 編集制限
  • 検索制限

目次

機能を有効にする方法

auth.ini.php にある、以下の箇所を編集します。 また、後述する説明は、全て auth.ini.php ファイルに対して行います。

機能制限設定項目省略値設定値
閲覧制限$read_auth無効0:無効 1:有効
編集制限$edit_auth
検索制限$search_auth
  • auth.ini.php は、Plus! I18N版のみ存在します*1

機能制限の種別

以下の2種類での制限が可能です。

  • ページ名
  • ページの内容
$auth_method_type

デフォルトでは、ページ名での制限となっています。ページの内容で制限をかけたい場合には、以下の箇所を修正します。
/////////////////////////////////////////////////
// Authentication method
$auth_method_type = 'pagename'; // By Page name
//$auth_method_type = 'contents'; // By Page contents

対象ページの指定方法

閲覧制限

$read_auth_pages

閲覧制限したい文字列やページ名を、正規表現で指定します。
$read_auth_pages = array(
        // Regex                   Username
        '/:log/'                => 'hoge',
        '#ひきこもるほげ#'      => 'hoge',
        '#(ネタバレ|ねたばれ)#' => 'foo,bar,hoge',
);
  • i18n rev1699から、以下の定義も可能
    $read_auth_pages = array(
           // Regex                   Username or array('user'=>Username,'group'=>Groupname),
           '/:log/'                => array('group'=>'GroupName'),
           '#ひきこもるほげ#'      => 'hoge',
           '#(ネタバレ|ねたばれ)#' => array('user'=>'foo,bar,hoge'),
    );
  • i18n rev1705から、以下の定義も可能
    $read_auth_pages = array(
           // Regex                   Username or array('user'=>Username,'group'=>Groupname,'role'=>Role),
           '/:log/'                => array('group'=>'GroupName','role'=>ROLE_AUTH),
           '#ひきこもるほげ#'      => 'hoge',
           '#(ネタバレ|ねたばれ)#' => array('user'=>'foo,bar,hoge'),
    );

編集制限

$edit_auth_pages

閲覧制限と同様に、指定します。
$edit_auth_pages = array(
        // Regex                   Username
        '#Barの公開日記#'       => 'bar',
        '#ひきこもるほげ#'      => 'hoge',
        '#(ネタバレ|ねたばれ)#' => 'foo,bar,hoge',
);
  • i18n rev1699から、以下の定義も可能
    $edit_auth_pages = array(
           // Regex                   Username or array('user'=>Username,'group'=>Groupname),
           '#Barの公開日記#'       => array('group'=>'GroupName'),
           '#ひきこもるほげ#'      => 'hoge',
           '#(ネタバレ|ねたばれ)#' => 'foo,bar,hoge',
    );
  • i18n rev1705から、以下の定義も可能
    $read_auth_pages = array(
           // Regex                   Username or array('user'=>Username,'group'=>Groupname,'role'=>Role),
           '/:log/'                => array('group'=>'GroupName','role'=>ROLE_AUTH),
           '#ひきこもるほげ#'      => 'hoge',
           '#(ネタバレ|ねたばれ)#' => array('user'=>'foo,bar,hoge'),
    );
  • i18n rev1699から、閲覧制限がある場合には、編集制限としても条件に加わる仕様となりました*2
  • i18n rev1705から、role での制御が可能となりました。

グループの指定

auth_users.ini.php または、auth_wkgrp.ini.phpにおいて、予め各ユーザをグルーピングする必要があります。

正規表現の例

  • 全てのページを対象にしたい
    array('/.*/' => 'hoge');
  • 階層付きページを対象にしたい
    ex. TEST/TEST2/* の場合
    array('/TEST\/TEST2/' => 'hoge');

関連事項

  • セキュリティの強化
    ./wiki/ などに直接アクセスし、Webサーバ側で文書ファイルが直接公開されている状況であれば、これら制限は、何の意味もなしません。Webサーバ側で適切な制限を行うか、以下の文書(ディレクトリの分割(セキュリティの強化、WikiFarmの構築))に書かれているような、公開ディレクトリ上から文書を隠す対応を行うことで、更なるセキュリティ対策が行えます。
  • 役割による機能制限
    ユーザ毎に制限するのではなく、役割ごとにページの閲覧・編集制限を行いたい場合には、check_roleプラグインを利用することで実現できます。

*1 i18n rev1741以降の場合、編集制限を有効にするには、この他 auth_api.ini.php の $auth_api['plus']['use'] の値を 1 に設定する必要があります
*2 従来は、閲覧できないユーザであっても、編集できることを意味します。即ち、条件を共に指定する必要がありました。

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Sun, 04 Jul 2010 00:18:21 JST (65d)