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

V51 - Requirements for dynamic client registration #2427

Open
randomstuff opened this issue Dec 1, 2024 · 12 comments
Open

V51 - Requirements for dynamic client registration #2427

randomstuff opened this issue Dec 1, 2024 · 12 comments
Labels
1) Discussion ongoing Issue is opened and assigned but no clear proposal yet V51 Group issues related to OAuth _5.0 - prep This needs to be addressed to prepare 5.0

Comments

@randomstuff
Copy link
Contributor

randomstuff commented Dec 1, 2024

We currently don't have anything to say about dynamic client registration. Should this be covered somehow?

Suggestions:

Verify that if the client supports dynamic client registration on unknown authorization servers, it mitigates the risk of malicious authorization server. It MUST ensure the user's consent and warn the user before initiating an authorization request with an untrusted authorization server.

Verify that if the authorization server supports unauthenticated dynamic client registration, it mitigates the risk of malicious client applications. It MUST ensure the user's consent and warn the user before processing an authorization request with an untrusted client application.

@tghosth tghosth added 1) Discussion ongoing Issue is opened and assigned but no clear proposal yet _5.0 - prep This needs to be addressed to prepare 5.0 V51 Group issues related to OAuth labels Dec 2, 2024
@elarlang
Copy link
Collaborator

elarlang commented Dec 2, 2024

@randomstuff - note that the first proposed requirement seems unfiinishsed.

@randomstuff
Copy link
Contributor Author

Fixed :)

@TobiasAhnoff
Copy link

A suggestion is to add "metadata validation" to the second requirement, like this

Verify that if the authorization server supports unauthenticated dynamic client registration, it mitigates the risk of malicious client applications. It MUST validate client metadata such as any registered URIs, ensure the user's consent and warn the user before processing an authorization request with an untrusted client application.

@randomstuff
Copy link
Contributor Author

randomstuff commented Dec 4, 2024

Ne proposition for the first one:

Verify that if the client supports dynamic client registration to dynamically discovered authorization servers, it mitigates the risk of interacting with malicious authorization servers. The authorization server client MUST ensure the user's consent and warn the user before initiating an authorization request with such authorization server not known to be trusted by the user.

"dynamically discovered" is not so great. I mean that the authorization server is provisioned by the user, or by the interaction with some resource server as opposed to already known in configuration / provisioned by the admin.

Maybe this is better (?):

Verify that if the client supports dynamic client registration to dynamically registered authorization servers, it mitigates the risk of interacting with malicious authorization servers. The authorization server client MUST ensure the user's consent and warn the user before initiating an authorization request with such authorization server not known to be trusted by the user.

" dynamic client registration to dynamically registered authorization servers" seems somewhat weird.

Edit: I messed up my copy/paste when making editing the requirements 😄 fixed "authorization server" → "client"

@elarlang
Copy link
Collaborator

elarlang commented Dec 5, 2024

Verify that if the client supports dynamic client registration

This feels like a loop.

@randomstuff
Copy link
Contributor Author

This feels like a loop.

Yes, the wording is quite redundant 😄. The intent was to make clear that we are talking about "OAuth dynamic client registration" (the protocol).

But actually, this would apply even if a custom/different client registration protocol was used so we can probably simplify to: "Verify that if the client supports registration to dynamically registered authorization servers"

@randomstuff
Copy link
Contributor Author

This requirement is related (and possibly somewhat redundant) to:

50.8.1 [ADDED, SPLIT FROM 5.1.5] Verify that the application shows a notification when the user is being redirected to a URL outside of the application's control, with an option to cancel the navigation.

@TobiasAhnoff
Copy link

This requirement is related (and possibly somewhat redundant)

Yes, they seem redundant, 50.8.1 could also be written in the same language as purposed here (but without OAuth terms), perhaps like this

Verify that if the client application supports redirection to servers outside of the application's control (not known to be trusted by the user), it mitigates the risk of interacting with malicious servers. The client MUST warn or notify, with an option to cancel the navigation, before initiating the request with such a server.

I suggest to only have 50.8.1 (perhaps updated with text suggested here, if so, open an issue for that) and one new requirement for dynamic client registration

Verify that if the authorization server supports unauthenticated dynamic client registration, it mitigates the risk of malicious client applications. It MUST validate client metadata such as any registered URIs, ensure the user's consent and warn the user before processing an authorization request with an untrusted client application.

@randomstuff
Copy link
Contributor Author

@TobiasAhnoff, that makes sens to only have 50.8.1. In this case, shall we include a note in the OAuth chapter referencing to 50.8.1? Something like:

See as well 50.8.1: it applies to client applications redirecting to untrusted authorization servers.

@TobiasAhnoff
Copy link

shall we include a note?

Yes, I think it would be good to note in chapter/section text for the OAuth chapter

@elarlang
Copy link
Collaborator

I think the context for the requirements are quite different and I don't see them as clear duplicates. Or I miss something here?

@randomstuff
Copy link
Contributor Author

@elarlang, if 50.8.1 is reformulate like #2427 (comment), it could subsume the first proposed requirement.

I am not sure if it is better to do that or to include the proposed requirement, however.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1) Discussion ongoing Issue is opened and assigned but no clear proposal yet V51 Group issues related to OAuth _5.0 - prep This needs to be addressed to prepare 5.0
Projects
None yet
Development

No branches or pull requests

4 participants