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

Version 20 (modified by imoto, 14 years ago) (diff)

--

TOC

第7章 外部連携

外部アプリとの連携でOpenPNEはここまで良くなる

機能連係

小窓

  • 天鳳
  • Skype

ID連携

MasterPNE

MasterPNEとは、OpenPNEのユーザーアカウントを親(Master)として、外部のアプリケーションを連携させる方法です。
MasterPNEに対応するには、OpenPNE本体ではなく、外部システム側がMasterPNEの提供する認証機構をサポートしている必要があります。
ですので、今後OpenPNEでは、より多くの外部システムと連動するため、複数の認証プロトコルをサポートしていく予定です。

OpenPNE X Trac

TracはPythonにより実装されているソフトウェアのプロジェクト管理とバグ追跡のためのツールです。現在、多くのオープンソースプロジェクトで活用されています。 OpenPNEプロジェクトでも現在Tracを利用してプロジェクト管理やバグ追跡をしています。

OpenPNEとTracを連携させることで、SNSのユーザーだけTracにログインできるということが可能になります。

現在、OpenPNEの公式SNSとOpenPNE公式TracはこのOpenPNEとTracのMasterPNEで動いています。
OpenPNE公式SNS内の「プロフィール変更」の欄に「TRACログインID」というTracのログインIDを入力する欄があるので、この「TRACログインID」にログインIDを入力すれば、このTRACログインIDとOpenPNE公式SNSのパスワードでOpenPNE公式Tracにログイン出来る様になります。

前提条件としてOpenPNE、Trac(dagのyumインストール)がインストールされているものとします。

なお、ここではTrac自体のインストール方法や詳細については解説していません。 それについての詳細はTracのドキュメントもしくはWebサイトを参照してください。

https://trac.openpne.jp/svn/prj/pne-book/pne-book-7/trac.png

The Trac Project
http://trac.edgewall.org

導入手順

1.mod_auth_mysqlの導入
2.httpd.confの修正
3.動作確認

mod_auth_mysqlの導入

まずは、mod_auth_mysqlの導入します。
mod_auth_mysqlとはApacheの通常のファイルベースのベーシック認証をMySQLベースに置き換える仕組みです。
インストールは比較的簡単に出来ると思います。また、最初からサーバにインストールされているいる場合もあるので一度確認してみてください。

インストール

yum install mod_auth_mysql

※RedhatEL(CentOS)には標準で搭載されています。

httpd.confの修正

次に、httpd.confを修正します。
今回は、SNSのニックネーム・SNSのログインパスワードを、外部認証のID・パスワードとして利用することにします。
また、http://xxx.openpne.jp のSNSをMasterとして、http://xxx.openpne.jp/trac/ のTracアプリケーションにログインするための設定をします。
AuthMySQLUser、AuthMySQLPassword、AuthMySQLDBは適宜読み替えてください。

AuthMySQLNameFieldでログインID用のフィールドを指定してください。今回はSNSのニックネームを使用するのでnicknameとしています。
AuthMySQLPasswordFieldでパスワード用のフィールドを指定しています。

 <Location /trac/>
 AuthName "OpenPNE"
 AuthType Basic
 AuthMySQLEnable on
 AuthMySQLUser *****
 AuthMySQLPassword **********
 AuthMySQLDB sns_openpne_jp
 AuthMySQLNameField nickname
 AuthMySQLPasswordField hashed_password
 AuthMySQLUserTable "c_member, c_member_secure"
 AuthMySQLUserCondition "c_member.c_member_id=c_member_secure.c_member_id"
 AuthMySQLPwEncryption md5
 Require valid-user
</Location>

httpd.confの修正が終わったら、Apacheを再起動して設定を有効にします。

# /usr/local/apache/bin/apachectl restart

動作確認

それでは動作確認してみましょう。
通常通り、SNSのユーザー登録します。
次に、Trac(認証サイト)に移動しSNSのニックネームとパスワードでログインします。

無事ログイン出来たら、OpenPNEとTracでMasterPNEを使って連携することが出来ました。

SlavePNE

