Skip to content
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

Concept of a "service" supported by a set of RSs #238

Closed
Denisthemalice opened this issue Apr 3, 2021 · 4 comments
Closed

Concept of a "service" supported by a set of RSs #238

Denisthemalice opened this issue Apr 3, 2021 · 4 comments

Comments

@Denisthemalice
Copy link

At the moment an access token is intended to be presented to one server, i.e. a RS.

There are cases where a Service (SRV) is supported by a set of RSs, e.g. a printing service or a storage service.

If an access token includes the name of a service (in addition to an identifier of a RS), either :

  • that access token may be forwarded by one RS to another RS belonging to the same service, or
  • the client may re-use the access token at another RS belonging to the same service.

This avoids the RS or the client to ask for a new access token.

The implication is as follows: every RS should be able to advertise the name of the service(s), it belongs to.
This can be done using a RS discovery operation.

@fimbault
Copy link
Collaborator

fimbault commented Apr 5, 2021

RS discovery seems like an overkill for what is fundamentally an internal detail of the RS. That use case is better managed via tokens that allow delegation (and also enable a better tracking that the second order delegation has been processed by the RS). That's one of the microservice implementations we've been discussing previously.

@Denisthemalice
Copy link
Author

The first text clearly mentions that the notion of a service is able to support two mechanisms instead of one.

  • an access token may be forwarded by one RS to another RS belonging to the same service, and
  • the client may re-use the access token at another RS belonging to the same service.

The first case could indeed be supported by asking a new access token, but the merits of this proposal
is precisely to avoid to request another access token.

Furthermore, this proposal avoids to consider RSs as clients from the point of view of the AS.
In terms of privacy, it has the advantage of keeping the AS ignorant from the fact that a RS is forwarding a request to another RS.

Don't forget that if the access token only contains some kinds of attributes, the AS can be kept ignorant of the identity of the RS.
This is an additional advantage in terms of privacy.

@jricher
Copy link
Collaborator

jricher commented Apr 14, 2021

The described process is already possible within GNAP (section 2.1), and the GNAP-RS extension created by #246 goes into greater depth on requesting resources and deriving tokens for internal requests as needed.

@jricher jricher added the Pending Close Issue will be closed unless there are changes to consensus label Apr 14, 2021
@Denisthemalice
Copy link
Author

This issue has been marked "Pending Close", however its content is important.

The mechanism described in section 2.1 is rather different and much more complex than supporting the concept of
a "service" supported by a set of RSs.

The two mechanisms can co-exist.

@jricher jricher closed this as completed Apr 21, 2021
@jricher jricher removed the Pending Close Issue will be closed unless there are changes to consensus label Apr 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants