Search code examples
authorizationaccess-controlxacmlabacalfa

Naming and casing guidelines for ALFA and XACML


Are there guidelines or at least best practises for naming and casing namespaces, attributes, rules, policies etc. in the ALFA language?

As ALFA depends on XACML, is there anything similiar for XACML?


Solution

  • There are no hardcore guidelines. I like to use camel casing. There are characters that you cannot use inside ALFA identifiers e.g. hyphen (-) and whitespace of course.

    Good names are things like userRole. ALFA is namespace-based i.e. everything is defined inside a namespace. That lets you create a graph of attributes e.g.

    user.internal.department
    

    Where user.internal is a namespace and department is the attribute's local name. Note that you can name your corresponding XACML attribute anything you like but I recommend you still the fully-qualified ALFA name (i.e. user.internal.department).

    ALFA does not depend on XACML: it translates into XACML. You can roundtrip between both languages.