-
Notifications
You must be signed in to change notification settings - Fork 7
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
Notes on metadata policy operators #11
Comments
Imported from AB/Connect bitbucket - Original Commenter: mbjThanks for your thoughts, Gabriel. A few reactions to your suggestions…
Thanks again! |
Imported from AB/Connect bitbucket - Original Commenter: gzachmannOn
I can see your point on For |
@zachmann Hi Gabriel, I studied PR #111 - "Policy operators: no restrictions when combining add and superset_of". Every operator definition follows an identical template. This template includes (among other things):
It is correct that if a software doesn't implement the combination checks for
The current combination specs were worded like this to make it easier for policy designers to reason about operators and how they may be combined without having to also consider the order of the operator application. If we remove the conditionals ("... in which case...") this feature will be lost to the reader. I see two ways going forward:
I'm not in favour of completely removing the normative description, because this will make it more difficult for the reader to figure out the allowed combinations. |
I understand the reasoning. I would also say in general it is fine as it currently is. When submitting the PR I considered wording it something like that, but found it too complex, if it also just could be left out. But for the sake of consistency it makes sense to add a condition, I'll update the PR. |
I'm kind of sympathetic to what is raised here. I think the standard could be simplified and processing be made more secure by simply stating that the final metadata MUST be consistent with all policy operators, or policy processing MUST fail. |
Imported from AB/Connect bitbucket: https://bitbucket.org/openid/connect/issues/2156
Original Reporter: gzachmann
Hi,
while going through the metadata policies operators of the newest spec version and found some things to comment on. I wanted to hear your opinion on them, if those are valid points or might already have been discussed before.
value
: Why can it only be combined withessential
? I think it should be possible to combine with all value checks, e.g. one IA might set aone_of
policy value check and another IA/TA sets avalue
, this could still work perfectly fine.add
: Combination withsuperset_of
: I don't think we should have the requirement that the values fromadd
MUST be a superset ofsuperset_of
. Only afteradd
is done the result MUST be a superset of the values insuperset_of
. I'd argue we could just strip the stated requirement, since the consistency with value checks is checked anyway later.default
: Merging: Personally, I would like to have the possibility to mergedefault
in the sense that superiors overwrite subordinate policies. This would enable a national federation to set another default than an intra-national-fed. Since default is rather weak (it's just a default, if the value is something else it's still fine) - I don't feel like a "conflict" between different IAs, is something critical/incompatible)superset_of
: Combination withadd
: See aboveessential
: Merging: The spec states that "If a Superior has specifiedessential=true
, then a Subordinate MUST NOT change that." It's not completely clear to me what the meaning of 'MUST NOT change' is:a)
essential
is true as soon as any entity in the chain says so, i.e. subordinates cannot overwrite true with false - if they try it does not matter, the chain is still validb) if a subordinate defines
essential=false
and a superior definedessential=true
this MUST result in a policy error.The text was updated successfully, but these errors were encountered: