Version 49 (modified by 14 years ago) (diff) | ,
---|
ノート
大倉原稿ノート
OpenIDとは?
- *dummy
![]()
OpenIDとは、URLの形式で構成されたIDで、このIDをエンドユーザーがひとつ取得していると、複数のOpenID対応サイトをひとつのIDで管理できるという大きな特徴があります。OpenPNEでは、SNSの設定次第でSNS内のユーザーひとりひとりにOpenIDのアカウントを提供することができるため、OpenPNEと連携させることによって、SNS内部に留まらない新たなコンテンツ作りや情報共有など、OpenPNEの可能性を大きく広げることができます。
ここでは、OpenIDに対応をしているオープンソースのソフトウェアを使ったコンテンツ作りや、現在運営されているサービスを利用したOpenPNEとの連携方法などを紹介していきます。
なお、各ソフトウェアの基本的なインストールや、詳細な設定などのより深い知識に関しては本稿の都合上、取り上げることができませんので各関連書籍などをご参考ください。また、OpenPNEが発行するOpenIDの仕様は本稿執筆時(2008年2月末)の開発版のものとなります。安定版とは仕様が異なる場合がありますが、ご了承ください。
OpenPNE X WordPress
!WordPressとは?
WordPressは、オープンソースのブログツールです。レンタルサーバ等に環境を構築することで、自分専用のブログページを作ることが可能です。また、WordPressには様々なテーマや、プラグインが存在します。これらを導入することにより、オリジナルのブログツールに仕立てていくこともできます。
活用事例
- OpenPNE内のコミュニティ機能
WordPressにはOpenIDのユーザーに様々な権限レベルを設定できるという大きな特徴を持っています。この特徴を活かしてOpenPNEとの連携では、コミュニティ専用の共同ブログを作って、他のSNSユーザーにもコミュニティの存在を知ってもらったり、新たなコミュニティ参加者を取り入れたりして、コミュニティの更なる活性化を目指すことができます。
- OpenPNE公式ブログ
OpenPNE公式ブログ(http://www.openpne.jp/ )では、OpenPNE開発メンバーがOpenPNEに関する様々な情報をWordPressで更新をしていますが、この作業を行う際にOpenPNE公式SNSにある自分のOpenIDを利用してログインし、更新作業を実施しています。
(SS:SNS側のニックネームSSとWordPressのニックネームがあるSS)
SNS側で使用されているニックネームがWordPressでも同じものになります。
OpenIDを導入してからは新規ID発行、パスワード設定の必要がなくなったため、アカウント管理が非常に簡単にすることができるようになりました。 また、OpenID対応にしたことで、コメント投稿機能をOpenID認証制にすることでスパムコメントを排除することに成功し、ユーザーが公式ブログにコメントを付けることもでるようにもなりました。 さらに、一度WordPressに(OpenIDで)ログインしたユーザーであれば、WordPressの管理者が権限レベルを変えることができるので、ユーザーから特別な記事を書いてもらい、それを公式ブログに載せるといったことも可能になります。
OpenPNEとWordPressの連携方法
実際にWordPressにOpenIDを導入し、OpenPNEと連携をする方法を紹介していきます。
はじめに
本稿ではWordPress本体のインストールが完了し、プラグインの追加を行うところから、紹介していきます。 また、日本語版のWordPress本体には本家のWordPress日本語版と派生であるWordPressMEが存在しますが、本稿では本家のWordPress日本語版を使用します。なお、本稿執筆時(2008年2月)のWordPress本体の最新バージョンは2.3.3です。 もし、まだ一度もWordPressをインストールしたことがないという方は、関連書籍または、関連Webページを参考にすることをお勧めします。そして、簡単に導入できるプラグインを試しに追加してみると、なおいいでしょう。また、本章の最後にある参考サイト一覧もご参考ください。
1. !WordPressに導入するプラグインの入手
今回使用するプラグインはWP-OpenIDというものです。まずこのプラグインを入手しましょう。WP-OpenIDのダウンロードページ (http://wordpress.org/extend/plugins/openid/ ) よりダウンロードします。本稿執筆時(2008年2月)の最新バージョンは2.1.4のものとなります。
2. WP-OpenIDのインストールと設定
- プラグインファイルのアップロード
まず、先程ダウンロードしたソフトを解凍します。解凍してできたopenidディレクトリを丸ごとWordPressのインストールしてあるディレクトリ内の wp-content/plugins/ 以下にアップロードします。
![]()
- プラグインの有効化
ここからはWebブラウザ上からの操作になります。 まず自分の設置しているWordPressにアクセスし、管理者アカウントで管理画面にログインします。
![]()
次にプラグインタブ内のプラグイン管理にWP-OpenIDモジュールが表示されていることを確認して”使用する”をクリックます。これでプラグインの有効化は完了です。次に各種設定に移ります。
![]()
- 各種設定
今度は設定タブ内の一般設定タブ内、メンバーシップにある "誰でもユーザー登録ができるようにする" と"ユーザー登録してログインしたユーザーのみコメントをつけられるようにする"の二つにチェックを入れ、"設定更新" をクリックして設定を反映させてください。
![]()
次に、設定タブ内のディスカッションタブにあるコメント表示条件を以下の図のように設定します。
![]()
こちらでも作業が完了したら"設定更新"をクリックして設定を反映しましょう。 最後に、同じく設定タブ内にあるWP-OpenID内にある "Enable OpenID comment auto-approval" と "Add OpenID text to the WordPress? post comment form."のふたつにチェックを入れ、"Update options" をクリックして設定を反映させます。
![]()
これで設定は完了です。次に動作確認をします。
3. 動作確認
- !WordPressのブログにユーザーがコメントをつける
実際にユーザーがOpenIDでコメントが投稿できるか試してみましょう。まずコメントしたいブログ記事を眺めてみましょう。
![]()
すると下部に「コメントを投稿するにはログインしてください。」と書いてあるのでログインフォームを表示します。
![]()
設定を施す前にはなかったOpenIDのログインフォームがあるはずです。ここに、OpenPNEから発行されているOpenIDを入力することでログインできます。 OpenPNEで発行されるOpenIDは以下のような形式となります。http://openid.openpne.jp/?m=openid&a=page_home&id={ユーザーのID番号}ログインするとコメントを投稿したいブログ記事と共にコメント投稿フォームが出てきます。あとはいつもどおりコメントを入力し、投稿することができます。 OpenIDで投稿したコメントには名前の横にOpenIDのロゴが表示されます。
![]()
- OpenIDでWordPressにログインしたユーザーの権限レベルを調整してブログ記事を書いてもらう
WordPressにOpenIDで一度ログインしたユーザーは全てWordpressにアカウントが登録されています。 そこで、WordPressに登録されたユーザーのアカウント権限レベルを変えて、ユーザーがブログ記事を書けるようにしてみましょう。
まず管理者アカウントで管理ページにログインします。 ユーザータブをクリックすると、ユーザー一覧が表示されます。
![]()
ここで、権限レベルを変更したいユーザーにチェックを入れて、"選択したユーザーの更新"にある権限レベルを指定しましょう。今回はユーザーの権限レベルを "作成者" にします。 一括更新ボタンをクリックしてユーザーの権限レベルの変更は完了です。
次に、ユーザーの権限レベルが実際に変わったかを確かめます。 管理者アカウントで管理画面にログインしている場合は一旦ログアウトします。 ログイン画面でOpenID入力フォームに、権限レベルを変更したユーザーのOpenIDを入力してログインしてみましょう。管理者ユーザーにはある "プラグイン" や "リンク" などのタブが、作成者権限のユーザーには無いはずです。
![]()
最後に、ユーザーにWordPressのブログ記事を書いてもらいましょう。管理画面の中にある"作成"タブから記事を書くことができます。
![]()
OpenPNE X Drupal
Drupalとは?
DrupalとはXoopsや、MovableTypeと同様のCMS(コンテンツ・マネージメント・システム)と呼ばれるアプリケーションです。様々なモジュールをアプリケーションに追加することによって、掲示板や様々なコンテンツを提供できるように作られています。
活用事例
- OpenPNEの外部向けポータル
OpenPNEは、会員制による、比較的クローズなコミュニティサイトとして運営されることが多いと思います。しかし、時には外部向けにも情報を発信したいという要望も少なくはないでしょう。そこで、OpenIDとDrupalを用いて、SNS内の外部向けポータルサイトを設置することで、既に運営されているSNSのコンセプトを非会員の人にも、より理解してもらえると同時に、更なる会員の増加が期待できます。また、WordPress以上にユーザーの権限レベルを詳細に設定出来るので、SNS内の複数のユーザーが管理・運営・編集などを行うこともできます。
OpenPNEとDrupalの連携方法
はじめに
ここではDrupalをOpenPNEと連携する方法を紹介していきます。CMSは自由なカスタマイズができるシステムな為、一部大まかな説明があります。また、Drupalのインストールが予め完了していることが前提となります。DrupalのバージョンはOpenIDに標準対応しているDrupal6.0を使用します。日本語版は本稿執筆時(2008年2月末)の時点で翻訳が完了していないため、英語版での紹介になりますが、ご了承ください。
1. Drupalの設定
- DrupalのOpenIDモジュールを有効にする
まず、管理者権限でDrupalにログインします。左側のナビから "Administrator" → "Site Building" → "Modules" の順にクリックし、モジュール一覧を表示します。
![]()
モジュール一覧からOpenIDにチェックを入れ、最下部にある "Save configuration" をクリックし、OpenIDモジュールを有効にします。
{OpenIDモジュールが表示されている画像}
{Save configurationボタンの画像}
これで設定は完了です。一旦ログアウトし、OpenIDでログインができるかを確認してみましょう。 ログイン画面で "Log in using OpenID" をクリックするとOpenID入力フォームが出てくるので、OpenIDを入力して、ログインしてみましょう。
![]()
SNS側と同じニックネームでログインが出来るはずです。ちなみに、SNS側と同じニックネームが表示されるのは初回ログイン時のみで、その後はSNS側でニックネームを変更した場合、Drupalでも変更が必要になります。
{OpenPNE側のニックネーム画像(あとづけ}
{Drupal側のニックネーム画像(あとづけ}
- OpenIDでログインしてくるSNSユーザーに専用の権限設定を与える。
初期設定では、コメントなどの投稿権限は許可されていますが、サイトの管理まではできません。そこで、OpenIDでログインしたSNSユーザーに専用の権限設定を付与ましょう。
最初に、グループの権限設定を作成します。Drupalではこの権限設定をDrupalに登録しているユーザーに付与することで、グループに応じたコンテンツを表示させたり、一部の管理機能を許可させたりといったことが出来るようになっています。
管理者アカウントでログインし、左側のナビから"Administer" → "User management" → "Roles"を開きます。初期の状態では"anonymous user"と"authenticated user"のふたつの設定があるはずです。下部に新規に作成する権限設定の名前を登録するフォームがあるので、名前をつけて"Add role"ボタンを押します。 今回はサイトのレイアウトが編集できる権限設定を作ります。"OpenID - Designer"というグループ名で登録しましょう。
![]()
登録されたのを確認したら、名前の横にある"edit permissions"をクリックし、Drupal内の各機能の権限を設定していきます。 今回はDrupalのデザインが編集できる権限設定を作ります。以下の図のようにチェックをつけていきましょう。
![]()
最後に"Save permissions"をクリックして、グループの権限設定を保存します。
次に、Drupalに登録されているSNSユーザーに、先程作ったグループの権限設定を付与します。
![]()
"Administer" → "User management" → "Users"に、Drupalに登録された全てのユーザーが表示されます。Rolesの列に何も表記のないユーザーは初期グループの"authenticated user"に属しています。
権限設定を変更したいユーザーにチェックマークをつけて、"Update options"から"Add a role to the selected users"に、先程作成した"OpenID - Designer"があるはずなのでこれを選択し、"Update"をクリックします。
これで設定は完了です。次に動作確認に移ります。一旦管理者アカウントからログアウトしておきましょう。
2. 動作確認
- OpenIDでログインするユーザーの権限設定を確認する
DrupalにOpenIDでログインし、権限設定を変更したユーザーがサイトの編集を行えるか確認していきます。 まず、Drupalに権限設定を変更したOpenIDでログインします。
左側のナビに"Administer"が現れていれば設定に成功しています。実際にサイトを編集してみましょう。
![]()
- ホームに表示されるコンテンツの構成を変更する
Drupalに表示されるコンテンツの構成を変更します。"Administer"→"Site building"→"Blocks"から変更が出来ます。 ここでの変更は特に指定をしないので、好きなように変更をしてみましょう。
![]()
変更を施したらホームに戻って確認して、作業は完了です。
![]()
今すぐ使えるOpenID対応サービス
これまで紹介してきたツールは、予め自ら環境を構築した上で、OpenPNEとの連携をさせる方法を紹介してきましたが、ここからは現在、既に運営されているサービスを用いて、OpenPNEと連携させる方法を紹介していきます。
OpenPNE X Springnote
Springnoteとは?
Springnoteとは、オンラインで文書を作成、編集できるサービスです。作成した文書は、他のユーザーと共有することが出来るので、共有したユーザーと共に編集をすることも可能です。
活用事例
- コミュニティのアイディア共有に
SNS内の人たちと勉強会などを通して実際に話し合う機会も少なくはないでしょう。その際に話し合って出てきたアイディアをどこかに残したり、共有したいと思ったことはないでしょうか。
SNS内の自分のブログやコミュニティのトピックを駆使して情報を共有することも可能ですが、投稿できる文書の自由度に制限があるなど、あまり現実的ではないですね。
そこでSpringnoteを用いることで、生まれたアイディアをよりわかりやすく伝えることが可能になります。Springnoteでは、Word文書を作る要領で編集ができ、画像や、表の挿入を行うことも可能です。また、前述したWordpressなどのブログツールへのエクスポート機能なども備えているので、SNS内のコミュニティ専用ブログなどへの投稿を行うことも可能になります。
Springnoteを使う
- はじめに
ここでは、実際にSpringnoteのサービスを使い、文書の作成から文書の公開までを紹介していきます。また、Springnoteのインターフェイスは本稿執筆時(2008年3月)にはまだ日本語化されていなく、英語のインターフェイスとなります。文書への日本語入力は問題なく可能です。
- ノートを作る
まず、ノートを作ります。Springnoteではこのノートの中で様々な文書を管理します。
はじめてSpringnoteにOpenIDでログインをすると"Create a new note"という画像があります。クリックしてノートを新規に作成しましょう。
希望しているノートの名前が既に存在すると、希望通りの名前にできない時があります。
- 文書を書く
- 書いた文書を共有させる
- ブログにエクスポートする
参考サイト一覧
WordPress関連
Drupal関連
その他
- OpenID
最後に
OpenPNE X Trac
以下のTrac環境で、OpenID認証失敗
- Debian(Etch)
- Apache2.2
- Python2.4
- Python OpenID Library2.1.1
- Trac 0.10.3
- TracのOpenIDプラグイン(Rev.3272) http://trac-hacks.org/wiki/OpenidPlugin
trac.iniに下記設定を追加
[components] trac.web.auth.* = disabled openidauth.* = enabled
Tracのログイン画面でIdentifierURL入力→IdPの認証確認画面→認証ボタンクリック→Trac側に戻ってきたときにエラー
openid.ne.jp と www.hatena.ne.jp 2つのIdPで試してみるが、どちらも同じ結果に。
以下エラーログ
Python Traceback Traceback (most recent call last): File "/var/lib/python-support/python2.4/trac/web/main.py", line 387, in dispatch_request dispatcher.dispatch(req) File "/var/lib/python-support/python2.4/trac/web/main.py", line 237, in dispatch resp = chosen_handler.process_request(req) File "build/bdist.linux-i686/egg/openidauth/auth.py", line 166, in process_request File "build/bdist.linux-i686/egg/openidauth/auth.py", line 226, in _handle_return TypeError: complete() takes exactly 3 arguments (2 given)
OpenPNE X Xoops
OpenIDに対応させるモジュールの存在を確認(動作確認はまだ)
OpenPNE X Mediawiki
OpenPNE X Geeklog
OpenID対応GeeklogはCSVに上がってるらしい。
- Geeklogコミュニティで現状の実装方法をヒアリング
- OpenPNE側対応範囲を決定
- OpenPNE側で実装
- Geeklogコミュニティで微調整、対応
OpenPNEとGeeklogをハックしてシングルサインオンする
手順
(前提条件)
Geeklog、OpenPNEのインストール
OpenPNEのWEBサーバからGeeklogのMySQLに接続できること
1.Geeklogの設定 2.Geeklogにプログラム追加修正 3.OpenPNEの設定 4.OpenPNEにプログラム追加修正
1.Geeklogの設定
- ヘッダメニューのアカウント情報は無効にする。
$_CONF['menu_elements'] = array ( 'home', // ホーム へのリンク 'contribute', // 記事の新規作成へのリンク 'calendar', // カレンダ表示へのリンク 'search', // 検索オプションへのリンク 'stats', // ステータス情報 'directory', // 記事の一覧 //'prefs', // アカウント情報 'plugins' // プラグイン {plg_menu_elements} 変数と同じ. // 'custom' // CUSTOM_menuEntries 関数の返す文字列を表示. //(詳細はlib-custom.php参照) );
- ユーザの新規登録を許可しない設定にする
// ユーザの新規登録拒否 false:許可 true:拒否(管理者のみ登録可能) $_CONF['disable_new_user_registration'] = true;
- ユーザが自分でユーザー名を変更できない設定にする
// ユーザが自分でユーザ名を変更(1:変更できる 0:変更できない) $_CONF['allow_username_change'] = 0;
- ユーザ自身でアカウント削除できない設定にする
// ユーザが自分でアカウントを削除(1:削除できる 0:削除できない) $_CONF['allow_account_delete'] = 0;
- ユーザ名表示の際に,本名を表示する設定にする
(1:本名表示 0:ユーザ名表示) $_CONF['show_fullname'] = 1;
- ブロック ユーザ情報は無効にする。
- Admin ユーザのユーザ名をメールアドレスにする
- ブロックにphpblock_sns を登録する(ログイン用)
2.Geeklogにプログラム追加修正
- public_html/admin/auth.inc.php (修正)
- public_html/layout/thema/users_add/*.* (追加)
- public_html/sns/ OpenPNEと同じフォルダへ
- public_html/sns_users/login.php (追加)
- public_html/sns_users/login2.php (追加)
- public_html/sns_users/users_add.php (追加)
- private/geeklog/plugins/users_add/config.php (追加)
- OPENPNE_DIR ENCRYPT_KEY の設定が必要
- private/geeklog/system/custom/phpblock_sns.php (追加)
- lib_custom.phpに登録のこと (修正)
3.OpenPNEの設定
OpenPNEインストール後の管理画面から設定を行う(ログイン→SNS設定)
- 外部ログインページURL:設定する
- 通常ログインページ表示設定:外部ログインページへリダイレクトする
4.OpenPNEにプログラム追加修正
- Geeklogサイトのメールアドレス、パスワード、本名更新処理追加
- private/sns/webapp/lib/db/member.php (修正)
- Geelog $_DB_table_prefix を変更している場合は修正が必要
- Geeklog渡す情報クッキー書き込み
- private/sns/webapp/lib/OpenPNE/Auth.php (修正)
- メールアドレス変更後の画面遷移変更
- private/sns/webapp/modules/pc/do/h_config1.php (修正)
- ログアウト後の画面遷移変更
- private/sns/webapp/modules/pc/do/inc_page_header_logout.php (修正)
- Geeklogサイトからログアウトを実行する
- private/sns/webapp/modules/pc/do/o_logout.php (追加)
メリット、外部認証との違い
- ユーザはOpenPNEだけの登録処理になる
- OpenPNEを招待制にできる。Open制も可
- メールアドレス、ニックネーム(Geeklogでは本名)が一元管理できる
デメリット
- シングルサインオンはPCのみ(携帯はOpenPNEのみログイン)
OpenPNEとGeeklogをハックしてシングルサインオンする例1http://wiki.geeklog.jp/index.php/SSO1
OpenPNE SSOプロジェクトhttp://biz.geeklog.jp/?m=pc&a=page_c_home&target_c_commu_id=14
OpenPNE X GoogleApps
NetCommons? X OpenPNE
※OpenPNE開発版の内容を入れることで、完成されたID連携の機構を紹介したい
Attachments (1)
-
google_logo_sm.gif (4.6 KB) - added by 14 years ago.
test
Download all attachments as: .zip