Rename scopes= to scope= on the client-credentials OAuth providers (#3166)
This commit is contained in:
parent
5dd062d077
commit
e90a66b554
2 changed files with 34 additions and 18 deletions
|
|
@ -112,7 +112,7 @@ A nightly job, a CI step, another service. There is no browser and nobody to cli
|
|||
What changed:
|
||||
|
||||
* No `OAuthClientMetadata`, no handlers. You pass `client_id` and `client_secret`; the provider builds a minimal `client_credentials` registration around them and skips dynamic registration entirely.
|
||||
* `scopes` is a space-separated string, the OAuth wire format.
|
||||
* `scope` is a space-separated string, the OAuth wire format.
|
||||
* Everything downstream is identical: the same `TokenStorage`, the same `httpx2.AsyncClient(auth=...)`, the same `streamable_http_client`.
|
||||
|
||||
By default the secret travels as HTTP Basic auth on the token request (`client_secret_basic`). Pass `token_endpoint_auth_method="client_secret_post"` to put it in the form body instead. Some authorization servers only accept one of the two.
|
||||
|
|
|
|||
|
|
@ -1975,6 +1975,22 @@ async def callback_handler() -> AuthorizationCodeResult:
|
|||
|
||||
Forward the `iss` query parameter from the redirect so the validation can run: omitting it makes the flow fail with `OAuthFlowError` against servers that advertise `authorization_response_iss_parameter_supported`, and silently skips the check for servers that send `iss` without advertising it.
|
||||
|
||||
### `scopes=` renamed to `scope=` on the client-credentials providers
|
||||
|
||||
`ClientCredentialsOAuthProvider` and `PrivateKeyJWTOAuthProvider` took the requested scope as a keyword named `scopes`, even though the value is a single space-separated string, not a list. The parameter is now `scope`, matching the RFC 6749 wire parameter, `OAuthClientMetadata.scope`, and the newer `IdentityAssertionOAuthProvider`.
|
||||
|
||||
**Before (v1):**
|
||||
|
||||
```python
|
||||
ClientCredentialsOAuthProvider(..., scopes="read write")
|
||||
```
|
||||
|
||||
**After (v2):**
|
||||
|
||||
```python
|
||||
ClientCredentialsOAuthProvider(..., scope="read write")
|
||||
```
|
||||
|
||||
### Client rejects authorization server metadata with a mismatched `issuer`
|
||||
|
||||
During OAuth discovery, `OAuthClientProvider` now validates that the authorization server
|
||||
|
|
|
|||
Loading…
Reference in a new issue