属性ベースのアクセス制御(ABAC)のいくつかの定義を読んでいると、2つの異なる定義があることがわかりました。
アクセス制御の決定は、ユーザー、オブジェクト、および環境の属性を使用して行われます。
アクセス制御の決定は、ユーザーとオブジェクトの属性を使用して行われます(この定義では環境属性は言及されていませんが、それらはユーザーの属性(ユーザーの場所など)の一部です)。
それで、情報セキュリティにおいて、ABACの標準的な定義として認識されているのはどの定義ですか?
abac の「正式な」定義を見つけることができる場所がいくつかあります。そのような場所の1つは、国立標準技術研究所(NIST)です。 ABACの専用サイト があります。
それらの定義は次のとおりです。
ABACは、エンティティ(サブジェクトおよびオブジェクト)アクションの属性および要求に関連する環境に対して評価ルールによってオブジェクトへのアクセスを制御するため、区別可能な論理アクセス制御モデルです。 属性は、定義することができ、値を割り当てることができるものの特性と見なすことができます。 ABACはその最も基本的な形式では、サブジェクトの属性、オブジェクト、環境条件の属性、および正式な関係の評価に依存していますまたは、サブジェクトとオブジェクトの属性および環境条件の組み合わせに対して許可される操作を定義するアクセス制御規則。
実際、ABACは2つの基本的なビルディングブロックを使用しています。
定義にあるように、属性は何でもかまいません(ユーザー、オブジェクト、環境、コンテキストなど)。一般に、属性は文中で機能する文法機能に関連しています。
マネージャーは自分が所有するドキュメントを表示できます
翻訳された
役割== "manager"のユーザーは、タイプ== "document"のオブジェクトに対してアクション== "view"を実行できます。user.name== document.ownerの場合
ABACの標準実装は xacml &ALFAです。いくつかのオープンソース実装(AuthZForce)と商用( Axiomatics -私が働いている場所です)があります。
属性は型付き(文字列、整数...)および複数値(たとえば、複数の役割を持つことができます)にすることができます。 XACML/ALFAは、ABACを表現するためのポリシー言語を定義します。 XACMLは、REST/JSONプロファイルもPOST=承認リクエストに定義し、レスポンスを受け取ります。
デビッド