Profile/obligations#548
Conversation
|
@baboulebou This is a really solid first draft, thank you! I have a few comments:
For expediency I have approved, subject to the changes I'd like to see before you merge this. |
ogazitt
left a comment
There was a problem hiding this comment.
See my review feedback before merging
|
|
||
| # Discovery: PDP Metadata Extension {#metadata-extension} | ||
|
|
||
| {{AUTHZEN}} defines a metadata discovery mechanism by which a PEP learns the capabilities of a PDP. This profile adds a new metadata member, `obligations_supported`, an array of Strings, each of which MUST be either an Obligation Type registered per {{iana-obligation-types}}, or the literal value `custom`, that the PDP is capable of issuing. |
There was a problem hiding this comment.
I know it's an aesthetic preference; but I'd prefer supported_obligations as a naturally readable phrase.
There was a problem hiding this comment.
Agreed. Change made.
|
|
||
| # Discovery: PDP Metadata Extension {#metadata-extension} | ||
|
|
||
| {{AUTHZEN}} defines a metadata discovery mechanism by which a PEP learns the capabilities of a PDP. This profile adds a new metadata member, `obligations_supported`, an array of Strings, each of which MUST be either an Obligation Type registered per {{iana-obligation-types}}, or the literal value `custom`, that the PDP is capable of issuing. |
There was a problem hiding this comment.
We should also offer support for a wildcard like * here; so that the PEP can efficiently indicate support for a broad range of obligation types.
The PEP then fails closed when it receives an obligation type it does not support.
So
{ "context" : { "supported_obligations": "vnd.cel.filter.*" } }
or even
{ "context" : { "supported_obligations": "*" } }
for maximum wire-format efficiency.
There was a problem hiding this comment.
Not sure I agree with that one. What does it mean "all obligation"? It assumes the PEP "knows" ahead of time all the obligations that the PDP supports, and can enforce all of them. Otherwise, saying * for obligations it can't enforce or support is rather meaningless. Not going to make this change, we can discuss with the group if necessary.
There was a problem hiding this comment.
I agree that “*” is an anti-pattern for capability negotiation. The set of known obligations will grow over time and a PEP that was deployed at time T1 can’t possibly know that it can support all the obligations emitted by a PDP deployed at a later time T2.
…s. supported_obligations. No context in search result items.
First draft of the AuthZEN Obligations profile.