ZendFramework-認証

認証は、あらゆるWebアプリケーションで最も重要で必須の機能の1つです。Zend Frameworkは、認証を処理するための別個のコンポーネントを提供します。これは、zend-authentication

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

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

composer require zendframework/zend-authentication

概念

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

クラス1Zend \ Authentication \ Adapter \ AdapterInterface

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

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

AdaptorInterface

namespace Zend\Authentication\Adaptor; 
public function authenticate() { 
   // code 
}

Result class

namespace Zend\Authentication; 
class Result { 
   public function __construct($code, $identity, array $messages = []); 
}

Zend Frameworkは、データベース、LDAP、http基本認証およびダイジェスト認証情報に対して認証するためのデフォルトの実装を提供します。アンAdaptor 認証しますが、将来の要求のために詳細を保持しません。

クラス2Zend \ 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();

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