You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 13, 2022. It is now read-only.
the example-workflow.md document leaves unspecified how an application or automatic client (like an in-browser AJAX client where no cookie exists or can be used, or a server-side application with its own WebID (like a bot)) obtains an access credential when presented with a 401 Unauthorized response from a resource server.
node-solid-server, oidc-op, and oidc-rp together address this case in a currently undocumented (experimental?) way, described in #24. summary: "a proof-of-possession token is manufactured by the client and presented directly as a bearer token".
i'd like to propose an alternative method that is more in line with the spirit of OAuth, and which also uses proof-of-possession. i've (re)written a full protocol proposal at WebID HTTP Authorization Protocol. highlights of this protocol and capabilities it enables include:
the client must sign a challenge chosen by the resource server to prove immediate possession of the private challenge key;
the server, rather than the client, chooses the validity period of the access token;
provides an extensible framework for obtaining access tokens using different authentication mechanisms (for example, the spec includes a method to authenticate and obtain a bearer token using WebID-TLS, but that's beyond the scope of this Issue);
the server (or its authorization delegate) can choose the format/representation/length of the token, for example to fit in with existing authorization infrastructure or to work optimally in the server's implementation;
the server can revoke its own access tokens trivially;
the server can require (and manage/revoke) different access tokens for different protection spaces it may serve, consistent with HTTP authorization semantics -- these tokens could be generated and validated by different authorization subsystems running in the server and have independent lifetimes.
the example-workflow.md document leaves unspecified how an application or automatic client (like an in-browser AJAX client where no cookie exists or can be used, or a server-side application with its own WebID (like a bot)) obtains an access credential when presented with a
401 Unauthorizedresponse from a resource server.node-solid-server, oidc-op, and oidc-rp together address this case in a currently undocumented (experimental?) way, described in #24. summary: "a proof-of-possession token is manufactured by the client and presented directly as a bearer token".
i'd like to propose an alternative method that is more in line with the spirit of OAuth, and which also uses proof-of-possession. i've (re)written a full protocol proposal at WebID HTTP Authorization Protocol. highlights of this protocol and capabilities it enables include:
an optional HTTP(or for WebID-TLS);302redirect-based token delivery mode that can be used to establish an application identifier, especially in case the proposal at Proposal: recommend WebID OpenID Providers include redirect_uri in audience list to distinguish web apps #23 is rejected or not widely implementedsummary of the protocol (please see zenomt/webid-auth-protocol for a full description):
401 Unauthorized, and aWWW-Authenticateresponse header that includes a challenge nonce and a token-exchange endpoint URI;Authorizationheaders for requests to the same protection space, until it expires.