-
Notifications
You must be signed in to change notification settings - Fork 38
changes to the Notiication obligation: to as Array, support for Decis… #596
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
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -289,13 +289,13 @@ The following is a non-normative example of a `step-up` obligation: | |
|
|
||
| ## notification {#obligation-notification} | ||
|
|
||
| The `notification` obligation requires the PEP to transmit a message to a destination. This specification is transport-agnostic: the destination MAY be an email address, a phone number, a pub/sub topic, a webhook, or any other implementation-meaningful identifier. | ||
| The `notification` obligation requires the PEP to transmit a message to one or more destinations. This specification is transport-agnostic: a destination MAY be an email address, a phone number, a pub/sub topic, a webhook, or any other implementation-meaningful identifier. | ||
|
|
||
| Obligation-specific members: | ||
|
|
||
| to: | ||
|
|
||
| : REQUIRED. A String. An implementation-specific identifier for the destination of the notification (e.g., an email address such as `manager@example.com`, or a queue/topic name). The identifier MUST be unique and meaningful within the deploying implementer's environment. | ||
| : REQUIRED. A JSON array of Strings, each an implementation-specific identifier for a destination of the notification (e.g., an email address such as `manager@example.com`, or a queue/topic name). The array MUST contain at least one element. Each identifier MUST be unique and meaningful within the deploying implementer's environment. The PEP MUST transmit the notification to every destination listed in the array; the obligation is satisfied only when transmission to all listed destinations succeeds. If transmission to any listed destination fails, the PEP cannot comply with the obligation, and, per {{non-compliance}}, MUST treat the overall response as a DENY, regardless of whether the original `decision` was `true` or `false`. | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Is this something we can test for when we develop the conformance testing suites? And in case we can't test for conformance, is the |
||
|
|
||
| body: | ||
|
|
||
|
|
@@ -305,21 +305,38 @@ topic: | |
|
|
||
| : OPTIONAL. A String. A short, high-level subject or purpose for the message, e.g., an email subject line, or a routing topic identifier for a pub/sub transport. | ||
|
|
||
| The following is a non-normative example of a `notification` obligation: | ||
| If the AuthZEN request that gave rise to this decision included a `context.decision_subject` element -- an implementation-defined identifier for the entity the authorization request pertains to, which is typically distinct from the requesting `subject` (for example, the patient whose record a doctor is requesting access to) -- the PDP MUST include that identifier as an additional destination in the `to` array of every `notification` obligation it issues for that decision, so that the decision subject is notified alongside any other configured destinations. | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Quoting Anivar Aravind from the mailing list thread: I think are arguments both for MAY as well as MUST, but probably worth debating it here. |
||
|
|
||
| The following is a non-normative example of a `notification` obligation with a single destination: | ||
|
|
||
| ~~~ json | ||
| { | ||
| "type": "notification", | ||
| "id": "obl-2", | ||
| "properties": { | ||
| "to": "manager@example.com", | ||
| "to": ["manager@example.com"], | ||
| "topic": "Unauthorized access attempt", | ||
| "body": "User jdoe attempted to access patient record 4471 outside of business hours." | ||
| } | ||
| } | ||
| ~~~ | ||
| {: #fig-obligation-notification title="Non-normative example of a notification obligation"} | ||
|
|
||
| The following is a non-normative example of a `notification` obligation issued for a request that included a `context.decision_subject` of `patient-4471`, in addition to a statically configured destination: | ||
|
|
||
| ~~~ json | ||
| { | ||
| "type": "notification", | ||
| "id": "obl-2b", | ||
| "properties": { | ||
| "to": ["manager@example.com", "patient-4471"], | ||
| "topic": "Medical record accessed", | ||
| "body": "User jdoe accessed patient record 4471 under emergency access provisions." | ||
| } | ||
| } | ||
| ~~~ | ||
| {: #fig-obligation-notification-decision-subject title="Non-normative example of a notification obligation with a decision_subject destination"} | ||
|
|
||
| ## session_termination {#obligation-session-termination} | ||
|
|
||
| The `session_termination` obligation requires the PEP to initiate whatever flow is necessary to terminate all active sessions belonging to the specified subject, including, where the deployment spans a federation, sessions established at other participating parties (e.g., via {{OIDC-LOGOUT}} front-channel or back-channel logout mechanisms, or via a {{SSF}} implementation). | ||
|
|
@@ -492,7 +509,7 @@ The following is a non-normative example of a Search response listing three cand | |
| "type": "notification", | ||
| "id": "obl-2", | ||
| "properties": { | ||
| "to": "manager@example.com", | ||
| "to": ["manager@example.com"], | ||
| "topic": "Protected Document Access", | ||
| "body": "User AliceSmith attempted to read Document "doc-2" from Europe." | ||
| } | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you mean for a line break before
perl?