Zend-framework-authentication

提供:Dev Guides
移動先:案内検索

Zend Framework-認証

認証は、すべてのWebアプリケーションで最も重要な必須機能の1つです。 Zend Frameworkは、 zend-authentication と呼ばれる認証を処理する別個のコンポーネントを提供します。

認証コンポーネントをインストールする

認証コンポーネントは、次の Composer コマンドを使用してインストールできます。

composer require zendframework/zend-authentication

概念

通常、開発者はphp関数を作成して、データソースに対してユーザーの詳細を認証します。 認証が完了すると、認証の詳細は後続のリクエストのために保持されます。 Zend Frameworkはこの概念を一般化し、以下で説明する2つのクラスを提供します-

クラス1 Zend \ Authentication \ Adaptor \ AdaptorInterface

このクラスは、認証ロジックを記述する単一のメソッド authenticate を提供します。 authenticateメソッドは、 Zend \ Authentication \ Result クラスのインスタンスを返します。

この Result オブジェクトは認証ステータスを保持します。認証が成功した場合はID、認証が失敗した場合はエラーメッセージ。 認証インターフェイスと結果クラスの署名は次のとおりです-

*AdaptorInterface*
namespace Zend\Authentication\Adaptor;
public function authenticate() {
  //code
}
  • 結果クラス *
namespace Zend\Authentication;
class Result {
   public function __construct($code, $identity, array $messages = []);
}

Zend Frameworkは、データベース、ldap、http Basic、およびダイジェスト認証情報に対して認証するデフォルトの実装を提供します。* Adaptor *は認証を行いますが、今後のリクエストの詳細は保持しません。

クラス2 Zend \ Authentication \ AuthenticationService

AuthenticationServiceは主要コンポーネントであり、認証目的ですでに構成されたアダプターを使用します。 認証が完了すると、認証の詳細が保持され、メソッドが提供されます。* hasIdentity()はIDが利用可能かどうかを確認し、 getIdentity()は認証の詳細を取得し、 clearIdentity()*は認証の詳細をクリアします。

このAuthenticationServiceを使用するための部分的なコードリストは次のとおりです-

$adap = new Adapter($username, $password);
$auth = new AuthenticationService();
$result = $auth->authenticate($adap);
if($result->isValid) {
   $identity = $auth->getIdentity();
} else {
  //process $result->getMessages()
}
//clear
$auth->clearIdentity();

認可に関連するものは、 zend-permissions-acl および zend-permissions-rbac の2つの別個のモジュールとしてパッケージ化されています。 zend-permissions-aclはアクセス制御リストに基づいており、zend-permissions-rbacはロールベースのアクセス制御リストに基づいています。 ACLおよびRBACの概念の高レベルの抽象化を提供し、エンタープライズグレードアプリケーションの作成を支援します。