SlavePNEとは、他のシステムのアカウントを親、OpenPNEを子(Slave)として連携させる方法です。OpenPNEでは現在認証系の外部ライブラリにPEARライブラリのAuth_Containerを使っています。このSlavePNEはAuth_Containerを使っています。

XOOPS X OpenPNE

XOOPSは、コミュニティサイト構築用ソフトです。 このソフトウェアを使用することにより、ポータルサイトを手軽に作成することが出来ます。

XOOPSとOpenPNEを連携することで、現在XOOPSのコミュニティを運営しているが新しくSNSの機能を追加したいという場合でも、簡単に同じアカウントでログインすることが出来ます。
XOOPSは多くのモジュールが提供されているので、OpenPNEだけでは足りない機能をXOOPSで補うことも出来るかもしれません。
前提条件としてXOOPS、OpenPNEがインストールされているものとします。

なお、ここではXOOPS自体のインストール方法や詳細については解説していません。 それについての詳細はXOOPSのドキュメントもしくはWebサイトを参照してください。

https://trac.openpne.jp/svn/prj/pne-book/pne-book-7/XOOPS.png

XOOPS Project
http://www.xoops.org/

XOOPSCube日本サイト
http://xoopscube.jp/

導入手順

1.config.phpのIS_SLAVEPNE、authオプションを設定
2.動作確認

config.phpのIS_SLAVEPNE、authオプションを設定

まず、OpenPNEのrootディレクトリにあるconfig.phpのIS_SLAVEPNEとauthオプションを設定します。

root/

 bin
 lib
 public_html
 setup
 var
 webapp
 webapp_biz
 webapp_ext
 config.php
 LICENSE

IS_SLAVEPNEをtrueにします。
次に、authオプションの設定をします。
username,password,hostspec,databaseはxoopsのDB設定と同一にします。
xoopsのDBを参照し、table,usernamecol,passwordcolを設定します。
最後に、cryptTypeをmd5に設定します。これはXOOPSがmd5を使用しているためこの設定をしないとログインすることが出来ません。
これだけの簡単な設定で、XOOPSのユーザIDとパスワードでOpenPNEにログインすることが出来ます。

// 外部認証を使用するかどうか
define('IS_SLAVEPNE' , true);

// IS_SLAVEPNEがtrueの場合のauthオプション
$GLOBALS['_OPENPNE_AUTH_CONFIG'] = 
array(
'storage'=>"DB",
'options'=>array(
    'dsn'         => array(
        'phptype'  => 'mysql',
        'username' => 'MySQLユーザ名',
        'password' => 'MySQLパスワード',
        'hostspec' => 'ホスト名',
        'database' => 'データベース名',
        'new_link' => true,
        ),
    'table'       => 'xoops_users',
    'usernamecol' => 'uname',
    'passwordcol' => 'pass',
    'cryptType'   => 'md5',
    ),
);

動作確認

それでは動作確認してみましょう。

XOOPSのユーザIDとパスワードでOpenPNEにログインします。
通常通りOpenPNEにログインしてください。
新規ユーザの場合は通常のOpenPNE同様プロフィール項目などの登録が必要です。
これで、XOOPSとOpenPNEをSlavePNEで連携させることが出来る様になりました。

GoogleApps X OpenPNE

GoogleAppsにはさまざまな特徴があり、大容量WebメールのGmail、カレンダーの共有が出来るGoogleカレンダー、ワードやエクセルの形式も編集出来るGoogleDocs&Spreadsheetsとさまざまなツールを使うことが出来ます。
GoogleAppsとOpenPNEを連携して利用することで、一つのアカウントでログインすることができ、社内でのアカウント管理も楽になります。また、この方法で連携したSNSにはGoogleAppsのアカウントを持ったユーザのみログイン可能なので、限定したユーザのみログインできるSNSを作ることが出来ます。
小規模の会社であれば、OpenLDAPを使っていない場合がほとんどだと思います。しかし、この様にPOP3でOpenPNEと連携することが出来ます。

前提条件としてGoogle Appsへの申し込み、OpenPNEのインストールさているものとします。

なお、ここではGoogle Apps自体のイ詳細については解説していません。 それについての詳細はGoogle AppsのWebサイトを参照してください。

https://trac.openpne.jp/svn/prj/pne-book/pne-book-7/GoogleApps.png

GoogleApps
https://www.google.com/a/

導入手順

1.config.phpのIS_SLAVEPNE、authオプションを設定
2.Google Appsのアカウント設定
3.動作確認

config.phpのIS_SLAVEPNE、authオプションを設定

まず、OpenPNEのrootディレクトリにあるconfig.phpのIS_SLAVEPNEとauthオプションを設定します。

root/

 bin
 lib
 public_html
 setup
 var
 webapp
 webapp_biz
 webapp_ext
 config.php
 LICENSE

IS_SLAVEPNEをtrueにします。
authオプションのstorageをPOP3、hostをssl://pop.gmail.comに、portを995に設定します。

// 外部認証を使用するかどうか
define('IS_SLAVEPNE' , true);

// IS_SLAVEPNEがtrueの場合のauthオプション
$GLOBALS['_OPENPNE_AUTH_CONFIG'] = 
array(
'storage'=>"POP3",
'options'=>array(
    'host' => 'ssl://pop.gmail.com',
    'port' => '995'
    ),
);

Google Appsのアカウント設定

次に、Google Appsのアカウント設定を行います。この設定を行わないと、ログインできません。

では、まずOpenPNEにログインしたいアカウント(メールアドレス)で、Google Appsにログインします。
右上の「設定」から「メール転送とPOP設定」に遷移すると、「POPのダウンロード」設定が、「1.ステータス:POPは無効になっています」となっており、POPが無効になっているので、すぐ下にある「すべてのメールでPOPを有効にする」というラジオボタンを選択し、POPを有効にして変更を保存します。

これで設定は終了です。

https://trac.openpne.jp/svn/prj/pne-book/pne-book-7/GoogleApps_pop.png

動作確認

それでは動作確認してみましょう。

Google Appsのアカウント(メールアドレス)とパスワードでOpenPNEにログインします。
OpenPNEにログインした時点で、Google Appsでの認証は通過しています。

次に、「プロフィール入力画面」が表示されるので、入力し登録を完了します。

「メールアドレス登録」が表示されるのでメールアドレスを入力し、メールを送信します。この時、Google Appsのメールアドレスを入力しておくと管理が楽になります。

入力したメールアドレスにSNSから届いたメールを開き、パスワードを入力し、登録を完了させます。
これでログインすることが出来ればGoogle AppsとOpenPNEをSlavePNEで連携させることが出来る様になりました。

Geeklog X OpenPNE

Geeklogはブログ機能が充実したコンテンツマネジメントシステムです。 特徴としては、拡張性・汎用性が高く、システムを簡単に拡張するプラグインシステムだけではなく、手軽に開発することが出来るアドオン開発環境が整備されています。

Geeklogは拡張性が高い汎用CMSとして普及しており、OpenPNEにはない機能があります。
BlogなどOpenPNEだけでは管理できない機能を使い、OpenPNEとID連携することでコンテンツの管理が非常に楽になります。
一つのコミュニティの中で、クローズにしたい所はOpenPNEで、オープンにしたい所はOpenPNEでといったようにコミュニティの中でオープンとクローズドを上手く使い分けることも可能です。

前提条件としてGeeklog、OpenPNEがインストールされているものとします。
また、OpenPNEのWEBサーバからGeeklogのMySQLに接続できる必要があります。

なお、ここではGeeklog自体のインストール方法や詳細については解説していません。 それについての詳細はGeeklogのドキュメントもしくはWebサイトを参照してください。

https://trac.openpne.jp/svn/prj/pne-book/pne-book-7/Geeklog.png

    
Geeklog
http://www.geeklog.net

Geeklog日本公式サイト
http://www.geeklog.jp

導入手順

1.OpenPNEのconfig.phpのIS_SLAVEPNE、authオプションを設定
2.Geeklogのconfig.phpを設定
3.Geeklogにユーザ登録
4.動作確認

OpenPNEのconfig.phpのIS_SLAVEPNE、authオプションを設定

まず、OpenPNEのrootディレクトリにあるconfig.phpのIS_SLAVEPNEとauthオプションを設定します。

root/

 bin
 lib
 public_html
 setup
 var
 webapp
 webapp_biz
 webapp_ext
 config.php
 LICENSE

IS_SLAVEPNEをtrueにします。
次に、authオプションの設定をします。
ここではphptypeにmysqlを使用しています。MySQLユーザ名、MySQLパスワード、MySQLパスワード、ホスト名、データベース名は適宜読み替えてください。
tableはgl_usersを使います。usernamecolにはusersを、passwordcolにはpasswdを設定してください。
また、cryptTypeはmd5にしてください。

これでOpenPNE側の設定は終了です。

// 外部認証を使用するかどうか
define('IS_SLAVEPNE' , true);
// IS_SLAVEPNEがtrueの場合のauthオプション
$GLOBALS['_OPENPNE_AUTH_CONFIG'] =
array(
'storage'=>"DB",
'options'=>array(
    'dsn'         => array(
        'phptype'  => 'mysql',
        'username' => 'MySQLユーザ名',
        'password' => 'MySQLパスワード',
        'hostspec' => 'ホスト名',
        'database' => 'データベース名',
        'new_link' => true,
        ),
    'table'       => 'gl_users',
    'usernamecol' => 'users',
    'passwordcol' => 'passwd',
    'cryptType'   => 'md5',
    ),
);

Geeklogのconfig.phpを設定

次に、Geeklogのconfig.phpを設定します。

root/

 backups
 data
 language
 logs
 plugins
 public_html
 sql
 system
 config.php
 emailgeeklogstories
 INSTALL
 readme
 

config.phpの設定でユーザ名を変更できない様にします。

// ユーザが自分でユーザ名を変更(1:変更できる 0:変更できない)
$_CONF['allow_username_change'] = 0;

Geeklogにユーザ登録

Geeklogにユーザ登録します。
新規登録から、Geeklogにユーザ登録してください。

動作確認

それでは動作確認してみましょう。

OpenPNEへGeeklogに登録したユーザ名とパスワードでログインします。 ログイン出来れば、GeeklogとOpenPNEをSlavePNEで連携させることが出来る様になりました。

OpenLDAP X OpenPNE

OpenLDAPはLDAPを実装したオープンソースのディレクトリサービスソフトウェアのことです。 LDAPの特徴から、OpenLDAPを社内システムでを使うことも多いと思います。
その様な時にOpenLDAPとOpenPNEを連携することが出来れば同じIDでログインすることが出来るので社内SNSなどSNSの導入も比較的楽に導入出来る様になります。

前提条件としてLDAPに対応したアプリケーション、OpenPNEがインストールされているものとします。

なお、ここではOpenLDAP自体のインストール方法や詳細については解説していません。 それについての詳細はOpenLDAPのドキュメントもしくはWebサイトを参照してください。

https://trac.openpne.jp/svn/prj/pne-book/pne-book-7/OpenLDAP.png

OpenLDAP
http://www.openldap.org

導入手順

1.config.phpのIS_SLAVEPNE、authオプションを設定
2.config.phpのsession_save_pathを設定
3.動作確認

config.phpのIS_SLAVEPNE、authオプションを設定

まず、OpenPNEのrootディレクトリにあるconfig.phpのIS_SLAVEPNEとauthオプションを設定します。

root/

 bin
 lib
 public_html
 setup
 var
 webapp
 webapp_biz
 webapp_ext
 config.php
 LICENSE

IS_SLAVEPNEをtrueにします。
次に、authオプションの設定をします。
storageにLDAPを選択し、authオプションを設定します。
下に設定の一例を挙げています。

// 外部認証を使用するかどうか
define('IS_SLAVEPNE' , false);

// IS_SLAVEPNEがtrueの場合のauthオプション
$GLOBALS['_OPENPNE_AUTH_CONFIG'] = 
array(
    'storage'=>"LDAP",
    'options'=>array(
        'url' => 'ldap://192.168.0.1',
        'basedn' => 'dc=example,dc=com',
        'userattr' => 'uid'
    ),

);

動作確認

それでは動作確認してみましょう。

LDAPのuidとpasswordでOpenPNEにログインします。
新規ユーザの場合は通常のOpenPNE同様プロフィール項目などの登録が必要です。
メール承認後、LDAPのuidとpasswordでログイン出来ます。

自動ログイン設定

SlavePNEを使うときに、自動ログイン設定が出来ないということがあります。 自動ログイン設定を使うにはOpenPNE側で設定が必要です。 今回はその自動ログインの設定を紹介します。

config.phpのsession_save_pathを設定

OpenPNEのrootディレクトリにあるconfig.php内のsession_save_pathを設定してきます。

root/

 bin
 lib
 public_html
 setup
 var
 webapp
 webapp_biz
 webapp_ext
 config.php
 LICENSE

自動ログインするためにセッションの設定をします。

まず、OpenPNEのrootディレクトリにあるconfig.php内のsession_save_pathを設定します。
デフォルトではsession_save_pathがコメントアウトされているので、コメントアウトをはずします。
次に、pathを設定する必要があればpathを環境に応じて設定してください。
このpathはOpenPNEが設置されている絶対アドレスにしてください。
これでセッションが保存されるようになり、自動ログインが出来る様になります。

///
// セッション・クッキー設定
///

ini_set('session.gc_probability',1);
ini_set('session.gc_divisor',10000);

ini_set('session.gc_maxlifetime', 432000); // 5 days
session_save_path('/tmp');

OpenID

OpenIDとは?

OpenIDとはWEBサイトを超えて認証システムを構築できるシステムです。
OpenPNEにおけるOpenIDの連携には二つの方法が考えられます。
その二つの方法とは「OpenPNEがOpenIDのプロバイダーになる」と「OpenPNEがOpenIDのカスタマーになる」です。
今回はOpenPNEがプロバイダになる方法を紹介します。

OpenIDは、URLの形式で発行されます。このURLを取得していると、OpenIDに対応しているすべてのサイトにひとつのIDでログインすることができます。

ここでは、OpenIDに対応をしているオープンソースのソフトウェアを使って、OpenPNEとの連携方法を紹介していきます。

OpenPNEが発行するOpenIDの仕様は本稿執筆時(2008年2月末)の開発版のものとなります。安定版とは仕様が異なる場合がありますが、ご了承ください。

(OpenIDのスクリーンショット)

http://sc.pne.jp/200801011950.png

OpenPNEでのOpenIDの設定

まず、OpenIDのIDをOpenPNEで発行するには設定が必要になります。
ただ、config.phpにあるIS_OPENID_PROVIDERをtrueにするだけで簡単にOpenPNEでOpenIDのURLを発行することができます。

config.php


//OpenIDのプロバイダとなるかどうか 
define('IS_OPENID_PROVIDER', true); 

//OpenIDの乱数用定義 
define('Auth_OpenID_RAND_SOURCE', NULL); 

OpenPNEで発行されるOpenIDのURLは以下のような形式となります。

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

OpenPNE X WordPress?

WordPressは、オープンソースのブログツールです。
WordPressには様々なテーマや、プラグインが存在し、これらを導入することによりオリジナルのブログを構築できます。

WordPressにはOpenIDのユーザーに様々な権限レベルを設定できるという大きな特徴を持っています。この特徴を活かして、OpenPNEと連携して、OpenPNE参加者専用の共同ブログを作ることができます。

事例として、OpenPNE公式ブログでは、OpenPNE開発メンバーがOpenPNEに関する様々な情報をWordPressで更新をしています。
このOpenPNE公式SNSはOpenIDを利用してログインし、更新しています。
OpenIDを導入することにより、IDの新規発行作業の必要がなくなりました。

前提条件としてWordPress、OpenPNEがインストールされているものとします。

なお、ここではWordPress自体のインストール方法や詳細については解説していません。 それについての詳細はWordPressのドキュメントもしくはWebサイトを参照してください

(WordPress公式SNSのスクリーンショット)

WordPress › Blog Tool and Weblog Platform
http://wordpress.org/
    
WordPress Japan
http://wordpress.xwd.jp/

導入手順

1.WordPressに導入するプラグインの入手
2.WP-OpenIDのインストールと設定
3.動作確認

1.WordPressに導入するプラグインの入手

今回はWP-OpenIDというプラグインを使用します。
まずこのプラグインを入手しましょう。WP-OpenIDのダウンロードページからダウンロードします。本稿執筆時(2008年2月)の最新バージョンは2.1.4のものとなります。

(スクリーンショット http://wordpress.org/extend/plugins/openid/)

WP-OpenID ダウンロードページ
http://wordpress.org/extend/plugins/openid/
 

2. WP-OpenIDのインストールと設定

まず、先程ダウンロードしたプラグインを解凍します。
以下はダウンロードしたプラグインを解凍したopenidディレクトリの構成です。

openidディレクトリ

Auth
files
Log
Tests
core.php
interface.php
logic.php
OpenIDLog.php
readme.txt
screenshot-1.png
screenshot-2.png
screenshot-3.png
store.php

解凍してできたopenidディレクトリをすべてWordPressのディレクトリ内の wp-content/plugins/ 以下にアップロードします。

http://ookura.pne.jp/images/wordpress/2_plugin_install/1-1.jpg

次に、WP-OpenIDプラグインを有効化します。
ここからは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 次に、各種設定を行います。
設定タブ内の一般設定タブを選択し、メンバーシップにある「誰でもユーザー登録ができるようにする」と「ユーザー登録してログインしたユーザーのみコメントをつけられるようにする」の二つのチェックボックスににチェックを入れ、「設定更新」 をクリックして設定を反映させてください。

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. 動作確認

ここでの動作確認は、OpenPNEで発行されたOpenIDのURLでWordPressのブログにコメントを書き込むことができることを確かめる動作確認と、OpenPNEで発行されたOpenIDのURLでブログに投稿することができることを確かめる動作確認を行います。

  1. WordPressにコメントを書き込む
    実際にOpenPNEのユーザーがOpenPNEで発行されたURLでコメントが投稿できるか動作確認してみましょう。まずコメントしたいブログ記事のページにいきます。

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のログインフォームがあるはずです。この「OpenID url:」というフォームにOpenPNEから発行されたOpenIDのURLを入力することでログインできます。

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. WordPressにブログの記事を投稿する

次に、WordPressにブログの記事を投稿する動作確認を行います。しかし、OpenIDを発行された段階ではアカウントの権限レベルが設定されていないので、まずは管理者がブログ投稿者に「作成者」の権限を与える必要があります。それではまず、「作成者」の権限を与える方法から見ていきましょう。

WordPressにOpenIDで一度ログインしたユーザーは全てWordpressにアカウント登録されています。

そこで、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.jpg

最後に、WordPressのブログ記事を書いて確認しましょう。管理画面の中にある"作成"タブから記事を書くことができます。

http://ookura.pne.jp/images/wordpress/3_action_check/3-1.jpg

■■■■■■■■■■■■とりあえずここまで■■■■■■■■■■■■■■■

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の設定

  1. DrupalのOpenIDモジュールを有効にする
    まず、管理者権限でDrupalにログインします。左側のナビから "Administrator" → "Site Building" → "Modules" の順にクリックし、モジュール一覧を表示します。
    http://ookura.pne.jp/images/drupal/oid_settings/1-1.jpg

    モジュール一覧からOpenIDにチェックを入れ、最下部にある "Save configuration" をクリックし、OpenIDモジュールを有効にします。
    http://ookura.pne.jp/images/drupal/oid_settings/1-2.jpg{OpenIDモジュールが表示されている画像}

    http://ookura.pne.jp/images/drupal/oid_settings/1-3.jpg{Save configurationボタンの画像}
    これで設定は完了です。一旦ログアウトし、OpenIDでログインができるかを確認してみましょう。 ログイン画面で "Log in using OpenID" をクリックするとOpenID入力フォームが出てくるので、OpenIDを入力して、ログインしてみましょう。
    http://ookura.pne.jp/images/drupal/oid_settings/1-4.jpg

    SNS側と同じニックネームでログインが出来るはずです。ちなみに、SNS側と同じニックネームが表示されるのは初回ログイン時のみで、その後はSNS側でニックネームを変更した場合、Drupalでも変更が必要になります。
    http://ookura.pne.jp/images/drupal/oid_settings/1-5.jpg{OpenPNE側のニックネーム画像(あとづけ}
    http://ookura.pne.jp/images/drupal/oid_settings/1-6.jpg{Drupal側のニックネーム画像(あとづけ}

  2. OpenIDでログインしてくるSNSユーザーに専用の権限設定を与える。
    初期設定では、コメントなどの投稿権限は許可されていますが、サイトの管理まではできません。そこで、OpenIDでログインしたSNSユーザーに専用の権限設定を付与ましょう。
    最初に、グループの権限設定を作成します。Drupalではこの権限設定をDrupalに登録しているユーザーに付与することで、グループに応じたコンテンツを表示させたり、一部の管理機能を許可させたりといったことが出来るようになっています。
    管理者アカウントでログインし、左側のナビから"Administer" → "User management" → "Roles"を開きます。初期の状態では"anonymous user"と"authenticated user"のふたつの設定があるはずです。下部に新規に作成する権限設定の名前を登録するフォームがあるので、名前をつけて"Add role"ボタンを押します。 今回はサイトのレイアウトが編集できる権限設定を作ります。"OpenID - Designer"というグループ名で登録しましょう。
    http://ookura.pne.jp/images/drupal/oid_settings/2-1.jpg

    登録されたのを確認したら、名前の横にある"edit permissions"をクリックし、Drupal内の各機能の権限を設定していきます。 今回はDrupalのデザインが編集できる権限設定を作ります。以下の図のようにチェックをつけていきましょう。
    http://ookura.pne.jp/images/drupal/oid_settings/2-2.jpg
    最後に"Save permissions"をクリックして、グループの権限設定を保存します。
    次に、Drupalに登録されているSNSユーザーに、先程作ったグループの権限設定を付与します。
    http://ookura.pne.jp/images/drupal/oid_settings/2-3.jpg
    "Administer" → "User management" → "Users"に、Drupalに登録された全てのユーザーが表示されます。Rolesの列に何も表記のないユーザーは初期グループの"authenticated user"に属しています。
    権限設定を変更したいユーザーにチェックマークをつけて、"Update options"から"Add a role to the selected users"に、先程作成した"OpenID - Designer"があるはずなのでこれを選択し、"Update"をクリックします。
    これで設定は完了です。次に動作確認に移ります。一旦管理者アカウントからログアウトしておきましょう。

2. 動作確認

  1. OpenIDでログインするユーザーの権限設定を確認する
    DrupalにOpenIDでログインし、権限設定を変更したユーザーがサイトの編集を行えるか確認していきます。 まず、Drupalに権限設定を変更したOpenIDでログインします。
    左側のナビに"Administer"が現れていれば設定に成功しています。実際にサイトを編集してみましょう。
    http://ookura.pne.jp/images/drupal/check_system/1-1.jpg
  2. ホームに表示されるコンテンツの構成を変更する
    Drupalに表示されるコンテンツの構成を変更します。"Administer"→"Site building"→"Blocks"から変更が出来ます。 ここでの変更は特に指定をしないので、好きなように変更をしてみましょう。
    http://ookura.pne.jp/images/drupal/check_system/2-1.jpg
    変更を施したらホームに戻って確認して、作業は完了です。
    http://ookura.pne.jp/images/drupal/check_system/2-2.jpg

今すぐ使えるOpenID対応サービス

これまで紹介してきたツールは、予め自ら環境を構築した上で、OpenPNEとの連携をさせる方法を紹介してきましたが、ここからは現在、既に運営されているサービスを用いて、OpenPNEと連携させる方法を紹介していきます。

OpenPNE X Springnote

  • Springnoteとは?
    Springnoteとは、オンラインで文書を作成、編集できるサービスです。作成した文書は、他のユーザーと共有することが出来るので、共有したユーザーと共に編集をすることも可能です。

活用事例

  • コミュニティのアイディア共有に
    SNS内の人たちと勉強会などを通して実際に話し合う機会も少なくはないでしょう。その際に話し合って出てきたアイディアをどこかに残したり、共有したいと思ったことはないでしょうか。
    SNS内の自分のブログやコミュニティのトピックを駆使して情報を共有することも可能ですが、投稿できる文書の自由度に制限があるなど、あまり現実的ではないですね。
    そこでSpringnoteを用いることで、生まれたアイディアをよりわかりやすく伝えることが可能になります。Springnoteでは、Word文書を作る要領で編集ができ、画像や、表の挿入を行うことも可能です。また、前述したWordpressなどのブログツールへのエクスポート機能なども備えているので、SNS内のコミュニティ専用ブログなどへの投稿を行うことも可能になります。

Springnoteを使う

ここでは、実際にSpringnoteのサービスを使い、文書の作成から共有とブログへの公開までを紹介していきます。また、Springnoteのインターフェイスは本稿執筆時(2008年3月)にはまだ日本語化されていなく、英語のインターフェイスとなります。文書への日本語入力は問題なく可能です。

  1. ノートを作る
    まず、自分専用のノートを作ります。Springnoteではこのノートの中で様々な文書を管理します。
    はじめてSpringnoteにOpenIDでログインをすると"Create a new note"という画像があります。クリックしてノートを新規に作成しましょう。
    http://ookura.pne.jp/images/consumers/springnote/use/1-1.jpg
    希望しているノートの名前が既に存在すると、希望通りの名前にできない場合があります。
    http://ookura.pne.jp/images/consumers/springnote/use/1-2.jpg
    また、自分のノートはURLでアクセスできるようになっています。以下のURLのの部分が登録した際の名前となったものが、自分のノートのURLです。
    http://****.springnote.com/
    
    登録が完了すると、自分のノートが表示されます。
    http://ookura.pne.jp/images/consumers/springnote/use/1-3.jpg

  1. 文書を書く
    まず、編集するページを作成します。左上にある"New page"をクリックすると新たなページを作ることができます。ここで、様々なテンプレートを指定することもできますが、今回は何も指定しないで作成しましょう。
    http://ookura.pne.jp/images/consumers/springnote/use/2-1.jpg


    ページが作成できたら、実際に文章を書いていきます。
    書き終わったら保存をしておきましょう。ページ内にある"menu"内から保存することができます。
    http://ookura.pne.jp/images/consumers/springnote/use/2-2.jpg

  1. 書いた文書を共有する
    先程書いた文章を、MovableTypeやWordpress等のブログツールへエクスポートして、文書を共有させることができます。
    まず最初に、作成した文書のエクスポート先を設定します。"Settings"→"Blog Settings"→"Add a new blog"とクリックしていきましょう。
    今回は"Blog services"からWordPressを選択します。各項目の入力が済んだら、"Connection Test"をクリックしてみましょう。特に問題がなければ"Save"をクリックして、エクスポート先の設定は完了です。

    http://ookura.pne.jp/images/consumers/springnote/use/3-1.jpg

    次にエクスポートしたい文書を表示させて、"menu"内の"Export to Blog"からブログにエクスポートさせます。
    http://ookura.pne.jp/images/consumers/springnote/use/3-2.jpg

    体裁等が若干異なりますが、ブログ側で文書がエクスポートされたことが確認できれば成功です。

    http://ookura.pne.jp/images/consumers/springnote/use/3-3.jpg


OpenIDとOpenPNEの今後の展開

OpenIDという技術は2005年に米SixApart社が開発し、2007年6月に設立された米OpenID Foundationが、OpenIDの技術仕様を公開し、アメリカでは広く受け入れられてきました。2008年3月現在、日本でもOpenIDの優位性が受け入れられるようになり、徐々に対応サービスや、ソフトウェアが登場し始めています。2008年4月にはOpenIDの技術を普及させるための団体「OpenIDファウンデーション・ジャパン(仮称)」の設立が表明されており、今後OpenIDの普及を更に加速させていくでしょう。
OpenPNE等のSNSは、BBSなどにある匿名性を会員制にすることで極力排除できた反面、SNS内部で生成された有益な情報を、外部に向けて発信するすることが難しいといった課題がありました。それら課題を打破すべく、OpenPNEではいち早くOpenIDに対応し、様々な外部のコンテンツとの繋がりをもたせることで、SNSの新たな可能性を模索していきます。

参考サイト一覧

WordPress関連

Drupal関連

その他