-
Notifications
You must be signed in to change notification settings - Fork 15
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
JWT AC: Implement DPoP auth scheme #717
Comments
spec configuration:
spec implementation:
|
I always wanted to introduce bearer=true` as a shortcut for header=…. As they are mutually exclusive (I guess), we could add dpop=true` as a counterpart.
…________________________________
Von: Johannes Koch ***@***.***>
Gesendet: Wednesday, February 15, 2023 10:33:51 PM
An: avenga/couper ***@***.***>
Cc: Subscribed ***@***.***>
Betreff: Re: [avenga/couper] JWT AC: Implement DPoP auth scheme (Issue #717)
spec configuration:
* How to distinguish between "Bearer" auth scheme (header = "Authorization", default for jwt) and "DPoP" auth scheme?
* How to configure availability of both schemes (client can use either "Bearer" OR "DPoP") or only one of them?
spec implementation:
* Auth scheme "Bearer" is only a token source, "DPoP" would be both token source AND additional validation.
—
Reply to this email directly, view it on GitHub<#717 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AAD3OQTVOSCDBQPUS42R3ADWXVDT7ANCNFSM6AAAAAAU2PXOJE>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
There may be a use case to configure support for both Bearer and DPoP (see 7.2. Compatibility with the Bearer Authentication Scheme). So jwt "at" {
dpop = true
bearer = true
} would mean,
|
With the introduction of Separate issue for |
With the introduction of bearer = true, we could deprecate the special treatment for header = "Authorization" (extracting the token from the value following "Bearer ") and remove it later (treating all headers equally).
I think we can never remove it in 1.x.
But we should favour the `bearer` and `dpop` properties.
Separate issue for bearer = true?
yes.
|
:-(
See #720 for |
What about authorization = "bearer" # instead of bearer = true
# or
authorization = "dpop" # instead of dpop = true ? |
Hm, not sure if an authorization` attribute is so expressive in the JWT AC block. It stands next to Attributes like permission_map that actually deal with authorization.
And wouldn’t it also forbid the edge case of having both bearer and dpop on one request? Although I’m unsure if that would actually work.
…________________________________
Von: Johannes Koch ***@***.***>
Gesendet: Monday, February 20, 2023 11:05:32 PM
An: avenga/couper ***@***.***>
Cc: Felix Hassert ***@***.***>; Comment ***@***.***>
Betreff: Re: [avenga/couper] JWT AC: Implement DPoP auth scheme (Issue #717)
What about
authorization = "bearer" # instead of bearer = true
# or
authorization = "dpop" # instead of dpop = true
?
—
Reply to this email directly, view it on GitHub<#717 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AAD3OQWJPPKMVHQGZZ6NTEDWYPTCZANCNFSM6AAAAAAU2PXOJE>.
You are receiving this because you commented.Message ID: ***@***.***>
|
Yep,
Having both bearer and dpop on one request would have to be rejected by the RS, if I remember correctly. But an RS supporting both bearer and dpop is possible, so that clients can use either bearer or dpop. That would require the single attribute to be able to have both values (e.g. |
For JWT (and reference token) access controls
Currently still in draft stage, but seems quite stable: Demonstrating Proof-of-Possession at the Application Layer (DPoP) is a method to sender-constrain an access token, so that only the party the token was issued for (by the AS) can use it (at the RS); whereas a bearer token can be used by anyone holding it.
e.g.
The DPoP proof (sent in the
DPoP
request header) is a JWT structure signed with a private key, containing among othersjwk
JOSE header parameter containing the corresponding public keyand the following claims:
htm
- the HTTP method of the current (resource) requesthtu
- the HTTP URI value for the current (resource) requestath
- the base64url encoding of the SHA-256 hash of the access token valuee.g.
The access token presented at the RS must contain the public key confirmation:
cnf
- with ajkt
property containing the JWK SHA-256 thumbprint of the public key included in the DPoP proof'sjwk
headere.g.
The text was updated successfully, but these errors were encountered: