-
-
Notifications
You must be signed in to change notification settings - Fork 671
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
review V51.4.3 #2183
Comments
I suggest to simplify this a bit, like this
Note that this also includes 51.4.4 (see #2182) so a suggestion is to remove that. Maybe this should rewritten, to not mention the OAuth term Resource Server and be moved from OAuth to V4-Authorization?
|
Related comment: #2181 (comment) It is not clear what is the unique security problem to solve. This requirement ask to use information from the access token and to be used for authorization decisions correctly. ping @randomstuff |
Yes. The use case would be to obtain a access token for a (possibly low impact) scope such as "get_profile" from the authorization server and be able to it for a unrelated (and possibly high impact) endpoint such as "/download_private_albums". Is is already covered somewhere else? I find 51.4.3 too long and difficult to read (and contrast with 51.4.2), can we simplify it as:
|
We could have this, or perhaps?
But I think this is covered by 4.1.1 (trusted service layer = resource server), 4.1.3 (function level = action) and 4.2.1 (object level = resource). So perhaps this could be removed? Or should this be rewritten to more clearly also address fine grained RAR-scenarios, where an access token could be made valid for a single operation, e g "transfer 100 EUR from account A to account B", by validating the authorization_details parameter?
This would be for L3 |
Can this be simplified as:
Yes, I don't know whether (and under which circumstances, if any) specific requirements about specific topics must be kept when they are already covered about very general requirements. |
Maybe having a strong link and mention in the OAuth chapter (or in the resource server section) text towards the authorization chapter is enough? To say that "Applying the content from access token is covered by requirements on the authorization paragraph" |
To reference both V4 and have a requirement for verifying RAR (or other details and specific scope token data) we write this as:
(if the Access-toen JWT section is moved to V13, see #1917 (comment)) |
The intended action here is not denying access token. Also we don't use references to other sections and requirements in a requirement text. I think we can cover it all by abstract requirement: "Verify that resources server following delegated authorization rules from resources claim when making authorization decisions." |
Round and ping vol n+1:
|
There is no
Shouldn't |
Boah, I took it from the original proposal too literally.
update: ... but if there nothing OAuth specific anymore, we can just add this requirement to V4 as well. Just an option, not yet a recommendation, or looping back, maybe proposal in #2183 (comment) is enogh. |
Yes, it would probably be good. Would it make sense to include some notes in the OAuth chapter hinting that some (important) subsections in other chapters are applicable? Something such as:
|
My idea was just to highlight, that:
But by nature it is covered by requirements in the authorization paragraph. So if we don't want to "duplicate it", we can just rely on the requirements in V4 and "hint" in the chapter text.
yes, #2183 (comment) |
So, to confirm and point out the expected actions:
|
I think it is good to point to e g V4.1 and only have OAuth specific things here. I´m not sure, but it think it might make sense to mention scope at some point and perhaps have something like this in a section text for 51.4 Resource server is responsible to enforce access control decisions based on delegated accesses in the access token, for that, authorization requirements apply and that are not duplicated here. If there are token properties that are part of user consent, e g 'scope', they shall be part of the decision. |
@TobiasAhnoff @randomstuff can we get proposed wording/changes here? |
The nuance that you want to convey here is tricky get through … What we want to say is (not a wording proposition): even if the resource server has received an access token for action X by user Y, it (usually) still need to check that user Y is allowed to do action X because the authorization server is (typically) not responsible for making this verification. i.e. the access token represents the fact that the user has consented to allow the client to act on the user's behalf for this action (authorization delegation) but (usually) does not represent the fact that the user is allowed to do the action (authorization decision). Question: is it "usually"? Is it legitimate to have an architecture where the AS is responsible for authorization decision? To formulate it another way: is it legit to have access tokens which represent an authorization decision (where the resource server would not have a need, or would not have a way to take this decision)? I think we would have to find a more explicit formulation about this because it will be easy to read the wording the wrong way. |
We could leave scope out, it is included in "enforce access control decisions based on delegated accesses in the access token", but at the same time, since 51.4.2 mentions 'aud' and 51.4.4 mentions 'sub', it feels somewhat incomplete not to mention 'scope' in this section in some way...perhaps this is better?
Or we can just have
|
Never mind, Elar answered me, see my more accurate comment below: #2183 (comment) |
Latest proposal is still valid I think: #2183 (comment) |
Ok so all we need is to delete 51.4.3 and then we need proposed section text for V51 and for V4.1. @randomstuff @TobiasAhnoff do you have proposed text for V4.1 @randomstuff what do you think of Tobias's suggestion for V51? #2183 (comment) |
Lets decide this after some call or discussion, there are many ways how to handle it. |
You want to arrange a call with @TobiasAhnoff and @randomstuff ? |
We are going to update requirement V51.4.3 with the idea to list and highlight claims from access token that should be taken into account during authorization enforcement / decisions. Also mention custom claims. Something like:
Related sections texts we going to handle separately. |
@elarlang who is taking this on? @TobiasAhnoff? @randomstuff? |
@tghosth I will do a draft for chapter texts (in google doc), and V51.4.3 we will continue to work on here. |
How about this?
|
I find that "delegated access" is not very clear/explicit. I'm struggling to find a better correct formulation however. Some draft wording:
|
By content the requirement in a way duplicates V4 requirements and the main point I want to see this requirement as a separate requirement is to send the message "AS delegates the authorization ruleset and RS need to enforce it". The rest of it should be list of possible claims what can be used for authorization decisions on the RS side.
should vs must Do we want special highlight for this for some reason? I think it is covered by 4.2.5
|
A bit different proposal:
|
Yet another suggestion (I think the examples makes it clear what kind of claims we are talking about and good to have RAR last since the main claims to use are scope and sub)
or
|
|
How about this?
|
Almost there
|
In a way I would prefer "must", but authorization is hard! Just because sub or scope is present in the token doesn't mean that all resource servers must use them for authorization decisions in order to provide secure access to resources, the permission model is application specific and it might instead be based on just custom claims like 'role' or clientId etc. So that is why "should" was kept...
Given previous comment #2183 (comment) on "delegated access" I just wanted to try something without delegation (and make it as short as possible), and also 'roles' might not be relevant for all applications. But, if delegation is ok, then this would also work (replaced "permissions and roles" with "authorization", better?)
|
From the initial OAuth we have requirement:
Additionally to some formating improvements, we need to (re)validate the content, the need, the problem to solve and sections.
The text was updated successfully, but these errors were encountered: