Skip to content
This repository was archived by the owner on Apr 26, 2025. It is now read-only.

Conversation

@zahnno
Copy link
Contributor

@zahnno zahnno commented Jan 19, 2021

ExtendedConfigurableAuthorizer

  • Allows for grouped object access based on object values, permission templates and permissions configured.
  • PermissionTemplates have a DAOKey array detailing when to apply to an authorizer. The authorizer also defines a DAOKey. A permission template further defines properties used to construct the permission strings along with the operation to apply it to.
  • ExtendedConfigurableAuthorizer Provides runtime authorization configuration through updates to entries within permissionTemplateReferenceDAO.
  • The Authorizer requires configuration, if no permissionTemplateReferences are attributed to the authorizer, all requests to the service will be permitted. StandardAuthorizer logic will be applied.

Example:

A PermissionTemplateReference with a daokey of ['userDAO'], operation "read" and PermissionTemplateProperties [{ class: "PermissionTemplateProperty", propertyReference: "language"}] would use the value of language using a User object attempting to be authorized on the userDAO and compare it to the authenticated permission list.

The requestor (User making the request to access objects) may have the following permission 'userdao.read.en' granting access to all users with the values of language 'en'.

In the case where conflicts may arise from properties holding similar values, a common one for example may be a property of color, you can set impliesValue on the PermissionTemplateProperty referenced in the list of your PermissionTemplateReference, using the example above, will check for a permission of userdao.read.language[en].

Benchmarking tests and comparison results applied when reading a unauthenticated, standardAuthorized and configurableAuthorized user MDAO. View ConfigurableAuthorizerBenchmark for more information.

Issues:

  • Ranges are not supported.
  • Conflicts arise if property values can be the same. Example: firstName and lastName being defined as properties on a templateReference. There's no distinction between them when constructing the permission and may lead to unintentional authorization. This can be resolved by extending both permission segments to expect object properties along with a value. Currently only the property is referenced and is translated to a value which constructs the permission to check against the requestors permission list. RESOLVED

Note:

These changes do not change any existing functionality.

@google-cla google-cla bot added the cla: yes label Jan 19, 2021
@jlhughes jlhughes requested a review from kgrgreer January 20, 2021 02:37
@kgrgreer
Copy link
Contributor

I would like to get a demo of this before we merge. Thx

@zahnno
Copy link
Contributor Author

zahnno commented Jan 25, 2021

@kgrgreer Cache support added.

@google-cla
Copy link

google-cla bot commented Apr 13, 2021

All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter.

We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that by leaving a comment that contains only @googlebot I consent. in this pull request.

Note to project maintainer: There may be cases where the author cannot leave a comment, or the comment is not properly detected as consent. In those cases, you can manually confirm consent of the commit author(s), and set the cla label to yes (if enabled on your project).

ℹ️ Googlers: Go here for more info.

@google-cla
Copy link

google-cla bot commented Apr 13, 2021

All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter.

We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that by leaving a comment that contains only @googlebot I consent. in this pull request.

Note to project maintainer: There may be cases where the author cannot leave a comment, or the comment is not properly detected as consent. In those cases, you can manually confirm consent of the commit author(s), and set the cla label to yes (if enabled on your project).

ℹ️ Googlers: Go here for more info.

kgrgreer and others added 20 commits April 19, 2021 10:27
…te-view-alignment

Removed extra padding from Date View
…ector-section-sorted

[NP-4109] Business Sectors selection needs to be local sorted
…comments

fix duplicate comment being saved
…-102-formattedTextFieldRefactor

Revert "Revert "Formatted text field refactor""
yij793 and others added 29 commits April 26, 2021 16:45
…0/PossibleFixUsingEquals

Revert "[NP-4260] Change != to ( ! `.equals()` )"
…-156-revert-155-capability-ids

Revert "Relevant Capability Id"
…ng-tooltip-ux

Redesigned help UI to accomodate long tooltips
…-157-revert-156-revert-155-capability-ids

Revert "Revert "Relevant Capability Id""
…-168-NP-4260/PossibleFixUsingEquals

Revert "Revert "[NP-4260] Change != to ( ! `.equals()` )""
…-170-NP-4260/Again

Revert "Revert "Np 4260/again""
…yAuthServiceNPE

NP-4241 CapabilityAuthService NPE
…eckbox-text-rendering

checkbox label alignment fix
…heme-fix

adds theme fallbacks to sectionedDetailPropertyView
@google-cla
Copy link

google-cla bot commented Apr 27, 2021

All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter.

We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that by leaving a comment that contains only @googlebot I consent. in this pull request.

Note to project maintainer: There may be cases where the author cannot leave a comment, or the comment is not properly detected as consent. In those cases, you can manually confirm consent of the commit author(s), and set the cla label to yes (if enabled on your project).

ℹ️ Googlers: Go here for more info.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.