Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

clarify merging of essential policy operators #110

Merged
merged 1 commit into from
Oct 23, 2024

Conversation

zachmann
Copy link
Collaborator

@zachmann zachmann commented Oct 9, 2024

As noted in my issue #11 I think the current phrasing on merging the essential policy operator is not clear enough.

This is my proposal on how to simplify the phrasing, as I think the semantic should be.

met, this MUST result in a policy error.
Operator value merge: The result of merging the values of two
<spanx style="verb">essential</spanx> operators is the logical
disjunction (<spanx style="verb">OR</spanx>) of the operator values.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The proposed replacement is not equivalent.

The (inclusive) logical disjunction of:

  • Superior policy: essential=true
  • Subordinate policy: essential=false

is: essential=true

For the above condition the spec (last sentence in paragraph) describes a policy violation error, not a successful merge.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't completely sure what should be done in this case, but I agree that as it is currently phrased this is the most likely meaning (and you confirmed it).

However, the spec also states that

If the essential operator is omitted, this is equivalent to including it with a value of false.

Therefore, I believe my suggestion is the only feasible approach. Otherwise either omitting is not the same as providing essential=false, or essential=true could not be merged, only if all entities provide essential=true.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This shows that we have a bug in the essential spec. Good catch!

Would you be able to add the customary history entry to this PR?
Examples here:
https://openid.net/specs/openid-federation-1_0-39.html#appendix-D

Copy link
Collaborator

@vdzhuvinov vdzhuvinov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The history entry will be added separately. Thanks!

@selfissued selfissued merged commit d02a80d into openid:main Oct 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants