Commit Graph

216 Commits

Author SHA1 Message Date
Mikaël Ates 4759e8ccc3 [abac] Rewrite/remove cryptic comments 2011-08-28 20:15:46 +02:00
Mikaël Ates 8d921ba734 Use ABAC core functions to remove an ABAC permission from the GUI 2011-08-28 20:05:52 +02:00
Mikaël Ates 463ebc694c [abac] Add unicode functions to models of values 2011-08-28 20:04:46 +02:00
Mikaël Ates 4fa437246b [abac] Add core functions to remove an ABAC rule 2011-08-28 20:03:45 +02:00
Mikaël Ates 071bfa5cea Check logical expressions of ABAC permissions at form filling 2011-08-28 17:59:27 +02:00
Mikaël Ates 463985b73a Rewriting of a cryptic comment. 2011-08-26 11:43:45 +02:00
Mikaël Ates 1c7df14986 Rewriting of a cryptic comment. 2011-08-26 11:36:35 +02:00
Mikaël Ates 83fc3d5a36 [abac] An ABAC permission can be set for a user, a role, or anybody.
An ABAC permission can now be set on a user, a role or anybody.

    For a decision request about a user or a role, it works the same way has
    regular RBAC permissions execpt that moreover the ABAC rule must be
    satisfied.

    For permissions on anyone, it means that ACS is combined with a system
    able to maintain sessions without authentication. The owner of such a
    session must be able to bring (certified) attributes. It can then be granted
    the permissions that have ABAC rules that are satisfied.
2011-08-26 11:12:05 +02:00
Mikaël Ates 6ec65d84a3 Add a source of attributes from the main administration interface 2011-08-25 22:43:54 +02:00
Mikaël Ates 3fd4f8013f Modify the GUI of ABAC permissions to handle multivalued attributes 2011-08-25 20:03:01 +02:00
Mikaël Ates 495b3f9873 [xacml] add a dictionnary that gives operand data types from predicate type 2011-08-25 20:00:51 +02:00
Mikaël Ates b1a1825c1d [abac] Modify core functions to handle more precise multi-valued attributes
The following options for dealing with multivalued attributes in comparison are now supported:

        All:
            NO_MULTIVALUES
                Both operand are single valued attributes

        Equality:
            EQUAL_ONE_VALUE
                At least one value of the values of OP1 is equal to one value of the values of OP2
            EQUAL_OP1_SUBSET_OP2
                The values of OP1 is is a subset of the values of OP2
            EQUAL_EXACT_MATCH
                Equal set of values

        Diff strict:
            DIFF_ALL_OP1_WITH_UPPER_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT
                    All values of OP1 must be less than the highest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT
                    All values of OP1 must be greater than the highest value of OP2
            DIFF_ALL_OP1_WITH_BOTTOM_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT
                    All values of OP1 must be less than the smallest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT
                    All values of OP1 must be greater than the smallest value of OP2
            DIFF_ONE_OP1_WITH_UPPER_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT
                    At least one value of OP1 must be less than the highest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT
                    At least one value of OP1 must be greater than the highest value of OP2
            DIFF_ONE_OP1_WITH_BOTTOM_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT
                    At least one value of OP1 must be less than the smallest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT
                    At least one value of OP1 must be greater than the smallest value of OP2

        Diff or equal:
            Same as for strict and equality is treated as follows:
            DIFF_ALL_OP1_WITH_UPPER_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT_OE
                    All values of OP1 must be less than or equal to the highest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT_OE
                    All values of OP1 must be greater than or equal to the highest value of OP2
            DIFF_ALL_OP1_WITH_BOTTOM_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT_OE
                    All values of OP1 must be less than or equal to the smallest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT_OE
                    All values of OP1 must be greater than or equal to the smallest value of OP2
            DIFF_ONE_OP1_WITH_UPPER_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT_OE
                    At least one value of OP1 must be less than or equal to the highest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT_OE
                    At least one value of OP1 must be greater than or equal to the highest value of OP2
            DIFF_ONE_OP1_WITH_BOTTOM_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT_OE
                    At least one value of OP1 must be less than or equal to the smallest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT_OE
                    At least one value of OP1 must be greater than or equal to the smallest value of OP2

        To deal with richer comparison and equality of multivalued attributes, a 'or' statement should be used
