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

Introduce Resource Indicators #96

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Introduce Resource Indicators #96

wants to merge 3 commits into from

Conversation

dshanske
Copy link
Member

@dshanske dshanske commented Sep 24, 2021

Attempts to introduce resource indicators to the spec, as proposed in #82 to address #83(which is specific to ticket auth. Hoping to discuss this at the upcoming Popup.

This adds a parameter, resource, that indicates the target service(s) or resource(s) to which access is being requested. This is a contrast to scope, which talks about access permissions, not what those permissions are accessing. A request could therefore have a resource parameter, a scope parameter, or both. But if neither are requested, no token would be issued.

In the proposed Ticket Auth extension to IndieAuth, for example, a publisher would send a ticket to a potential consumer with the resource parameter, then the potential consumer would redeem the ticket for a resource restricted token, only allowing access to private items under that base URL.

public/source/index.php Outdated Show resolved Hide resolved
Copy link
Contributor

@jamietanna jamietanna left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good - I guess we don't need to have anything around how i.e. resource=https://api.example.com/ allows access to https://api.example.com/micropub and https://api.example.com/notify, as it's already in RFC8707?

@dshanske
Copy link
Member Author

Needs to add that scope or resource are optional, but scope is not mandatory if resource provided.

@dshanske dshanske added this to the October 2021 milestone Oct 16, 2021
@dshanske
Copy link
Member Author

@jamietanna Can you check this again now that I've noted that scope is not required if resource is present and such?

@dshanske
Copy link
Member Author

dshanske commented Nov 5, 2021

Refreshed from main.

Copy link
Contributor

@jamietanna jamietanna left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Do we want to have a worked example for what a resource would look like for restricting access?

@dshanske
Copy link
Member Author

dshanske commented Nov 6, 2021

Looks good! Do we want to have a worked example for what a resource would look like for restricting access?

Can you elaborate? Not sure what that looks like.

@aaronpk
Copy link
Member

aaronpk commented Nov 6, 2021

I do think we should make sure there is a clear path to using this for Ticket Auth before bringing it into the spec. My recollection is that is the primary use case driving this, and that this is a prerequisite for using it in the Ticket Auth extension. Even so, I don't think it's a good idea to bring this in until there is a clear plan for how to use it in an extension. And even then, perhaps it makes more sense to keep it in an extension.

@dshanske
Copy link
Member Author

dshanske commented Nov 6, 2021

I agree with the statement this should remain outside the spec until later.

@dshanske dshanske removed this from the October 2021 milestone Nov 11, 2021
Copy link
Member

@aaronpk aaronpk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are going to hold off on this until there is a more concrete use case

@dshanske
Copy link
Member Author

Agreed, that's why I removed it from the milestone

@bb010g
Copy link

bb010g commented May 3, 2022

Would OAuth 2.0 Rich Authorization Requests address the non-ticket use cases brought up here? For example, figure 1 from draft 11 shows the common data field locations in use:

{
   "type": "payment_initiation",
   "locations": [
      "https://example.com/payments"
   ],
   "instructedAmount": {
      "currency": "EUR",
      "amount": "123.50"
   },
   "creditorName": "Merchant A",
   "creditorAccount": {
      "iban": "DE02100100109307118603"
   },
   "remittanceInformationUnstructured": "Ref Number Merchant"
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

4 participants