Repository navigation
Unary Edge Operator Defaults #1556
Replies: 1 comment
|
Agreed on the diagnosis: a single global Unknown group operators have to fail closedIf the effective unary default becomes a function of the enclosing group operator, then a For The normative language should therefore state that an M-ARY edge group whose group keripy already applies this discipline to unary operators — Part of the premise may already be implemented
So "for
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Unary Edge Operator Defaults
The original use cases for edges in ACDCs were to model delegation chains of authority. The run-up to SEDI has produced other important use cases that are not delegative in nature. The existing global default rules for Unary edge operators feel cumbersome in those applications. This builds off from #1555
This discussion proposes changes to the Unary edge operator's default logic.
The main advantage of defaults is compactness of expression. A set of edges by omitting an explicit edge operator benefits from an intelligent default. This makes expressing edges less cumbersome.
However, if there is no intelligent default, then all edges must have explicit operators. This makes it cumbersome.
So the idea is to discuss how to have more fine-grained default logic to better manage this trade-off.
Unary Edge Operators and Defaults
Unary Delegative Operators
This table has been expanded to include the newly proposed
E1Eoperator see Discussion #1515With the exception of the
NOTandE1Eoperators, the current set of Unary operators are delegative. They modulate delegation relations between the near and far ACDCs that share an edge.I2INI2IDI2IE1ENOTWhen the Operator,
o, field is missing or empty or is present but does not include any of theI2I,NI2IorDI2IOperators then:If the node pointed to by the Edge is a targeted ACDC, i.e., has an Issuee, then the
I2IOperator MUST be appended to the Operator,o, field's effective list value.If the node pointed to by the Edge block is an Untargeted ACDC i.e., does not have an Issuee, then the
NI2IOperator MUST be appended to the Operator,o, field's effective list value.Many ACDC chains use Targeted ACDCs (i.e., have Issuees). A chain of Issuer-To-Issuee-To-Issuer Targeted ACDCs, in which each Issuee becomes the Issuer of the next ACDC in the chain, can be used to provide a chain of authority. A common use case for a chain of authority is a delegation chain for authorization.
The
I2Iunary operator, when present, means that the Issuer AID of the current ACDC in which the Edge resides MUST be the Issuee AID of the node to which the Edge points. Therefore, for this Edge to be valid, the ACDC node it points to MUST be a Targeted ACDC. This is the default value when the Operator 'o' field value is missing or empty.The
NI2Iunary Operator, when present, removes or nullifies any requirement expressed by theI2IOperator described above. In other words, any REQUIREMENT that the Issuer AID of the current ACDC in which the Edge resides MUST be the Issuee AID, if any, of the node the Edge points to is relaxed (not applicable). To clarify, when operative (present), theNI2IOperator means that both an Untargeted ACDC or Targeted ACDC, as the node pointed to by the Edge, MAY be valid even when Untargeted or if Targeted even when the Issuer of the ACDC in which the Edge appears is not the Issuee AID of that node to which the Edge points.The
DI2Iunary Operator, when present, expands the class of allowed Issuer AIDs of the node the Edge resides in to include not only the Issuee AID but also any delegated AIDs of the Issuee of the node to which the Edge points. Therefore, for this Edge to be valid, the ACDC node it points to MUST be a Targeted ACDC.The
EIEunary Operator, when present, requires that the Issuee AID on both sides of the edge must be identical. This supports partitioning of the information in each ACDC issuance to a need-to-know policy across issuing agencies or departments. All ACDCs chain back to the same core identity, ACDC, but allow a given agency or department to issue department-specific entitlements that are chained to the core identity ACDC without needing to know anything about information controlled by another department. This policy minimizes the blast radius of a breach. Therefore, for the ACDCs on both sides of the Edge to be valid, they MUST be Targeted.The
NOTunary Operator, when present, inverts the Edge's validation truthiness. If the Edge is invalid, the presence of theNOToperator makes it valid. Conversely, if this Edge is valid, then the presence of theNOTOperator makes this Edge invalid.Problems
The current logic for default specifies that when the
ofield is missing or has an empty value, and the far side node of the Edge is targeted, thenI2Iis appended. Therefore, forE1Eto function properly, it must always be explicitly provided.The newly proposed Multiply Endorsed
MEM-Ary edge group operator does not care whether the far-side ACDC is delegative or not; only that the far-side ACDC is targeted (has an Issuee AID). This means that for correct functioning of anMEedge group, each edge must have an explicitNI2Ioperator to avoid a failed edge when the defaultI2Iis inappropriately applied.How to fix this. The original motivation for the
I2Idefault is that Unary edge operators were not normatively defined for ACDCs when the original GLEIF vLEIs went into production. This meant that the original vLEIs did not have unary edge operators. The EGF required that those edges be treated as if they had anI2Irequirement. Later, when the unary operators were normatively defined, backward compatibility with vLEIs without unary edge operators was achieved by addingI2Ias the default andNI2Ito override it. In use cases where edges, by and large, are delegative, these defaults make sense. But for SEDI use cases where often there is no delegative credential for a citizen, the delegative defaults result in more cumbersome minimal construction.The
I2Idefault applies globally to all edges. We could change that default to be empty, but this might break vLEIs in the wild that do not have an explicit unary operator on a delegative edge.Another way to address this problem is to make defaults for Unary edge operators be a function of the M-Ary edge group operator when and if the edge appears in an edge group.. Each edge group operator may have an optional default edge operator for all its edges. This would make default logic more granular.
It does add some extra processing, but the logic is well triggered by the presence of a given edge group operator with defined default edge operator overrides.
So, for example, an
MEedge group could haveNI2Ias the default edge operator, regardless of the targeting status of the far node ACDC. This means a group of multiple endorsed ACDCs would not need any explicit unary edge operators.Many of the dossier spec examples are non-delegative as well and would benefit from a different default than
I2I.Given we define an optional unary default for each M-Ary, we could support edge groups of
E1Eedges by defining an Identity AND group operator,IAND, where every edge must be present, and every edge defaults to an implicitE1Eedge.All reactions