Extension:OpenIDをxreaで動かす
Extension:OpenIDを導入することでMediaWikiでもOpenIDを使用することが出来ます。ここではxrea(coreserver)でExtension:OpenIDを使用する手順を紹介します。
- 注意
- ここでは、MediaWiki 1.14.0 + Extension:OpenID 0.8xを使用しています。最新Ver.での動作は保証しません。
目次 |
[編集] インストール
[編集] Extension:OpenIDを入れる
ここから自分が使用しているMediaWikiのバージョンに合うextensionをダウンロードしてください。Development version(trunk)は使用しちゃだめ。動かないと思う(それっぽいことが起こっていた)。 ダウンロードしたファイルを解凍すると、OpenIDという名前のフォルダが出てきます。それをMediaWikiのルートディレクトリにあるextensionフォルダに入れてください。 また、OpenIDフォルダに入っているopenid_table.sqlをデータベースにインポートしてください。その後で、LocalSettings.phpに以下を追記してください。 なお、openid_table.sqlをインポートする前に、$wgDBprefix(データベースの接頭辞)を作っているのであれば書き換えておきましょう。
require_once("$IP/extensions/OpenID/OpenID.setup.php");
[編集] PHP OpenIDを入れる
ここからLatest Releasesの2.x.xをダウンロードしてください。ファイルを解凍したあと、そのフォルダ内にAuthというフォルダがあります。 これをフォルダごとMediaWikiのインストールディレクトリに入れてください。 PHP OpenIDで使用するのはAuthのみです。
[編集] 仕上げ
$wgOpenIDConsumerStorePathと$wgOpenIDServerStorePathをLocalSettings.phpに追記してください。 たとえば、こんな感じに。この場合、MediaWikiのインストールディレクトリにtmpというディレクトリを使用する、ことになります。
$wgOpenIDConsumerStorePath = 'tmp/openid-consumer/'; $wgOpenIDServerStorePath = 'tmp/openid-store/';
ちなみに、OpenID.setup.phpにある該当項目を編集すれば、LocalSettings.phpに追記する必要はなくなります。 ここから重要 先ほど指定したtmp/openid-consumer/, openid-storeはあらかじめ作っておきます。また、openid-consumer下にassociations, nonces, tempの3つのディレクトリを作成し適切なパーミッション(707くらい)を設定してください。これをしないままにログインしようとすると、認証に失敗することになり更にはディレクトリがapache側で生成され自分で弄れなくなるという事態に発展します。
[編集] Special:OpenIDConvertを使えるようにする
Special:OpenIDConvertとは、既存のMediaWikiアカウントと外部のOpenIDとを関連づけるものです。これを利用することでユーザーページ(利用者:***)に関連づけたOpenID URLが表示されます。なお、一度OpenIDでログインした場合、そのOpenIDアカウントは関連付けることが出来ません。
$wgOpenIDServerStorePath = 'tmp/openid-store/';
このディレクトリが使用されます。使えるようにするには、associations, nonces, tempの3つのディレクトリを作成し適切なパーミッションを設定します。consumerとまったく同じです。
[編集] $wgOpenIDClientOnly
$wgOpenIDClientOnlyとは、MediaWikiのユーザーページをOpenIDとして利用できるようにするか否かを設定するものです。デフォルトではfalseとなっており、このままだとhttp://example.com/User:UserID(利用者ではなくUser)がOpenID URLとして使えるようになります。trueにするとOpenIDとして使用できなくなります。
[編集] mixi OpenIDを使えるようにする
mixi OpenIDのサンプルコードをPHP OpenID Libraryを使って動かしてみた(訂正) ここの<サーバーのroot権限がない方>が楽。 また、ParanoidHTTPFetcher.phpを開いて、以下をcurl_exec($c);の直前(2カ所あります)に挿入すること。
if ($this->isHTTPS($url)) {
curl_setopt ($c, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt ($c, CURLOPT_CAINFO, 'mixi.jp.crtのパス');
}