導入

導入  --  LiveUser について

LiveUser について

LiveUser は、高機能な認証と権限管理のフレームワークです。 さまざまな外部の機能をオプションで組み合わせて使用することができます。 基底クラスは LiveUser で、これがいわゆる "クライアント" となります。このクラスを使用して、 個々のユーザの認証や権限チェックを行います。

LiveUser は、以下のような機能を提供します。 LiveUser クラスはログイン手続きを担当します。何らかの権限コンテナと、 ひとつあるいは複数の異なる認証コンテナを用いて設定することができます。 つまり、あちこちのデータコンテナに散らばっているユーザのデータを用いて、 ユーザのデータが見つかるまでそれらを順番に探していくことができるということです。 例えば、オンラインでウェブサイトのアカウントを申請したユーザの情報を、 ウェブサーバのローカルデータベースに格納することができます。 また、全従業員に対して、新たなアカウントを発行することなくサイトにログインさせることもできます。 これらを実現するため、LiveUser クラスが使用する第二のコンテナを定義することができます。

また、お好みの権限コンテナを定義して、各ユーザの権限を管理することもできます。 選択したコンテナに応じて、あらゆる種類の権限管理方式を一貫した API で実装できます。

さまざまな権限コンテナや認証コンテナを使用することで、 独自方式で権限やユーザを管理している既存アプリケーションと 新しく書いたアプリケーションを簡単に統合させることができるようになります。 新しいコンテナ型を作成するだけで準備OKです!

現在使用可能なコンテナは、 PEAR::DB、PEAR::MDB、PEAR::MDB2、ext/PDO、PEAR::XML_Tree、Session そして PEAR::Auth を使用するものです。

LiveUser については、外部の wiki にもまとめられています。

現時点では LiveUser はまだベータ段階です。 とは言え、LiveUser は既に幅広いウェブサイトで実運用に使用されています。 完全に網羅しているわけではありませんが、その一覧を ここ で見ることができます。

LiveUser の今後の開発予定は ここ にあります。

LiveUser の概念についての詳細な説明は、この 記事 が参考になるでしょう。

この記事は 2004 年 4 月のものであるため、一部古くなっているところもあります。 しかし根本的な考え方や変わっていませんし、最近の変更点のほとんどは API の一貫性と柔軟性を高めるためのものです。 結果的に、API の例はほとんど時代遅れになっています。 この記事では、権限コンテナが 現在はロジック層とストレージ層に分割されていることについても述べられていません。 この分割により、ロジックの重複が排除され、 ストレージ層をスタッカブルな形式で実装できるようになりました。 つまり、まず最初にキャッシュストレージを参照し、 その後で必要に応じて実際のストレージ層のデータを取得するといったように LiveUser を設定できるようになったのです。

最近書かれた記事で、LiveUser やさまざまな権限コンテナについての 詳細な説明が掲載されているものが ここ にあります。

LiveUser を使う前には、選択したコンテナ用のデータ構造を作成する必要があります。 設定オプションを使用することで、ストレージ層の多くの部分をカスタマイズすることができます。 最もわかりやすいのは、フィールド名やテーブル名のエイリアスを作成することでしょう。 これにより、既存のあらゆるデータを LiveUser に統合することができます。 選択したコンテナに応じたデータベーススキーマのインストーラを使用する必要があります。 このインストーラは MDB2_Schema および MDB2 パッケージを必要とし、 大半のオプションを適切に処理してデータベーススキーマを直接作成することができます。 インストール用のクラスは "[PEAR]/data/misc/schema/install.php" にあります。 このファイルの先頭に、サンプルコードがコメントアウトされています。 基本的に、これは認証および権限のそれぞれについて (1) スキーマ xml ファイルを作成し、(2) スキーマをインストールする という二段階の手続きとなります。

インストールの際に、インストーラはスキーマのバックアップファイルを作成します。 異なる設定でインストーラが再度実行された場合に、 インストーラはこれらのファイルを使用してデータベースを変更します。 しかし、このバックアップファイルが存在する場合は、 同じ DSN でインストーラを実行すると無条件でデータベースを変更しようとし、 テーブルを新規作成することはありません。 何らかの理由で最初からテーブルを作り直したい場合は、該当する DSN のバックアップファイルを削除してください。 インストーラの場所は、pear がインストールされているディレクトリの下の data ディレクトリの中です。 名前は install.php で、その先頭部分には API コールの多くの例が コメントアウトされています。

データベース構成の ER ダイアグラムは ここ にあります。

このダイアグラムには、権限の複雑度によってどのテーブルが必要になるのかが説明されています。 必要のないテーブルがインストーラでインストールされてしまうことを防ぐには、 インストーラの generateSchema() メソッドに渡す権限コンテナインスタンスの "tables" プロパティを修正します。

LiveUser を使い始めるにあたっては、次の 2 つの 記事 が参考になるでしょう。

LiveUser はオブザーバをサポートしており、内部で発生したさまざまなイベントに対して LiveUser から自動的にコールバックを呼び出すことができるようになっています。 オブザーバについては、ここ で説明されています。

LiveUser には、さまざまなサンプルが同梱されています。 これらのサンプルは、PEAR インストールディレクトリの下の "docs" ディレクトリにインストールされます。これらを見ると、 いろいろな使用例がわかるでしょう。 データベースのサンプルにはスキーマファイルが付属しています。 LiveUser のサンプルのルートフォルダにある demodata.php に、コマンドラインあるいはブラウザからこのスキーマをインストールする方法が書かれています。 これらのスキーマファイルをインストールするには、MDB2_Schema が必要です。

LiveUser パッケージの