OpenID さえあれば MTOS に Author アカウントでエントリできるようにする hack!

| 1 Comment | 1 TrackBack | このエントリーをはてなブックマークに追加 このエントリーのはてなブックマーク件数

こんにちは woremacx です!

OpenID さえあれば MTOS に Author アカウントでエントリできるようにする hack をしましたのでかんたんに紹介します。


みなさん MTOS つかってますか? MTOS は、Perl言語で作られている Movable Type のオープンソース版で、GNU GPL で使える cool なプロダクトです! GNU GPL のもとで使えるのですから、お仕事にでもお遊びにでも積極的に使いたいですね! この perl-mongers.org にも早速インストールしました。

そんな、ぼくお気に入りの MTOS に、OpenID でログインするだけで Author アカウントを作成しエントリできるようにする hack をしました。アイディアは、kazeburo さんの LIMILIC そのものです。tomyhero さんのセクシーObjective-C - sxey objective-c ブログ というサイトでは、LIMILIC で共有ブログを実現しています。


実現方法について説明します。今回は、従来の username / password による認証を機能させつつ、OpenID でログインしてきたユーザに最小限の権限を付すことにしました。

OpenID 部分は、コメントの外部認証に使われている MT::Auth::OpenID をコピペして MT::Auth::MTOpenID というモジュールを作りました。

MT::Auth::MTOpenID では、

  • Net::OpenID::Consumer をつかって OpenID 周りの処理
  • blog_id のバリデーション
  • type が MT::Author::AUTHOR() の author を追加
  • あらかじめ指定してある role 名からの permission, association を追加

というようなことをやっています。

それをふまえて、コア (MT::App) の login メソッドを少し触りました。OpenID での認証時には MT::Auth のメソッドを使わずに、新規にログインがあったかのように振る舞っています。


使い方は、

  • パッチをあてる
  • mt-config.cgi に必要な設定を書く
  • コメントの認証設定で OpenID を使わないように変更する

という感じです。


mt-config.cgi の書き方は、

# OpenID で記事を書けるようにするブログの ID の Regexp
AllowOpenIDUserBlog 1

# OpenID でログインしてきたユーザに付す Role
OpenIDUserRole Author

# デフォルトのメールアドレス
OpenIDUserEmail dummy-addr@example.com

となっており、全て設定する必要があります。


以下が MT-4.15b5 からの変更点をまとめたパッチです。

ざっと説明してきた今回の hack ですが、こうやったら攻撃できるんじゃないかとか、脆弱性があるとか、そういうポイントがあれば是非ご指摘いただけたらうれしいです!よろしくお願いします!


ということで OpenID があればこのブログに書けるよ!

みんなブログ書いて Perl を盛り上げていこう!

1 TrackBack

TrackBack URL: http://perl-mongers.org/MT/mt-tb.cgi/12

1 Comment

MTOS4.21でやってみると、エラーでます。
MT-4.15b5から仕様変更しているのかな?

Got an error: Missing right curly or square bracket at lib/MT/App.pm line 3574, at end of line
syntax error at lib/MT/App.pm line 3574, at EOF
Compilation failed in require at (eval 4) line 3.
...propagated at /usr/lib/perl5/5.8.5/base.pm line 85.
BEGIN failed--compilation aborted at lib/MT/App/CMS.pm line 10.
Compilation failed in require at lib/MT/Bootstrap.pm line 62.

Leave a comment

About this Entry

This page contains a single entry by woremacx published on May 25, 2008 5:06 AM.

シャチ泳ぎとシュワルツ変換 was the previous entry in this blog.

perl-mongers.org に OpenID でサインインしよう! is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Categories

Pages

Creative Commons License
This blog is licensed under a Creative Commons License.
Powered by Movable Type 4.21-en