私は、スワップ可能な具体的な実装に裏打ちされた一連の.NETインターフェイスとして公開されるビジネスロジックレイヤー(「リポジトリ」)を持っています。ビジネスロジック層は認証と認証を実装する必要がありますか?
私は、このビジネスレイヤーにIUserIdentityやIUserRoleなどのインターフェイスがあり、機密データにアクセスするすべてのメソッドがIUserIdentityを取得し、アクションを許可する前に承認を実行したことを意味する認証と承認(authn/authz)を実装しました。
ビジネス層はこの時点まで非常にフロントエンドにとらわれていませんが、現在はASP.NET Webサイトに統合しようとしていますが、ASP.NET自体には豊富な認証/承認メンバーシップと役割APIを介してシステムに組み込まれています。
質問:私はビジネスロジック層からすべてのauthn/authzを削除し、これを行うにはウェブフロントエンドに頼るべきですか?これは事をたくさん単純化するでしょうが、後にそれを動かすことを後悔するかどうかは分かりません。
代わりに、私のビジネスロジックにauthn/authzを保存し、カスタムメンバーシップ/ロールプロバイダを使用してASP.NETに統合することもできます。しかし、これは本当に面倒なようです...私はまだこれを行うコストを調査する必要があります。
あなたは何をしますか(やっていますか?)理由は何ですか?
実際には(申し訳ありませんが、私はこれを述べるべきでした)私は、Authorize属性によるセキュリティのアスペクトコンセプトを実装するASP.NET MVCを使用しています。 – DSO
.NETの属性は、正しくリコールすれば、Java EEの注釈と似ています。さまざまなメソッド、クラス、パッケージにアスペクトを適用するためのAspectJ表現言語のようなものはありますか? – duffymo