-
Notifications
You must be signed in to change notification settings - Fork 26
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
Adding Human Rights Considerations #434
Conversation
✅ Deploy Preview for gnap-core-protocol-editors-draft ready!Built without sensitive environment variables
To edit notification comments on pull requests, go to your Netlify site settings. |
|
||
Requiring the resource owner to share their policies with a resource controller they can't choose is a violation of human rights through forced association. A well-understood non-digital example is "forced arbitration" clauses where the powerful service provider gets to choose the arbitrator. In addition to forced policy sharing, giving the mandated controller access to user requests enables unwarranted surveillance and is an impediment to freedom of assembly. As with OAuth2 and UMA2, GNAP offers implementers of a resource server the choice to support freedom of assembly and association, but experience teaches us that resource servers will hardly ever make that choice unless it's core to the protocol's interoperability and user experience design. | ||
|
||
By way of mitigation, GNAP allows the RS to choose their AS as controller but also allows the RO to choose _their_ intermediary to for processing resource requests. This intermediary could be a fiduciary or a community unrelated to and untrusted by either the AS or RS. |
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.
By way of mitigation, GNAP allows the RS to choose their AS as controller but also allows the RO to choose _their_ intermediary to for processing resource requests. This intermediary could be a fiduciary or a community unrelated to and untrusted by either the AS or RS. | |
By way of mitigation, GNAP allows the RS to choose their AS as controller but also allows the RO to choose _their_ intermediary for processing resource requests. This intermediary could be a fiduciary or a community unrelated to and untrusted by either the AS or RS. |
|
||
By way of mitigation, GNAP allows the RS to choose their AS as controller but also allows the RO to choose _their_ intermediary to for processing resource requests. This intermediary could be a fiduciary or a community unrelated to and untrusted by either the AS or RS. | ||
|
||
As discussed below, delegation should also support attentuation and GNAP supports attenuation through either directly by token design or indirectly through token exchange at the AS. |
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.
As discussed below, delegation should also support attentuation and GNAP supports attenuation through either directly by token design or indirectly through token exchange at the AS. | |
As discussed below, delegation should also support attenuation and GNAP supports attenuation either directly through token design or indirectly through token exchange at the AS. |
@@ -5602,6 +5602,52 @@ it is not usually feasible to provide notification and warning to someone before | |||
needs to be executed, as is the case with redirection URLs. As such, SSRF is somewhat more difficult | |||
to manage at runtime, and systems should generally refuse to fetch a URI if unsure. | |||
|
|||
# Human Rights Considerations {#human-rights} |
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.
I sympathize with the goal here. However, delegation probably doesn't have a direct placeholder in the core draft, and it seems to be better suited for the RS draft (where we define different types of tokens and their capabilities, etc.)
|
||
## Can GNAP Promote Freedom of Association and Assembly? | ||
|
||
OAuth and related protocols like OpenID Connect have contributed to global platform oligopolies that are difficult to regulate and, when pressed, collaborate with governments that do not honor universal human rights. This unintended consequence of authorization design is due to a combination of resource server autonomy and resource user convenience. Resource servers, if allowed, will do as much surveillance as they can get away with or outsource that surveillance to platform intermediaries in exchange for a reduced operating cost. For their part, users will, almost without exception, choose the most convenient path to resource access even when that path exposes them to secondary costs or poorly understood risks. |
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.
Sure, but that's a hard stance of the community. There's no way you can control what will be used by large corporations in the end
|
||
It is therefore now common practice for a resource server to align its interest with an authorization server and often an identity provider as well. For example, a network effect ensues when a social network offers users "free" resource processing as long as they are also party to the resource control function and, for the most successful social networks, trusted as identity providers. | ||
|
||
Requiring the resource owner to share their policies with a resource controller they can't choose is a violation of human rights through forced association. A well-understood non-digital example is "forced arbitration" clauses where the powerful service provider gets to choose the arbitrator. In addition to forced policy sharing, giving the mandated controller access to user requests enables unwarranted surveillance and is an impediment to freedom of assembly. As with OAuth2 and UMA2, GNAP offers implementers of a resource server the choice to support freedom of assembly and association, but experience teaches us that resource servers will hardly ever make that choice unless it's core to the protocol's interoperability and user experience design. |
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.
again very strong wording
|
||
Requiring the resource owner to share their policies with a resource controller they can't choose is a violation of human rights through forced association. A well-understood non-digital example is "forced arbitration" clauses where the powerful service provider gets to choose the arbitrator. In addition to forced policy sharing, giving the mandated controller access to user requests enables unwarranted surveillance and is an impediment to freedom of assembly. As with OAuth2 and UMA2, GNAP offers implementers of a resource server the choice to support freedom of assembly and association, but experience teaches us that resource servers will hardly ever make that choice unless it's core to the protocol's interoperability and user experience design. | ||
|
||
By way of mitigation, GNAP allows the RS to choose their AS as controller but also allows the RO to choose _their_ intermediary to for processing resource requests. This intermediary could be a fiduciary or a community unrelated to and untrusted by either the AS or RS. |
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.
That's not the only potential mitigation : one objective is to play nice with the DID/VC communities and avoid (or at least not mandate) the silo effect of centralized identity (as oidc generally does).
DIDs are already included in the draft. Potentially the assertions field is something we could expand.
Per the discussion at IETF114, this is a new section based on human rights