XACML | AT & T XACML 3.0 Implementation | Application Framework library

 by   att Java Version: v2.2.0 License: MIT

kandi X-RAY | XACML Summary

kandi X-RAY | XACML Summary

XACML is a Java library typically used in Server, Application Framework, Framework applications. XACML has no bugs, it has no vulnerabilities, it has build file available, it has a Permissive License and it has low support. You can download it from GitHub, Maven.

AT&T's reference implementation of the OASIS XACML 3.0 Standard. The AT&T framework represents the entire XACML 3.0 object set as a collection of Java interfaces and standard implementations of those interfaces. The AT&T PDP engine is built on top of this framework and represents a complete implementation of a XACML 3.0 PDP, including all of the multi-decision profiles. In addition, the framework also contains an implementation of the OASIS XACML 3.0 RESTful API v1.0 and XACML JSON Profile v1.0 WD 14. The PEP API includes annotation functionality, allowing application developers to simply annotate a Java class to provide attributes for a request. The annotation support removes the need for application developers to learn much of the API. The AT&T framework also includes interfaces and implementations to standardize development of PIP engines that are used by the AT&T PDP implementation, and can be used by other implementations built on top of the AT&T framework. The framework also includes interfaces and implementations for a PAP distributed cloud infrastructure of PDP nodes that includes support for policy distribution and pip configurations. This PAP infrastructure includes a web application administrative console that contains a XACML 3.0 policy editor, attribute dictionary support, and management of PDP RESTful node instances. In addition, there are tools available for policy simulation. The wiki has a lot of information on the organization of the software. Click here to view the JavaDoc. Tutorials and other useful information is also located on our Github Pages site. TBD - working on this 10/14.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              XACML has a low active ecosystem.
              It has 131 star(s) with 68 fork(s). There are 26 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 20 open issues and 29 have been closed. On average issues are closed in 113 days. There are 2 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of XACML is v2.2.0

            kandi-Quality Quality

              XACML has no bugs reported.

            kandi-Security Security

              XACML has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              XACML is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              XACML releases are available to install and integrate.
              Deployable package is available in Maven.
              Build file is available. You can build the component from source.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of XACML
            Get all kandi verified functions for this library.

            XACML Key Features

            No Key Features are available at this moment for XACML.

            XACML Examples and Code Snippets

            No Code Snippets are available at this moment for XACML.

            Community Discussions

            QUESTION

            Authzforce - XACML AttributeSelector
            Asked 2022-Mar-14 at 22:50

            I am using Authzforce 10.1.1 and i have already created some basic policies, now im trying to use the element to compare some values of a resource that I plan to send on the request.

            I have been following the documentation of xacml present in http://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.pdf and even tried some of the examples that they have for with no success.

            Policy I want to create

            ...

            ANSWER

            Answered 2022-Mar-14 at 22:50

            Make sure you have enabled the PDP feature urn:ow2:authzforce:feature:pdp:core:xpath-eval as mentioned in the documentation on PDP properties.

            UPDATE 2022-03-10

            Then you need to fix a few things in the PolicySet:

            1. Specify the XPath version in a Policy(Set)Defaults / XPathVersion element. I strongly recommend XPath 2.0: http://www.w3.org/TR/2007/REC-xpath20-20070123
            2. Specify the XML namespace for the prefix md in the XPath with xmlns:md="..."
            3. [UPDATE 2022-03-14] Change the AttributeSelector Path to "/md:record/md:parentGuardian/md:parentGuardianId/text()" (add a slash at the very start) or more simply "//md:parentGuardianId/text()".

            Here is what the fixed PolicySet looks like:

            Source https://stackoverflow.com/questions/71407607

            QUESTION

            How does missing-attribute work in XACML?
            Asked 2022-Jan-26 at 15:55

            I am doing an access control application using XACML and, specifically, the Balana implementation for the PDP.

            In this application, specific types of user accounts can access only determinate resources. This is a reduced version of the Policy:

            ...

            ANSWER

            Answered 2022-Jan-26 at 15:02

            First of all the supplied policy is incomplete. It is missing the closing tag and the Permit rule. In my testing I added these and it "works for me" but since we do not know exactly what you have it is possible you have other mistakes.

            Your issue seems to be that you copy/pasted the attributes in the policy and are using the wrong category for subject-id. It should be:

            urn:oasis:names:tc:xacml:1.0:subject-category:access-subject

            instead of:

            urn:oasis:names:tc:xacml:3.0:subject-category:access-subject

            So yes the request is missing the required subject-id attribute since the request is using a different category for subject-id than what is defined in the policy.

            When I use the below corrected policy and request I do get a Permit. Note that I am not using Balana but you should see the same results.

            Policy:

            Source https://stackoverflow.com/questions/70857380

            QUESTION

            Can XACML be validated by lxml in Python?
            Asked 2021-Nov-02 at 18:41

            So, I am writing a small program to read an XACML request, validate if it is valid XACML, and then subsequently check the code towards a policy.

            In this endeavor I found the lxml parser, which can validate .xml files towards a .xsd file. Therefore I wget'ed the relevant schemas and tried them both in the validator (http://docs.oasis-open.org/xacml/2.0/access_control-xacml-2.0-policy-schema-os.xsd, and http://docs.oasis-open.org/xacml/2.0/access_control-xacml-2.0-context-schema-os.xsd), to compare to my request.xml files containing an XACML request. The problem that I am encountering is that my program returns false for the validation, meaning that it is not valid, althoug by all accounts it SHOULD be. The code in question is listed below, as well as the input command, and the error.

            ...

            ANSWER

            Answered 2021-Nov-02 at 18:41

            Thanks to Martin Honnen that pointed out that the namespace of the XACML didn't match the namespace for the schema. Using a request with a similar namespace solved the issue. Here is an example of an X(AC)ML sample that did in fact work, both with xmllint and in the script.

            The problem was therefore the xmlns

            Source https://stackoverflow.com/questions/69813001

            QUESTION

            Running setup.py install for pyxb ... error
            Asked 2021-Jul-12 at 15:17

            I'm running the command python3.9 -m pip install pyxb in a virtual environment and receiving these errors. I cannot figure out a meaningful message inside the logs. Am I missing something?

            ...

            ANSWER

            Answered 2021-Jul-12 at 15:17

            The error got resolved by running:

            Source https://stackoverflow.com/questions/68337410

            QUESTION

            XML (XACML) Syntax Error - String Literal was Expected
            Asked 2021-Jul-05 at 16:58

            I am writing a XACML policies for my masters dissertation, and I am encountering apparent syntax errors. It is highlighting the very first line; however, I am unsure. I am very new to XML so that it may be a very silly mistake :)

            ...

            ANSWER

            Answered 2021-Jul-05 at 03:23

            You should get used to finding and using tools. I doubt you will get much reponse for questions like this :) Having said that here is your modified xml that does not give error. In notepad++ you have plugin "XML Tools". If you install that, and if you try to save invalid xml it would give you error. You can also display the xml in your favourite browser and get error message. You can see the difference in xml you gave and one I put below using a diff utility, I use "winmerge (winmerge.com)"

            In short the problem was:

            • extra "Apply" tag

            • not closed "Apply" tag

            • missing double quotes for policyId attribute value

            Source https://stackoverflow.com/questions/68249048

            QUESTION

            XACML Authzforce PDP Custom Policies
            Asked 2021-Apr-23 at 07:56

            Authzforce PDP does it support custom policies apart from xacml policies?. We are able to send xacml request tp PDP but as the policy creation is in xacml is complex we decided to create our own policies using json format, does Authforce able to support policies written in nonxacaml format? Need some assistance here.

            ...

            ANSWER

            Answered 2021-Apr-23 at 07:56

            You can write policies in ALFA, then use the ALFA Compiler (1.2 or later), i.e. alfac.jar to convert to XACML before sending the policies to AuthzForce. More info in the ALFA 1.2 User Guide (provided with the Compiler), in section XACML generation using the standalone ALFA compiler.

            As an alternative, the AuthzForce project xacml-json-model provides:

            Source https://stackoverflow.com/questions/67196082

            QUESTION

            In wso2 IS XACML policy how to validate role and its permissions
            Asked 2020-Dec-03 at 00:56

            In wso2 identity server how to add custom permission like for a role useroperation associate permissions create,update,delete. How can I create the permissions like this.

            How can use those assigned permissions for validating by using roles and permissions in XACML policy.

            I have created a XACML policy using Standard Policy Editor based on the subject name which is username I am fetching role attribute and I am validating, but how can I validate the permissions assoicated to it using XACML. Is it possible to achieve this usecase in wso2 XACML policy?

            ...

            ANSWER

            Answered 2020-Dec-03 at 00:56

            There are several ways that you can add custom permissions to the WSO2 Identity Server. These methods are given in this answer.

            There is a XACML function as urn:oasis:names:tc:xacml:1.0:function:eval-permission-tree defined in the WSO2 Identity Server. This can be used to validate the permissions of a user. This function requires two inputs.

             1. required permission string (ex: /permission/admin/login)

             2. subject or the user whose permissions are validated

            In the WSO2 Identity Server, there is a sample XACML policy on using this function. If you login to the management console of the Identity Server, the sample is with the name evaluate_permission_tree_policy at Main > Entitlement > PAP > Policy Administration

            You can get the permission string by referring to the registry of the Identity Server via Main > Registry > Browse 

            I assume that you want to validate the permissions of a given role from the XACML policy. As per the current implementation, the function eval-permission-tree only checks whether the given user is authorized. [1] To achieve your requirement, you can write your own XACML function extending the EvalPermissionTreeFunction class. This blog[2] describes how you can write a custom XACML function and plug it into WSO2 IS.

            [1] https://github.com/wso2/carbon-identity-framework/blob/master/components/entitlement/org.wso2.carbon.identity.entitlement/src/main/java/org/wso2/carbon/identity/entitlement/extension/EvalPermissionTreeFunction.java#L77

            [2] https://pamodaaw.medium.com/custom-xacml-functions-for-wso2-identity-server-5-10-0-a91bc2ec673d

            Source https://stackoverflow.com/questions/65091114

            QUESTION

            Is there a way to define variables externally from XACML policy and refer them from inside the policy rules
            Asked 2020-Dec-02 at 23:06

            I am using XACML with multiple policy sets and policies. These policies are sharing the same variables and I want to be able to define them in some kind "global" dictionary. While it seems rather basic requirement, I couldn't find any documentation, example or discussion about such an option. Is there any way to do so?

            Thanks.

            ...

            ANSWER

            Answered 2020-Dec-02 at 23:06

            The only feature XACML provides OOTB is the notion of variable definitions and variable references. However it doesn't fully do what you're looking for.

            For starters, variable definitions are defined globally but can only be used inside rules. You cannot use them inside targets. Variable definitions are made up of a XACML expression i.e. anything that can be expressed in a condition (so a string, a function, and more).

            Variable definitions are defined within a policy and their visibility is scoped to that policy. This limits their usefulness.

            If you wanted a cross-policy variable / constant, you'd have to do that outside XACML, define your policies, and then post-process them to replace your placeholders with your values. If you work directly on XML, you could do that with XSLT for instance. Otherwise, it'll largely depend on the IDE you're using.

            Source: eXtensible Access Control Markup Language (XACML) Version 3.0 Plus Errata 01

            Source https://stackoverflow.com/questions/65090318

            QUESTION

            WSO2 IS Request XACML with Acces Token - Error 403 Forbidden
            Asked 2020-Oct-01 at 07:48

            Following this article, I created my request XACML and I have success. https://docs.wso2.com/display/IS560/Using+REST+APIs+via+XACML+to+Manage+Entitlement

            And I saw in this last question that is possible use access token for made the request: WSO2is XACML API

            My question is whether it is possible to use access token to take this request, because when I use basic authentication I'm successful in the request, but when I use access token I get 403 Forbidden.

            If it is possible to use an access token to make this request, what can I do to solve the 403 problem?

            ...

            ANSWER

            Answered 2020-Oct-01 at 07:48

            Yes, you can use an access token to authorize the request. If you navigate to /repository/conf/identity/identity.xml file, you can find a content as follows.

            Source https://stackoverflow.com/questions/64064415

            QUESTION

            Central Authentication and authorization service
            Asked 2020-Aug-10 at 07:56

            I want to design some "central authentication and authorization service" and I know that there is already a couple. My concerns are not about the standards. In the following lines, I'll try to explain it.

            I have created two Django client apps that have their own authentication and authorization mechanics. The two applications have different designs thus different permissions and roles. But the users are identical.

            Now I have to create a third application through which the two former applications have to do authentication and that is OK (using for example OAuth). But the third application is also responsible for authorization, i.e. the roles, permissions (including numerous object-level permissions) are stored by and managed in the third application.

            The questions are:

            1. How can I implement the third application so that it can support non-specific, free-style permissions?

            2. How can I store those permissions?

            3. How should I transfer the permissions to the client applications?

            4. How can I query for some permissions?

            5. Should I store all permissions in the third application and query for them each time when I the user asks for some resource, or should I save them locally and update them at some points?

            I have taken a look at OpenID Connect, SAML, XACML and others. SAML and XACML look promising, But I still confused and the above questions remain unanswered.

            I am aware that this question covers a wide area, but having some resources for starting and some example projects will be of great help.

            Regards.

            ...

            ANSWER

            Answered 2020-Aug-10 at 07:56

            A possible solution would be like the following:

            How can I implement the third application so that it can support non-specific, free-style permissions? Using a JWT Token that includes the user's permissions as scopes.

            How can I store those permissions?

            • Store your user Model on the third application, along with the permission/roles for each user.
            • When the user log in, they will be redirected to your third application. On successful authentication, the third application can then generate an access_token in the form of a JWT token which includes the permissions that the user has as scopes.
            • You can then have your front-end include this access_token on API requests to the client applications. The client applications can validate the access_token and check the scopes/permissions for the user to determine if the user can access certain data.

            How should I transfer the permissions to the client applications? Your client applications can validate/read the scopes included in the JWT token on each API request

            How can I query for some permissions? Not sure what this means, I can interpret 2 different things:

            1. Take Github as an example, a Github App can specify that they need read access and email access (but not the write access), and the user can authenticate and only approve read and email access. In this case, the Authorization Server (Github) would generate a JWT that only includes scopes for read and email even though the user has other permissions available.
            2. If you're talking about the client app wanting to know if the user has certain permission, then it can just look at the scopes included in the JWT. You might need to define the required scope for each endpoint in the client application.

            Should I store all permissions in the third application and query for them each time when I the user asks for some resource, or should I save them locally and update them at some points?

            The permissions for each user can be stored in the third application, and the client applications just trust the scopes included in the JWT. Since the access_token should be short lived (for example it expires in 1 hour), changes on the user's permission level can be handled by renewing the access_token.

            Source https://stackoverflow.com/questions/63335908

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install XACML

            You can download it from GitHub, Maven.
            You can use XACML like any standard Java library. Please include the the jar files in your classpath. You can also use any IDE and you can run and debug the XACML component as you would do with any other Java program. Best practice is to use a build tool that supports dependency management such as Maven or Gradle. For Maven installation, please refer maven.apache.org. For Gradle installation, please refer gradle.org .

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries