通常 [〜#〜] xacml [〜#〜] に関連付けられている Attribute Based Access Control と Claim Based Authorization の間に違いはありますか?マイクロソフトが作り出した用語と思われるものはどれですか。
後者は単にMicrosoftのABACの名前/実装ですか?または、2つの完全に異なる概念ですか?
調査中に両方の用語に出くわしましたが、それらは同じではないにしても似ているように見えますが、おそらく何か不足していますか?クレームと属性は、同じアイデアの異なる名前ですか?
属性:
属性ベースのアクセス制御は、新しいアクセス制御パラダイムを定義します。これにより、属性を組み合わせたポリシーを使用してユーザーにアクセス権が付与されます。 (ウィキペディア)
クレーム:
クレームベースの認証は、アクセスを許可または拒否する認証の決定が、クレームで利用可能なデータを使用して決定を行う任意のロジックに基づいているアプローチです。 (MSDN)
ABACとCBACは実質的に同じものです。 Microsoftは物事の属性を呼び出しませんが、属性はSAMLに関連付けられる傾向があるので、クレームはほとんどプロトコルにとらわれないため、物事を属性と呼びます。
XACMLはABACを公開するモデル/実装ですが、具体的なCBACモデルや実装はありません。これは主に、一般的な承認モデルはお尻の痛みであり、過度に複雑であるためです。ガイダンスの要旨は、各アプリケーションは権限ごとに異なるため、自分で理解する必要があるということです。
CBAC(クレームベースのアクセス制御)とABAC(属性ベースのアクセス制御)は本質的に同じで、クレームはアサートされた「属性」です。たとえば、Active Directoryから属性を取得し、それをクレームに変換します。
ただし、CBACにはいくつかの問題があります。
もう一方のABACは、eXtensible Access Control Markup Languageが実装するXACMLのモデルです。 ABACおよびXACMLは、属性を使用して許可を定義する方法を定義します。許可は、属性ベースのポリシーを使用して定義されます。ポリシーは属性を使用して、何が許可され、何が拒否されるかを定義します。
XACMLでは、何を許可または拒否できるかは常に明確です。ポリシーは一元的に定義および保守されます。 XACMLは、ポリシー決定ポイントおよびポリシー実施ポイントの概念を使用して、標準のアーキテクチャ(XACMLによって発明されなかった)も定義します。
ここでABACとXACMLについて読むことをお勧めします。
乾杯、デビッド。