-
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
Notification Sender - authentication may require both identities client & agent (user) #134
Comments
My understand was that I can see the notification-server (the |
Let's consider a case where we have two Subscribtion Servers run by two different organizations:
Both ACME and Yoyodyne use the same 3rd party Notification Sender:
Now Alice creates a Webhook (or LDN) subscription with In this case it might more sense in response to provide |
My understanding was that the |
If both ACME and Yoyodyne use We might need to rely on Capability URLs for sendTo, and in this case we would not need any sender information. |
The sequence diagram below shows the issue I described in previous comment. sequenceDiagram
participant Alice as alice.ex (NR+SC)
participant Sent as sent.ex (NS)
participant ACME as acme.ex (RS+SS)
participant YOYO as yoyo.ex (RS+SS)
Alice ->> ACME: Subscribe to gadgets { sendTo: alice.ex }
ACME ->> Alice: Channel A { sender: sent.ex }
Note over Alice: sets access for send.ex
ACME ->> Sent: Notify Channel A about gadget X
Sent ->> Alice: Deliver Notification { object: acme.ex/gadget-x }
Note over Alice: OK expected notification from acme.ex via sent.ex
YOYO ->> Sent: Notify Channel A about fake Y
Sent ->> Alice: Deliver Notification { object: yoyo.ex/fake-y }
Note over Alice: Oops! span from yoyo.ex via sent.ex
I think Clean approach would rely on ACME giving explicit Authorization to the Notifications Sender they use (which acts as a client) and that client uses that authorization while making request. UMA claims pushing which is recommended approach in Solid-OIDC could push such authorization as a claim while obtaining the access token from alice.ex Authorization Server. BTW Solid-OIDC is not really a great fit here for |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
We can use this diagram during today's call about AuthN/AuthZ sequenceDiagram
autonumber
actor A as Alice
participant DC as Discovery Client
participant SC as Subscription Client
participant NR as Notification Receiver
participant NS as Notification Sender
participant SS as Subscription Server
participant RS as Resource Server
actor ACME
DC -->> RS: Discover
SC -->> SS: Subscribe
alt receiveFrom
NR -->> NS: Pickup
else sendTo
NS -->> NR: Deliver
end
SC -->> SS: Unsubscribe
1. DiscoverDiscovery Client makes a request to a Resource Server. Currently, the notifications system doesn't assume AuthN/AuthZ to play a role here. #110 has some conversations about relying on AuthN/AuthZ in this step to provide Capability URLs or some tokens that can be used by the Notifications Receiver. 2. SubscribeSubscription Client makes a request to a the Subscription Server. Currently, this is the main point of AuthN/AuthZ. For many notification channel types, Capability URLs are provided in this step. 3. PickupNotifications Reciever connects to the Notifications Sender, this is the case for receiveFrom based channel types. Many channel types rely on Capability URL being used for the receiveFrom. 4. DeliverNotifications Sender connects to the Notifications Receiver, this is the case for sendTo based channel types. #155 suggests that AuthN/AuthZ scheme used can be made explicit for a given channel. Capability URLs as well as other AuthN/AuthZ systems can be used here. 5. UnsubscribeSubscription Client connects to the Subscription Server. As discussed in #145, in some cases the same AuthN/AuthZ as used in the Subscribe step can be used, in other cases may require unsubscribing only based on the information provided in each notification. |
Previous drafts were using
webid
in Subscription Response (Webhook, LDN). Recently we changed it tosender
.Commonly solid authentication provides two identities:
acp:client
matcher)acp:agent
matcher)I think having just single WebID as sender doesn't support case where access policy on the
target
should be based on two identitiesclient
andagent
. We should consider supporting providing both identities for the sender.The text was updated successfully, but these errors were encountered: