連載
» 2007年07月26日 00時00分 公開

社内SNSをOpenPNEで作ってみよう(2):SNSとアプリのID連携もかんたんに実現するOpenPNE (2/2)

[手嶋守,手嶋屋]
前のページへ 1|2       

実際に、OpenPNEでID連携をしてみる

SlavePNEを利用したメールサーバとのID連携

 一般的に、手嶋屋と同じくらいの小さな規模の会社の場合、ActiveDirectoryやLDAPなどの認証システムを構築していることは少ないと思います。

 小規模な会社であっても、統合IDの恩恵を受けたい場合に使えるのが、メールアカウント(POP3)です。OpenPNEは、すでに存在するメールアカウント利用して、SNSにログインできます。それでは、実際にPOP3を利用したSlavePNEを設定してみましょう。

【1】OpenPNEのセットアップ

 まず、OpenPNEをセットアップします。SlavePNEはバージョン2.6以上のOpenPNEで利用できます。「OpenPNEセットアップ」を参考にして、通常通りセットアップして、動作確認をしてください(詳細は前回の「OpenPNEをセットアップ」を参照してください)。

【2】config.phpの設定

 次に、OpenPNEをSlavePNE対応モードに変更します。OpenPNEの設定を変更するためconfig.phpを編集します。config.phpでの設定項目は大きく2点です。下記のように、POP3設定時のサンプルを紹介します。

POP3設定時のサンプル
define('IS_SLAVEPNE' , true);

$GLOBALS['_OPENPNE_AUTH_CONFIG'] =
array(
    'storage'=>"POP3",
    'options'=>array(
        'host' => 'mail.openpne.jp',
        'port' => '110'
    ),
);

 「define('IS_SLAVEPNE' , true)」でSlavePNEを利用するモードに切り替えます。続く「$GLOBALS['_OPENPNE_AUTH_CONFIG']」では、どのタイプの認証システムを使うかなどを決めるために、認証システムを利用するために必要なオプションを設定します。

【3】動作確認

 この2点の設定を行うだけで、OpenPNEをPOP3アカウントでログインできるようになります。

 実際に、ログインフォームにメールアカウントを入力して、確認してみましょう。

図5 メールアカウント(POP3のID・パスワード)を直接入力 図5 メールアカウント(POP3のID・パスワード)を直接入力

SlavePNEを利用したLDAPサーバとのID連携

 SlavePNEでは、POP3以外にも、Pear:Authでサポートされている認証方法を自由に選択できます。そのほかの設定例については、Pear:Authのマニュアルを参考にしてください。

 「$GLOBALS['_OPENPNE_AUTH_CONFIG']」が設定のポイントです。この設定を変更することで、多くの認証系に対応できます。

 例えば、LDAPサーバに連携する場合には、下記のように設定します。

LDAP設定時のサンプル
define('IS_SLAVEPNE' , true);

$GLOBALS['_OPENPNE_AUTH_CONFIG'] =
array(
    'storage'=>"LDAP",
    'options'=>array(
        'url' => 'ldap://192.168.0.1',
        'basedn' => 'dc=example,dc=com',
        'userattr' => 'uid'
    ),
);

 マニュアルを参考にして会社の中で利用されている認証システムと連携できるかどうか、ぜひ試してみてください。

MasterPNEを利用したWebサーバとのID連携

 MasterPNEは現時点では、SlavePNEほど導入事例が多くありません。MasterPNEに対応するには、OpenPNE本体ではなく、外部システム側がMasterPNEの提供する認証機構をサポートしている必要があるからです。

 今後、OpenPNEでは多くの外部システムと連携するため、複数の認証プロトコルをサポートしていく予定です。今回は現時点で実用的に使える例として、Webサーバ(Apache)の認証にOpenPNEのアカウントを使う例を紹介します。

 また、前述のSlavePNEの利用例のときと同様に、「OpenPNEミドルウェアセットアップ」「OpenPNEセットアップ」を基にして、OS・ミドルウェア・OpenPNEがセットアップ済みであることを想定して解説します(詳細は前回の「OpenPNEをセットアップ」を参照してください)。

【1】mod_auth_mysqlの導入

 Apacheと簡単にID連携するために、今回はmod_auth_mysqlを利用します。mod_auth_mysqlはApacheの通常のファイルベースのベーシック認証をMySQLベースに置き換える仕組みです。

編集部注ベーシック認証mod_auth_mysqlについて詳しく知りたい読者は、Linux Squareの「ユーザー認証によるアクセス制限(ベーシック認証編)」をご参照ください。

 mod_auth_mysqlはApacheのモジュールとしてOpenPNEの標準サポート環境であるRedhatELCentOS)でも標準で搭載されています。

 まずは、「yum install mod_auth_mysql」というコマンドを実行して、ApacheにRPM(Redhat Package Manager)パッケージを導入します。

編集部注yumコマンドRPMパッケージについて詳しく知りたい読者は、Linux Tips の[インストール/RPM]をご参照ください。

【2】httpd.confの修正

 次に、httpd.confファイルを修正します。下記は、SNSのニックネーム・SNSのログインパスワードを、外部認証のID・パスワードとして利用するためのサンプルの設定例です。http://xxx.openpne.jpのSNSをMasterとして、http://xxx.openpne.jp/trac/のTRACアプリケーションにログインするための設定もしています。

TRACアプリケーションにログインする設定時のサンプル
LoadModule mysql_auth_module modules/mod_auth_mysql.so

<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>

 「AuthMySQLNameField」でID用のフィールドを、「AuthMySQLPasswordField」でパスワード用のフィールドを特定しています。

 最後に、Apacheを再起動して設定を有効にしてください。

【3】動作確認

 まず、MasterとなるSNSでアカウントを作成します。通常通りログインし、ニックネームを図のように変更してください。

図6 ニックネームを変更 図6 ニックネームを変更

 SNSのユーザー登録が終わったら、認証サイト側に遷移します。

図7 Webサーバの認証画面 図7 Webサーバの認証画面

 SNSのニックネームとパスワードでログインできました。

図8 ログイン後の画面 図8 ログイン後の画面

今後のOpenPNEはどうなる?

 駆け足でしたが、SlavePNE、MasterPNEとOpenPNEにおけるID連携の仕組みを紹介しました。今後、社内でOpenPNEを活用するためには、Slave・Master両方の機能をさらに充実させる必要があります。

 OpenPNEプロジェクトでは今後、下記のアプリケーション・プロトコルとの連携を計画しています。

  • Wikiアプリケーション(PukiWiki、MediaWiki
  • ブログアプリケーション(WordPressMovableType
  • ECアプリケーション(EC-CUBE、ZenCar
  • 認証システム(LDAP、ActiveDirectory、OpenID
  • バグトラックシステム(TRAC)
  • グループウェアなど(GoogleAppsサイボウズガルーン

 また、OpenPNEはオープンソースプロジェクトとして現在も活発に進化を続けています。OpenPNEと社内システムの連携についてのフィードバックは、ぜひとも今後のOpenPNEに組み込んで、サポートしたいと思います。社内SNSを実際の利用者の方々と一緒に研究していけたらうれしいです。

 次回より、NEC小林が社内SNS・OpenPNEをさらに便利に面白く活用する方法を紹介していきます。お楽しみに!


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。