Extension:Lockdown/ja

From MediaWiki.org
Jump to: navigation, search
MediaWiki 拡張機能マニュアルManual:Extensions
Crystal Clear action run.png
Lockdown

リリースの状態:Extension status ベータ

実装Template:Extension#type User rights
説明Template:Extension#description Implements per-namespace group permissions
作者Template:Extension#username Daniel Kinzler (Duesentriebtalk)
MediaWikiTemplate:Extension#mediawiki 1.19 以降
データベースの変更Template:Extension#needs-updatephp いいえ
ライセンスTemplate:Extension#license GPLv2 以降
ダウンロード
README
パラメーターTemplate:Extension#parameters
  • $wgNamespacePermissionLockdown
  • $wgSpecialPageLockdown
  • $wgActionLockdown
使用するフックTemplate:Extension#hook
getUserPermissionsErrorsManual:Hooks/getUserPermissionsErrors
MediaWikiPerformActionManual:Hooks/MediaWikiPerformAction
SearchableNamespacesManual:Hooks/SearchableNamespaces
SearchGetNearMatchCompleteManual:Hooks/SearchGetNearMatchComplete
SearchEngineReplacePrefixesCompleteManual:Hooks/SearchEngineReplacePrefixesComplete

translatewiki.net で翻訳を利用できる場合は、Lockdown 拡張機能の翻訳にご協力ください

使用状況とバージョン マトリクスを確認してください。

問題点Phabricator

未解決のタスク · バグを報告

Lockdown拡張機能は、指定した利用者グループに対して特定の名前空間と特別なページに対するアクセスを制限する方法を実装します。これはデフォルトの$wgGroupPermissions$wgNamespaceProtection設定によって提供されたものよりも粒度が細かいセキュリティモデルを提供します。

デフォルトでMediaWikiが使用しているセキュリティモデルを理解するためには下記の手引きが手助けになるでしょう:

インストール[edit]

  • ダウンロードして、ファイルを extensions/ フォルダー内の Lockdown という名前のディレクトリ内に配置します。
  • 以下のコードを LocalSettings.php の末尾に追加します:
    require_once "$IP/extensions/Lockdown/Lockdown.php";
    
  • Configure as required below calling the extension with require_once.
  • YesY 完了 - ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。

[edit]

この例では、非登録利用者のSpecial:Exportへのアクセスを禁止し、プロジェクトページ名前空間の編集を禁止しています。

$wgSpecialPageLockdown['Export'] = array('user');
 
$wgNamespacePermissionLockdown[NS_PROJECT]['edit'] = array('user');

解説と他の例については、以下を参照して下さい。

構成[edit]

Lockdown 拡張機能は権限を与えるのではなくアクセスを制限するためのみに使われることに注意してください。MediaWiki の設定によって最初からアクセスが拒否されている場合には、Lockdown 拡張機能の使用に意味はありません。

$wgSpecialPageLockdown[edit]

$wgSpecialPageLockdown によって利用者グループがアクセス権限を持つ特別ページを個別に指定できるようになります。例えば、Special:Exportの使用をログイン利用者に限定する場合、次の設定をLocalSettings.phpで使います。

$wgSpecialPageLockdown['Export'] = array('user');

特別ページの中には「ネイティブに」特定の権限を要求するものがあることに注意してください。例えば、Special:Userrights、は利用者グループを割り当てするために使用されますが、"userrights"権限が要求されます(デフォルトでは"bureaucrat"グループのみに付与されます)。この制限はLockdown拡張機能を利用してオーバーライドすることはできません。

Some special page titles not capitalized the way they appear on-wiki. For instance, Special:RecentChanges is Recentchanges internally, so to restrict it you need:

$wgSpecialPageLockdown['Recentchanges'] = array('user');

A full list of special page titles is available in /includes/specials/.

$wgActionLockdown[edit]

r45703 以降 $wgActionLockdownを使用すると、任意の利用者グループがアクションをとることに制限を掛けることができます。この例では、非登録利用者の履歴ページの使用を制限しています。

$wgActionLockdown['history'] = array('user');

注意:制限を掛けられないアクションもあります。特に、Ajaxを使っているアクションの制限を掛けることはできません。

$wgNamespacePermissionLockdown[edit]

$wgNamespacePermissionLockdown によって利用者グループがどの名前空間のどの権限を利用できるか制限できます。例えば、project名前空間に対する書き込み権限をsysopグループのメンバーのみに付与するためには、次の設定を使用します:

$wgNamespacePermissionLockdown[NS_PROJECT]['edit'] = array('sysop');

名前空間もしくは権限のどちらか(一度に両方はできません)に対してワイルドカードがサポートされます。より詳細な定義が優先されます:

$wgNamespacePermissionLockdown[NS_PROJECT]['*'] = array('sysop');
$wgNamespacePermissionLockdown[NS_PROJECT]['read'] = array('*');

