-
Notifications
You must be signed in to change notification settings - Fork 7
Client Registration issue with Bearer Header/Body #54
Comments
What does the token contain ? |
Yeah, this is why I would like to use Bearer header token, so that a user agent can register a new client. |
What kind of token and what does it contain if anything ? |
Just an ordinary access token issued through another client. |
What ? Do I get this right ? |
So let's say we have a client A and user X. We are the OP, we trust user X and we would like to allow her to register a new client B. So user X goes to client A and authenticates with us. She then (through A, who supports this functionality) registers the new client B. So A issued a POST to us, using Bearer ******** as an authorization header, where ******** the access token for X. I can already achieve this by writing a custom authentication class:
To make the use case clearer we could extend this to use the user info attributes and check if a user's specific claim/attribute has the value we want, so only then we allow the registration of a new client. |
That's what I have in mind at least, I hope it makes (a bit) sense. |
I don't think we reached an agreement on this issue. |
@angelakis please let us know if you can continue this thread, feel free to close It, I'm not aware if It Is something that would drive us to a conclusion. Share your thought if possible |
I believe that the client registration should be able to use the BearerHeader client_authn_method for simple authentication.
However, if configured to use it, it never checks the token as there is no get_client_id_from_token method implemented in oidcendpoint/oidc/registration.py. The method is called here
oidcendpoint/src/oidcendpoint/client_authn.py
Line 370 in 3192e60
As a result it returns "" and no exception is raised.
I tried implementing a get_client_id_from_token method similarly to userinfo's one, but then there's a problem with unauthenticated registration as the No token exception is raised, because it cannot find a client_id in the request (correctly) and there is a get_client_id_from_token implemented. I think the last check should be corrected.
oidcendpoint/src/oidcendpoint/client_authn.py
Line 363 in 3192e60
The text was updated successfully, but these errors were encountered: