一般的に、手嶋屋と同じくらいの小さな規模の会社の場合、ActiveDirectoryやLDAPなどの認証システムを構築していることは少ないと思います。
小規模な会社であっても、統合IDの恩恵を受けたい場合に使えるのが、メールアカウント(POP3)です。OpenPNEは、すでに存在するメールアカウント利用して、SNSにログインできます。それでは、実際にPOP3を利用したSlavePNEを設定してみましょう。
まず、OpenPNEをセットアップします。SlavePNEはバージョン2.6以上のOpenPNEで利用できます。「OpenPNEセットアップ」を参考にして、通常通りセットアップして、動作確認をしてください(詳細は前回の「OpenPNEをセットアップ」を参照してください)。
次に、OpenPNEをSlavePNE対応モードに変更します。OpenPNEの設定を変更するためconfig.phpを編集します。config.phpでの設定項目は大きく2点です。下記のように、POP3設定時のサンプルを紹介します。
POP3設定時のサンプル |
define('IS_SLAVEPNE' , true); |
「define('IS_SLAVEPNE' , true)」でSlavePNEを利用するモードに切り替えます。続く「$GLOBALS['_OPENPNE_AUTH_CONFIG']」では、どのタイプの認証システムを使うかなどを決めるために、認証システムを利用するために必要なオプションを設定します。
この2点の設定を行うだけで、OpenPNEをPOP3アカウントでログインできるようになります。
実際に、ログインフォームにメールアカウントを入力して、確認してみましょう。
SlavePNEでは、POP3以外にも、Pear:Authでサポートされている認証方法を自由に選択できます。そのほかの設定例については、Pear:Authのマニュアルを参考にしてください。
「$GLOBALS['_OPENPNE_AUTH_CONFIG']」が設定のポイントです。この設定を変更することで、多くの認証系に対応できます。
例えば、LDAPサーバに連携する場合には、下記のように設定します。
LDAP設定時のサンプル |
define('IS_SLAVEPNE' , true); |
マニュアルを参考にして会社の中で利用されている認証システムと連携できるかどうか、ぜひ試してみてください。
MasterPNEは現時点では、SlavePNEほど導入事例が多くありません。MasterPNEに対応するには、OpenPNE本体ではなく、外部システム側がMasterPNEの提供する認証機構をサポートしている必要があるからです。
今後、OpenPNEでは多くの外部システムと連携するため、複数の認証プロトコルをサポートしていく予定です。今回は現時点で実用的に使える例として、Webサーバ(Apache)の認証にOpenPNEのアカウントを使う例を紹介します。
また、前述のSlavePNEの利用例のときと同様に、「OpenPNEミドルウェアセットアップ」「OpenPNEセットアップ」を基にして、OS・ミドルウェア・OpenPNEがセットアップ済みであることを想定して解説します(詳細は前回の「OpenPNEをセットアップ」を参照してください)。
Apacheと簡単にID連携するために、今回はmod_auth_mysqlを利用します。mod_auth_mysqlはApacheの通常のファイルベースのベーシック認証をMySQLベースに置き換える仕組みです。
編集部注:ベーシック認証やmod_auth_mysqlについて詳しく知りたい読者は、Linux Squareの「ユーザー認証によるアクセス制限(ベーシック認証編)」をご参照ください。
mod_auth_mysqlはApacheのモジュールとしてOpenPNEの標準サポート環境であるRedhatEL(CentOS)でも標準で搭載されています。
まずは、「yum install mod_auth_mysql」というコマンドを実行して、ApacheにRPM(Redhat Package Manager)パッケージを導入します。
編集部注:yumコマンドやRPMパッケージについて詳しく知りたい読者は、Linux Tips の[インストール/RPM]をご参照ください。
次に、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 |
「AuthMySQLNameField」でID用のフィールドを、「AuthMySQLPasswordField」でパスワード用のフィールドを特定しています。
最後に、Apacheを再起動して設定を有効にしてください。
まず、MasterとなるSNSでアカウントを作成します。通常通りログインし、ニックネームを図のように変更してください。
SNSのユーザー登録が終わったら、認証サイト側に遷移します。
SNSのニックネームとパスワードでログインできました。
駆け足でしたが、SlavePNE、MasterPNEとOpenPNEにおけるID連携の仕組みを紹介しました。今後、社内でOpenPNEを活用するためには、Slave・Master両方の機能をさらに充実させる必要があります。
OpenPNEプロジェクトでは今後、下記のアプリケーション・プロトコルとの連携を計画しています。
また、OpenPNEはオープンソースプロジェクトとして現在も活発に進化を続けています。OpenPNEと社内システムの連携についてのフィードバックは、ぜひとも今後のOpenPNEに組み込んで、サポートしたいと思います。社内SNSを実際の利用者の方々と一緒に研究していけたらうれしいです。
次回より、NEC小林が社内SNS・OpenPNEをさらに便利に面白く活用する方法を紹介していきます。お楽しみに!
Copyright © ITmedia, Inc. All Rights Reserved.