Extension:OpenIDを導入することでMediaWikiでもOpenIDを使用することが出来ます。ここではxrea(coreserver)でExtension:OpenIDを使用する手順を紹介します。
目次 |
ここから自分が使用しているMediaWikiのバージョンに合うextensionをダウンロードしてください。Development version(trunk)は使用しちゃだめ。動かないと思う(それっぽいことが起こっていた)。
ダウンロードしたファイルを解凍すると、OpenIDという名前のフォルダが出てきます。それをMediaWikiのルートディレクトリにあるextensionフォルダに入れてください。
また、OpenIDフォルダに入っているopenid_table.sqlをデータベースにインポートしてください。その後で、LocalSettings.phpに以下を追記してください。
require_once("$IP/extensions/OpenID/OpenID.setup.php");
ここから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とは、既存のMediaWikiアカウントと外部のOpenIDとを関連づけるものです。これを利用することでユーザーページ(利用者:***)に関連づけたOpenID URLが表示されます。なお、一度OpenIDでログインした場合、そのOpenIDアカウントは関連付けることが出来ません。
$wgOpenIDServerStorePath = 'tmp/openid-store/';
このディレクトリが使用されます。使えるようにするには、associations, nonces, tempの3つのディレクトリを作成し適切なパーミッションを設定します。consumerとまったく同じです。
$wgOpenIDClientOnlyとは、MediaWikiのユーザーページをOpenIDとして利用できるようにするか否かを設定するものです。デフォルトではfalseとなっており、このままだとhttp://example.com/User:UserID(利用者ではなくUser)がOpenID URLとして使えるようになります。trueにすると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のパス'); }