wiki:pne-book-7-note
 ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Version 35 (modified by Morth, 12 years ago) (diff)

--

TOC

ノート

大倉原稿ノート

OpenIDとは?

  1. *dummy


http://sc.pne.jp/200801011950.png
OpenIDとは、URLの形式で構成されたIDで、このIDをエンドユーザーがひとつ取得していると、複数のOpenID対応サイトをひとつのIDで管理できるという大きな特徴があります。最新のOpenPNEでは、SNSの設定次第でSNS内のユーザーひとりひとりにOpenIDのアカウントを提供することができるため、OpenPNEと連携させることによって、SNS内部に留まらない新たなコンテンツづくりや情報共有など、OpenPNEの可能性を大きく広げることができます。 ここでは、OpenPNEと連携させることができるオープンソースソフトウェアを紹介していきます。なお、各ソフトウェアの基本的なインストールや、詳細な設定などは本稿では都合上取り上げることができないので各関連書籍などをご参考ください。

OpenPNE X WordPress

活用事例

  1. OpenPNE内のコミュニティ機能

WordPressにはOpenIDのユーザーに様々な権限レベルを設定できるという大きな特徴を持っています。この特徴を活かしてOpenPNEとの連携では、コミュニティ専用の共同ブログを作って、他のSNSユーザーにもコミュニティの存在を知ってもらったり、新たなコミュニティ参加者を取り入れたりして、コミュニティの更なる活性化を目指すことができます。

  1. 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のインストールと設定

  1. プラグインファイルのアップロード

まず、先程ダウンロードしたソフトを解凍します。解凍してできたopenidディレクトリを丸ごとWordPressのインストールしてあるディレクトリ内の wp-content/plugins/ 以下にアップロードします。
http://ookura.pne.jp/images/wordpress/2_plugin_install/1-1.jpg

  1. プラグインの有効化

ここからはWebブラウザ上からの操作になります。 まず自分の設置しているWordPressにアクセスし、管理者アカウントで管理画面にログインします。
http://ookura.pne.jp/images/wordpress/2_plugin_install/2-1.jpg
次にプラグインタブ内のプラグイン管理にWP-OpenIDモジュールが表示されていることを確認して”使用する”をクリックます。これでプラグインの有効化は完了です。次に各種設定に移ります。
http://ookura.pne.jp/images/wordpress/2_plugin_install/2-2.jpg

  1. 各種設定

今度は設定タブ内の一般設定タブ内、メンバーシップにある "誰でもユーザー登録ができるようにする" と"ユーザー登録してログインしたユーザーのみコメントをつけられるようにする"の二つにチェックを入れ、"設定更新" をクリックして設定を反映させてください。
http://ookura.pne.jp/images/wordpress/2_plugin_install/3-1.jpg
次に、設定タブ内のディスカッションタブにあるコメント表示条件を以下の図のように設定します。
http://ookura.pne.jp/images/wordpress/2_plugin_install/3-1-1.jpg
こちらでも作業が完了したら"設定更新"をクリックして設定を反映しましょう。 最後に、同じく設定タブ内にあるWP-OpenID内にある "Enable OpenID comment auto-approval" と "Add OpenID text to the WordPress? post comment form."のふたつにチェックを入れ、"Update options" をクリックして設定を反映させます。
http://ookura.pne.jp/images/wordpress/2_plugin_install/3-2.jpg
これで設定は完了です。次に動作確認をします。

3. 動作確認

  1. !WordPressのブログにユーザーがコメントをつける

実際にユーザーがOpenIDでコメントが投稿できるか試してみましょう。まずコメントしたいブログ記事を眺めてみましょう。
http://ookura.pne.jp/images/wordpress/3_action_check/1-1.jpg
すると下部に「コメントを投稿するにはログインしてください。」と書いてあるのでログインフォームを表示します。
http://ookura.pne.jp/images/wordpress/3_action_check/1-2.jpg
設定を施す前にはなかったOpenIDのログインフォームがあるはずです。ここに、OpenPNEから発行されているOpenIDを入力することでログインできます。 OpenPNEで発行されるOpenIDは以下のような形式となります。

http://openid.openpne.jp/?m=openid&a=page_home&id={ユーザーのID番号}

ログインするとコメントを投稿したいブログ記事と共にコメント投稿フォームが出てきます。あとはいつもどおりコメントを入力し、投稿することができます。 OpenIDで投稿したコメントには名前の横にOpenIDのロゴが表示されます。
http://ookura.pne.jp/images/wordpress/3_action_check/1-3.jpg

  1. OpenIDでWordPressにログインしたユーザーを確認し、権限レベルを調整する

WordpressにOpenIDで一度ログインしたユーザーは全てWordpressにアカウントが登録されています。 そこで、ログインしたユーザー一覧をみて、権限レベルを変えてみましょう。

まず管理者アカウントで管理ページにログインします。 ユーザータブをクリックすると、ユーザー一覧が表示されます。
http://ookura.pne.jp/images/wordpress/3_action_check/2-1.jpg
ここで、権限レベルを変更したいユーザーにチェックを入れて、"選択したユーザーの更新"内にある権限レベルを指定しましょう。今回はユーザーの権限レベルを "作成者" にします。 一括更新ボタンをクリックしてユーザーの権限レベルの変更は完了です。

最後に、ユーザーの権限レベルが実際に変わったかを確かめます。 管理者アカウントで管理画面にログインしている場合は一旦ログアウトします。 ログイン画面でOpenID入力フォームに権限レベルを変更したユーザーのOpenIDを入力してログインしてみましょう。管理者ユーザーにはある "プラグイン" や "リンク" などのタブが作成者権限のユーザーにはないことがわかります。
http://ookura.pne.jp/images/wordpress/3_action_check/2-2

  1. ユーザーにWordPressのブログを書いてもらう

OpenPNE X MediaWiki

OpenPNE X !Trac

最後に


*メモ*


OpenPNE X Geeklog

Geeklogは煩雑なので後回し

  • 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 (追加)

メリット、外部認証との違い

  1. ユーザはOpenPNEだけの登録処理になる
  2. OpenPNEを招待制にできる。Open制も可
  3. メールアドレス、ニックネーム(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連携の機構を紹介したい


WikiInclude(DIRECTORYNAVI)?

Attachments (1)

Download all attachments as: .zip