$wgNamespacePermissionLockdown['*']['move'] = array('autoconfirmed');

最初の2つの行はproject名前空間でのすべてのパーミションをsysopグループに対して制限しますが、まだ誰でも読み込みできます。三番目の行はすべての名前空間におけるページの移動をautoconfirmedグループに制限します。

組み込みの$wgGroupPermissions設定によって許可されない権限を付与できないことに注意してください。次の行は通常の利用者がmainの名前空間で編集をパトロールすることを許可*していません*:

$wgNamespacePermissionLockdown[NS_MAIN]['patrol'] = array('user');

代わりに、最初に$wgGroupPermissionsでこの権限を付与して、$wgNamespacePermissionLockdownを使用して再び制限しなければなりません:

$wgGroupPermissions['user']['patrol'] = true;

$wgNamespacePermissionLockdown['*']['patrol'] = array('sysop');
$wgNamespacePermissionLockdown[NS_MAIN]['patrol'] = array('user');

名前空間に対する閲覧権限を制限するとき、利用者が別の名前空間に対して書き込み権限を持つ場合、制限は簡単に回避できます: 閲覧が制限されたページをテンプレートとしてインクルードすることによって、簡単に見えるようになります。これを回避するために、名前空間のIDを$wgNonincludableNamespacesに追加することで、その名前空間をテンプレートとしてページに利用することを禁止しなければなりません(この機能はMediaWiki 1.10のリビジョン19934で導入されました):

$wgNamespacePermissionLockdown[NS_PROJECT]['read'] = array('user');
$wgNonincludableNamespaces[] = NS_PROJECT;

$wgExtraNamespacesを利用してカスタムの名前空間と一緒にLockdownを使用することもできます:

#カスタムの名前空間を定義する
$wgExtraNamespaces[100] = 'Private';
$wgExtraNamespaces[101] = 'Private_talk';

#"read"権限をログイン利用者に制限する
$wgNamespacePermissionLockdown[100]['read'] = array('user');
$wgNamespacePermissionLockdown[101]['read'] = array('user');

#指定した名前空間からページをインクルードできないようにする
$wgNonincludableNamespaces[] = 100;
$wgNonincludableNamespaces[] = 101;

カスタムの名前空間は常にペア、対象となる名前空間(偶数のid)と関連したtalk名前空間(奇数のid)、で定義すべきであることに注意してください。

名前空間を参照する定数を使いたい場合、次のように定義する必要があります:

#より設定を読みやすくするために、カスタムの名前空間に対して定数を定義する
define('NS_PRIVATE', 100);
define('NS_PRIVATE_TALK', 101);

#カスタムの名前空間を定義する
$wgExtraNamespaces[NS_PRIVATE] = 'Private';
$wgExtraNamespaces[NS_PRIVATE_TALK] = 'Private_talk';

#"read"権限をログイン利用者に制限する
$wgNamespacePermissionLockdown[NS_PRIVATE]['read'] = array('user');
$wgNamespacePermissionLockdown[NS_PRIVATE_TALK]['read'] = array('user');

#指定した名前空間からページをインクルードできないようにする
$wgNonincludableNamespaces[] = NS_PRIVATE;
$wgNonincludableNamespaces[] = NS_PRIVATE_TALK;

You could also use array_fill() to restrict multiple namespaces at once, e.g. if you wanted to restrict namespaces 0 to 2009 to editing by sysops only:

$wgNamespacePermissionLockdown = array_fill( 0, 2010, array( 'edit' => array( 'sysop' ) ) );

グループの保守[edit]

You can control which user belongs to which groups with the page Special:Userrights. Only existing groups will be proposed, but you can "create" a new group by creating an entry for it in Manual:$wgGroupPermissions (even if you don't actually need to set a permission there, but it has to appear on the left hand side of the array). For example:

$wgGroupPermissions['somegroupname']['read'] = true;

For more information, see Help:User rights, Manual:User rights, and Manual:User rights management.

追加の方法[edit]

ページを隠す[edit]

Lockdown拡張機能はページの内容を表示されるのを防止しますが、一覧からアクセスできないページを除去できません。これらのページを隠すためには、MediaWikiにいくつかのパッチを適用しなければなりません。(非公式の)いくつかの提案はExtension:Lockdown/hiding_pagesを参照してください。mailarchive:mediawiki-l/2009-June/031231.html も参照してください。

画像と他のアップロードされたファイル[edit]

画像と他のアップロードされたファイルは閲覧可能でどのページにもインクルードできます。Image名前空間の保護ではインクルードを防止できません。画像に対して認証されていないアクセスを防止する方法に関してはManual:Image Authorisation/jaを参照してください。See also:

関連項目[edit]

言語:Project:Language policy English  • 日本語 • 한국어 • русский