2011-08-23 17:05:14 +02:00
Mikaël Ates 8b5d3ece1e Revert "[abac] Modify core functions to handle more precise multi-valued attributes"
Wrong file added

This reverts commit 38eccafb74.
2011-08-23 17:04:25 +02:00
Mikaël Ates a9908893ab README update 2011-08-23 16:55:43 +02:00
Mikaël Ates a7cfe5423c A unique script is now used for initialization including abac 2011-08-23 16:55:20 +02:00
Mikaël Ates 3ca2307646 [abac] Test script updated 2011-08-23 16:53:25 +02:00
Mikaël Ates 38eccafb74 [abac] Modify core functions to handle more precise multi-valued attributes
The following options for dealing with multivalued attributes in comparison are now supported:

        All:
            NO_MULTIVALUES
                Both operand are single valued attributes

        Equality:
            EQUAL_ONE_VALUE
                At least one value of the values of OP1 is equal to one value of the values of OP2
            EQUAL_OP1_SUBSET_OP2
                The values of OP1 is is a subset of the values of OP2
            EQUAL_EXACT_MATCH
                Equal set of values

        Diff strict:
            DIFF_ALL_OP1_WITH_UPPER_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT
                    All values of OP1 must be less than the highest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT
                    All values of OP1 must be greater than the highest value of OP2
            DIFF_ALL_OP1_WITH_BOTTOM_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT
                    All values of OP1 must be less than the smallest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT
                    All values of OP1 must be greater than the smallest value of OP2
            DIFF_ONE_OP1_WITH_UPPER_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT
                    At least one value of OP1 must be less than the highest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT
                    At least one value of OP1 must be greater than the highest value of OP2
            DIFF_ONE_OP1_WITH_BOTTOM_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT
                    At least one value of OP1 must be less than the smallest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT
                    At least one value of OP1 must be greater than the smallest value of OP2

        Diff or equal:
            Same as for strict and equality is treated as follows:
            DIFF_ALL_OP1_WITH_UPPER_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT_OE
                    All values of OP1 must be less than or equal to the highest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT_OE
                    All values of OP1 must be greater than or equal to the highest value of OP2
            DIFF_ALL_OP1_WITH_BOTTOM_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT_OE
                    All values of OP1 must be less than or equal to the smallest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT_OE
                    All values of OP1 must be greater than or equal to the smallest value of OP2
            DIFF_ONE_OP1_WITH_UPPER_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT_OE
                    At least one value of OP1 must be less than or equal to the highest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT_OE
                    At least one value of OP1 must be greater than or equal to the highest value of OP2
            DIFF_ONE_OP1_WITH_BOTTOM_LIMIT_OP2
                ACS_XACML_COMPARISON_INTEGER_LT_OE
                    At least one value of OP1 must be less than or equal to the smallest value of OP2
                ACS_XACML_COMPARISON_INTEGER_GRT_OE
                    At least one value of OP1 must be greater than or equal to the smallest value of OP2

        To deal with richer comparison and equality of multivalued attributes, a 'or' statement should be used
2011-08-23 16:49:22 +02:00
Mikaël Ates 8acb29c711 [abac] Predicate models modified to handle checking of single-valued attributes
The attribute single_value is added to PredicateRequired model to indicate
    that each source satisfying this predicate must provide an attribute with a
    single value.

    The attributes operand1_single_value and operand2_single_value are added
    to PredicateComparison to enforce than a unique value must be provided
    to have the predicate evaluated.
