Auth パッケージ

Auth パッケージは Fuel における標準化された認証インターフェイスを提供します。 これにより、ユーザは自分自身で新しいドライバを書くことができ、 基本的なメソッドを保つことで、古いコードに新しいドライバを簡単に統合することもできます。

はじめに

誰もが満足するかすべて実装されている Auth パッケージを作成することは不可能です。 フレームワークとして 我々はあなたが認証を行う方法を強制したくありませんが、あなた自身で作成したり他人の作品を使用することを 手助けしたい。 ここで Auth パッケージの出番です。

インターフェースには 3 つのタイプのドライバが含まれています (それ以上のタイプに拡張することができる): login, group & ACL. login ドライバは、ユーザーのログインを処理し同時に複数の login ドライバを扱うことができます。 たとえば、 1 ユーザーが 2 つの login ドライバを使用して、同時に Twitter や独自のネイティブのユーザーからログインすること が可能です。

次のステップとして、あなたが使用しているログインの種類を気にせず group ドライバを使用し、 2 つのタイプのログインを グループ化することができる。 そして大事なことを言い忘れていましたが、あなたはそれらのグループに特定の権限を付与する ACL ドライバを 使用できます。

上記は使い方の一つの例にすぎませんし、それを使う必要もありません。 どのメソッドが 汎用インタフェースの一部であるかとドライバの仕様を理解するために次のセクションを 読んで下さい: ドライバを書く.

含まれているドライバ

The Auth packages comes with two sets of drivers which provide local access, using one or more database tables.

Simpleauth

名前の通り、これは基本的なドライバセットです。ユーザーの情報を収納するのにデータベーステーブルを使い、 グループ、ロール、 ACL に関しては設定ファイルに収納します。ユーザレコード内のシリアライズされた配列にユーザメタデータは 格納されます。それは多くの機能を持っていませんが、ほとんどのアプリケーションでは仕事をすることができます。 Simpleauth についてはここに記載されています。

Ormauth

このドライバセットは Simpleauth ドライバと同様の機能を提供しますが、ユーザー、グループ、ロール、 および権限に関するすべての情報をデータベースに収納し、この情報にアクセスするためにORMモデルを使用しています。 加えて、配列にユーザーメタデータは収納しないですが、別のテーブルで ORM の EAV コンテナ機能を使いアクセスします。 API は Simpleauth とほとんど互換性がありますが、ユーザー、グループ、もしくはロールデータを返す関数は ORM オブジェクトインスタンスの配列を返すように違いがあります。 Ormauth についてはここに記載されています。

Auth パッケージは、これらのドライバに必要なテーブル構造を作成するためのマイグレーションファイルが含まれています。 それは作成すべきかを Auth 設定ファイルによって決めているので、最初に設定をする必要があります。

インストール

Besides full driver sets, the Auth package also contains supporting classes, classes that provide additional functionality to one or all of the drivers.

Opauth

Opauth is a multi-provider authentication framework for PHP, and is installed as a composer package. It provides generic authentication using the OAuth or OpenID protocols, and has a substantial list of ready-made strategies for authentication against popular OAuth platforms like Facebook, Twitter, Github, etc.

The Opauth driver included in the Auth package will interface between Opauth and (currently) either Simpleauth or Ormauth, so that you can link OAuth accounts to local accounts, use local ACL's for OAuth accounts, etc. It is documented here.

Installation

The Auth package is included in the Fuel download. All you need to do is enable it in your config.

'always_load' => array(
	'packages' => array(
		'auth',
	),
),

設定

Auth は config/auth.php ファイルに、下記のキーで設定できます:

パラメータ デフォルト 説明
driver 文字列 | 配列
array('Simpleauth')
ロードする Login ドライバ、最初のドライバが Auth::instance() のデフォルト返り値にもなります。
verify_multiple_logins 論理型
false
ひとつのドライバでログインの成功を確認したあとにも、継続してログインのチェックを行うかどうか。 これにより複数の方法でログインすることが可能。
salt 文字列
'put_your_salt_here'
パスワードのハッシュ化のためにソルトは使用されます。
iterations integer
10000
パスワードのハッシュ化処理で行われた繰り返し回数 (パスワード作成時の"暗号化"の回数) (Auth は PBKDF2を使用)。 より多く繰り返す方がパスワードは安全になりますが、より多く時間がかかります。あまりに多く繰り返すとサーバーがクラッシュすることがあります!

'verify_multiple_logins' はドライバレベルの設定であることに注意。 Login ドライバ そのものを意味していないし、「ユーザに多重ログインすることを許可する」ということではありません!

auth.php ファイルはこのようになります:

<?php

return array(
	// ドライバ
	'driver' => array('Simpleauth'),

	// 複数ログインを有効にする場合、 true
	'verify_multiple_logins' => true,

	// セキュリティのために、ソルトを設定しましょう
	'salt' => 'Th1s=mY0Wn_$@|+',
);