All Projects → authzforce → server

authzforce / server

Licence: GPL-3.0 license
AuthzForce Server (Community Edition)

Programming Languages

java
68154 projects - #9 most used programming language
XSLT
1337 projects
HTML
75241 projects

Projects that are alternatives of or similar to server

Sureness
A simple and efficient open-source security framework that focus on protection of restful api.
Stars: ✭ 254 (+429.17%)
Mutual labels:  authorization, restful-api
nova-permissions
Add Permissions based authorization for your Nova installation via User-based Roles and Permissions. Roles are defined in the database whereas Permissions are defined in the code base.
Stars: ✭ 115 (+139.58%)
Mutual labels:  authorization, access-control
role-based-access-control
Role-based authorization || Role-based access-control in React.js
Stars: ✭ 111 (+131.25%)
Mutual labels:  authorization, access-control
Beego Authz
Beego's RBAC & ABAC Authorization middleware based on Casbin
Stars: ✭ 208 (+333.33%)
Mutual labels:  authorization, access-control
lua-casbin
An authorization library that supports access control models like ACL, RBAC, ABAC in Lua (OpenResty)
Stars: ✭ 43 (-10.42%)
Mutual labels:  authorization, access-control
Caddy Authz
Caddy-authz is a middleware for Caddy that blocks or allows requests based on access control policies.
Stars: ✭ 221 (+360.42%)
Mutual labels:  authorization, access-control
fiware-pep-proxy
Support for proxy functions within OAuth2-based authentication schemas. Also implements PEP functions within an XACML-based access control schema.
Stars: ✭ 26 (-45.83%)
Mutual labels:  access-control, fiware
Protobuf Adapter
Google Protocol Buffers adapter for Casbin
Stars: ✭ 185 (+285.42%)
Mutual labels:  authorization, access-control
gothic
🦇 Gothic is a user registration and authentication SWT/JWT microservice. It supports REST, gRPC, and gRPC Web API, reCAPTCHA & a variety of DBs with Gorm.
Stars: ✭ 65 (+35.42%)
Mutual labels:  authorization, restful-api
caddy-security
🔐 Authentication, Authorization, and Accounting (AAA) App and Plugin for Caddy v2. 💎 Implements Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0 (Github, Google, Facebook, Okta, etc.), SAML Authentication. MFA/2FA with App Authenticators and Yubico. 💎 Authorization with JWT/PASETO tokens. 🔐
Stars: ✭ 696 (+1350%)
Mutual labels:  authorization, access-control
Casbin Authz Plugin
Docker Authorization Plugin based on Casbin
Stars: ✭ 204 (+325%)
Mutual labels:  authorization, access-control
SpringSecurityInEasySteps
Learn Spring Security step by step
Stars: ✭ 13 (-72.92%)
Mutual labels:  authorization, access-control
Drf Access Policy
Declarative access policies/permissions modeled after AWS' IAM policies.
Stars: ✭ 200 (+316.67%)
Mutual labels:  authorization, access-control
Chi Authz
chi-authz is an authorization middleware for Chi
Stars: ✭ 248 (+416.67%)
Mutual labels:  authorization, access-control
Mongodb Adapter
MongoDB adapter for Casbin
Stars: ✭ 194 (+304.17%)
Mutual labels:  authorization, access-control
ficam-playbooks
The Federal Identity Credentials and Access Management program publishes guides and playbooks to help U.S. federal executive agencies implement, maintain, and modernize identity management systems.
Stars: ✭ 30 (-37.5%)
Mutual labels:  authorization, access-control
Casbin Server
Casbin as a Service (CaaS)
Stars: ✭ 171 (+256.25%)
Mutual labels:  authorization, access-control
Patron
Patron - Access Control as a Service for OpenStack
Stars: ✭ 171 (+256.25%)
Mutual labels:  authorization, access-control
rbac-tool
Rapid7 | insightCloudSec | Kubernetes RBAC Power Toys - Visualize, Analyze, Generate & Query
Stars: ✭ 546 (+1037.5%)
Mutual labels:  authorization, access-control
dart-casbin
An authorization library that supports access control models like ACL, RBAC, ABAC in Dart/Flutter
Stars: ✭ 30 (-37.5%)
Mutual labels:  authorization, access-control

AuthzForce Server (Community Edition)

FIWARE Security License: GPL v3 Docker badge Support badge
Documentation badge CI Status Codacy Badge FOSSA Status

AuthzForce Server provides a multi-tenant RESTful API to Policy Administration Points (PAP) and Policy Decision Points (PDP) supporting Attribute-Based Access Control (ABAC), as defined in the OASIS XACML 3.0 standard.

This project is part of FIWARE. For more information check the FIWARE Catalogue entry for Security.

Go to the releases page for specific release info: downloads (Linux packages), Docker image, release notes, and documentation.

The roadmap of this FIWARE GE is described here.

If you are interested in using an embedded XACML-compliant PDP in your Java applications, AuthzForce also provides a PDP engine as a Java library in Authzforce core project.

📚 Documentation 🎓 Academy 🐳 Docker Hub 🎯 Roadmap

Contents

Features

PDP (Policy Decision Point)

PIP (Policy Information Point)

AuthzForce provides XACML PIP features in the form of Attribute Providers. More information in the previous section.

PAP (Policy Administration Point)

  • Policy management: create/read/update/delete multiple policies and references from one to another (via PolicySetIdReference)
  • Policy versioning: create/read/delete multiple versions per policy.
  • Configurable root policy ID/version: top-level policy enforced by the PDP may be any managed policy (if no version defined in configuration, the latest available is selected)
  • Configurable maximum number of policies;
  • Configurable maximum number of versions per policy.
  • Optional policy version rolling (when the maximum of versions per policy has been reached, oldest versions are automatically removed to make place).

REST API

  • Provides access to all PAP/PDP features mentioned in previous sections with possibility to have PDP-only instances (i.e. without PAP features).
  • Multi-tenant: allows to have multiple domains/tenants, each with its own PAP/PDP, in particular its own policy repository.
  • Conformance with REST Profile of XACML v3.0 Version 1.0
  • Supported data formats, aka content types:
    • application/xml: XML based on API schema;
    • application/fastinfoset: Fast Infoset based on API's XML schema;
    • application/json: JSON based on API's XMLschema with a generic XML-to-JSON mapping convention
    • application/xacml+xml: XACML content only, as defined by RFC 7061
    • application/xacml+json: JSON format for XACML Request/Response on PDP only, as defined by XACML v3.0 - JSON Profile Version 1.0
  • Defined in standard Web Application Description Language and XML schema so that you can automatically generate client code.

High availability and load-balancing

  • Integration with file synchronization tools (e.g. csync2) or distributed filesystems (e.g. NFS and CIFS) to build clusters of AuthzForce Servers.

Limitations

The following optional features from XACML v3.0 Core standard are not supported:

  • Elements AttributesReferences, MultiRequests and RequestReference;
  • Functions urn:oasis:names:tc:xacml:3.0:function:xpath-node-equal, urn:oasis:names:tc:xacml:3.0:function:xpath-node-match and urn:oasis:names:tc:xacml:3.0:function:access-permitted;
  • Algorithms planned for future deprecation.

If you are interested in those, you can ask for support.

Quality Assurance

This project is part of FIWARE and has been rated as follows:

  • Version Tested:
  • Documentation:
  • Responsiveness:
  • FIWARE Testing:

Install

Every release is packaged in various types of distribution and the installation depends on the distribution type:

  • Ubuntu/Debian package (recommended option): .deb. Use your usual Ubuntu/Debian APT to install the package;
  • Other Linux distributions: .tar.gz for any Linux distribution. More info in the documentation;
  • Docker image, installed/deployed with the usual docker container commands.

For download links, please go to the specific release page.

Once you downloaded the distribution of your preference, check the documentation for more information.

Documentation

For links to the documentation of a release, please go to the specific release page.

Training Courses

Academy Courses

Tutorials

The following tutorials on AuthzForce Server are available:

Usage

This section gives examples of usage and PEP code with a web service authorization module.