2011-08-23 16:43:35 +02:00
Mikaël Ates 62c10be454 Display attribute name of predicate required during a new rule defnition 2011-08-13 16:42:35 +02:00
Mikaël Ates 7017406dd6 [abac] Display more intuitive numbers for predicate used to set the logic rule 2011-08-06 09:48:46 +02:00
Mikaël Ates 91572594f3 Transform one form to many in the add abac permission template 2011-08-06 09:47:26 +02:00
Mikaël Ates 59515aeeb6 [abac] Unicode of models defined 2011-08-06 09:06:00 +02:00
Mikaël Ates ffc54bee21 [abac] correct string management in comparison operand 2011-08-06 09:03:48 +02:00
Mikaël Ates 3d10dd6a87 Update of the README 2011-07-30 10:36:09 +02:00
Mikaël Ates b0beb5671b [abac] Use random string as an intermedairy sustitution
We need to substitute number by other in a string. To avoid case where the
substitution string will match another substitution, a preliminary
substitution with random strings is done. Then, random strings are substituted
by the final strings.
2011-07-30 10:32:18 +02:00
Mikaël Ates c5a296c512 Typo in string returned by the unicode method of the permission model 2011-07-30 10:30:38 +02:00
Mikaël Ates 95ba103c76 [abac] remove some comments 2011-07-30 10:28:33 +02:00
Mikaël Ates b8ba06bfa9 Correct bad graph display of policy 2011-07-28 18:22:57 +02:00
Mikaël Ates fcb3bda2f0 Remove unnecessary empty line 2011-07-28 18:22:03 +02:00
Mikaël Ates 23e4065c0a [abac] remove unnecessary spaces 2011-07-28 18:21:14 +02:00
Mikaël Ates 6fa8e1eb21 From to add trusted sources 2011-07-28 18:20:39 +02:00
Mikaël Ates 7ad79cf6e9 New decorator to check authorization to admin ABAC 2011-07-28 18:19:02 +02:00
Mikaël Ates c48e89baeb [xacml] New constants 2011-07-28 18:18:05 +02:00
Mikaël Ates 8e5869a5a6 [abac] interface to add ABAC rules 2011-07-28 18:17:46 +02:00
Mikaël Ates 655b59c066 Add ABAC administration to the administration interface
- A root ABAC admin role has been created

    - Each policy has an ABAC admin role

    - Add interface to give this role to administrators

    - Add items on the modify policy view to add or remove ABAC permissions

    - Manage deletion of ABAC permissions

    - Files for the administration to add ABAC permissions created,
      but not yet implemented
2011-07-26 18:08:31 +02:00
Mikaël Ates ab087ed4d9 New model for ABAC permissions 2011-07-26 14:55:33 +02:00
Mikaël Ates 32f9163ef3 [xacml] add of constants 2011-07-26 14:21:32 +02:00
Mikaël Ates b361741b6d [abac] Update of test script 2011-07-26 13:30:58 +02:00
Mikaël Ates 11d106f17d [abac] Manage comparison of multivalued attributes
The following options to compare attributes are now supported:
        All:
            NO_MULTIVALUES,
        Equality:
            EQUAL_ONE_VALUE, EQUAL_OP1_SUBSET_OP2,
            EQUAL_EXACT_MATCH,
        Diff strict:
            DIFF_ONE_VALUE, DIFF_ALL_VALUES,
        Diff or equal:
            DE_ONE_VALUE_ONE_VALUE, DE_ONE_VALUE_OP1_SUBSET_OP2,
            DE_ONE_VALUE_EXACT_MATCH, DE_ALL_VALUES_ONE_VALUE,
            DE_ALL_VALUES_OP1_SUBSET_OP2, DE_ALL_VALUES_EXACT_MATCH
2011-07-26 13:29:02 +02:00
Mikaël Ates e401da238b [abac] Update test script 2011-07-25 20:49:35 +02:00
Mikaël Ates 9bc26891da [abac] manage predicates with multiple sources 2011-07-25 20:49:10 +02:00
Mikaël Ates e2f0c51802 [abac] Use new data model 2011-07-25 18:12:33 +02:00
Mikaël Ates 6d49a81cf0 [abac] Simplify data model 2011-07-25 18:12:15 +02:00
Mikaël Ates 38435fcd6b [abac] xacml constants file renamed 2011-07-25 17:56:06 +02:00
Mikaël Ates 5d0aa20d30 [abac] Update test script 2011-07-25 17:49:15 +02:00
Mikaël Ates 371ec30471 [abac] load a profile from a dic 2011-07-25 17:48:42 +02:00
Mikaël Ates 0fc0df96a6 [xacml] rename file with datatypes to constants.py 2011-07-25 17:37:53 +02:00
Mikaël Ates 33c0c30e53 [abac] Update of the test script 2011-07-25 17:29:02 +02:00
Mikaël Ates 5eaf8dcc29 [abac] Namespace definition and attribute mapping with JSON
The namespace declarations and the attribute mappings between namespaces
    are defined in two JSON files that can be edited.

    The script load-abac is used to add these definitions to the database.
2011-07-25 17:25:22 +02:00
Mikaël Ates 3e6428a51e [xacml] Update constants 2011-07-25 15:31:38 +02:00