For an example of using an AuthzForce Server's RESTful PDP API in a real-life use case, please refer to the JUnit test class RESTfulPdpBasedAuthzInterceptorTest and the Apache CXF authorization interceptor RESTfulPdpBasedAuthzInterceptor. The test class runs a test similar to @coheigea's XACML 3.0 Authorization Interceptor test but using AuthzForce Server as PDP instead of OpenAZ. In this test, a web service client requests a Apache-CXF-based web service with a SAML token as credentials (previously issued by a Security Token Service upon successful client authentication) that contains the user ID and roles. Each request is intercepted on the web service side by a RESTfulPdpBasedAuthzInterceptor that plays the role of PEP (Policy Enforcement Point in XACML jargon), i.e. it extracts the various authorization attributes (user ID and roles, web service name, operation...) and requests a decision with these attributes from a remote PDP provided by AuthzForce Server, then enforces the PDP's decision, i.e. forwards the request to the web service implementation if the decision is Permit, else rejects it. For more information, see the Javadoc of RESTfulPdpBasedAuthzInterceptorTest.

Testing

To run unit tests, install Maven and type

mvn test

Support

You should use AuthzForce users' mailing list as first contact for any communication about AuthzForce: question, feature request, notification, potential issue (unconfirmed), etc.

If you are experiencing any bug with this project and you indeed confirm this is not an issue with your environment (contact the users mailing list first if you are unsure), please report it on the OW2 Issue Tracker. Please include as much information as possible; the more we know, the better the chance of a quicker resolution:

  • Software version
  • Platform (OS and JRE)
  • Stack traces generally really help! If in doubt, include the whole thing; often exceptions get wrapped in other exceptions and the exception right near the bottom explains the actual error, not the first few lines at the top. It's very easy for us to skim-read past unnecessary parts of a stack trace.
  • Log output can be useful too; sometimes enabling DEBUG logging can help;
  • Your code & configuration files are often useful.

Security - Vulnerability reporting

If you want to report a vulnerability, you must do so on the OW2 Issue Tracker with Security Level set to Private. Then, if the AuthzForce team can confirm it, they will change it to Public and set a fix version.

Contributing

Documentation

The sources for the manuals are located in fiware repository.

Releasing

  1. From the develop branch, prepare a release (example using a HTTP proxy):
$ mvn -Dhttps.proxyHost=proxyhostname -Dhttps.proxyPort=8080 jgitflow:release-start
  1. Update the changelog with the new version according to keepachangelog.com.

  2. Commit

  3. Perform the software release (example using a HTTP proxy):

    $ mvn -Dhttps.proxyHost=proxyhostname -Dhttps.proxyPort=8080 jgitflow:release-finish

    If, after deployment, the command does not succeed because of some issue with the branches. Fix the issue, then re-run the same command but with 'noDeploy' option set to true to avoid re-deployment:

    $ mvn -Dhttps.proxyHost=proxyhostname -Dhttps.proxyPort=8080 -DnoDeploy=true jgitflow:release-finish

    More info on jgitflow: http://jgitflow.bitbucket.org/

  4. Connect and log in to the OSS Nexus Repository Manager: https://oss.sonatype.org/

  5. Go to Staging Profiles and select the pending repository authzforce-*... you just uploaded with jgitflow:release-finish

  6. Click the Release button to release to Maven Central.

  7. When the artifacts have been successfully published on Maven Central, follow the instructions in the Release section of fiware repository.

  8. Build and publish the Docker image:

      $ git checkout master
      $ mvn clean package
      $ cd dist/target/classes/docker
      $ ./release.sh
  9. Update the versions in badges at the top of this file.

  10. Create a release on Github with a description based on the release description template, replacing M/m/P with the new major/minor/patch versions.

License

This project is licensed under the terms of GPL v3 except Java classes in packages org.ow2.authzforce.webapp.org.apache.cxf.jaxrs.provider.json.utils and org.ow2.authzforce.webapp.org.codehaus.jettison.mapped which are under Apache License.

FOSSA Status

Are there any legal issues with GPL 3.0? Is it safe for me to use?

There is absolutely no problem in using a product licensed under GPL 3.0. Issues with GPL (or AGPL) licenses are mostly related with the fact that different people assign different interpretations on the meaning of the term “derivate work” used in these licenses. Due to this, some people believe that there is a risk in just using software under GPL or AGPL licenses (even without modifying it).

For the avoidance of doubt, the owners of this software licensed under an GPL 3.0 license wish to make a clarifying public statement as follows:

Please note that software derived as a result of modifying the source code of this software in order to fix a bug or incorporate enhancements is considered a derivative work of the product. Software that merely uses or aggregates (i.e. links to) an otherwise unmodified version of existing software is not considered a derivative work, and therefore it does not need to be released as under the same license, or even released as open source.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].