feat: register OIDC clients from config file
This commit is contained in:
parent
61ca3063ca
commit
eeb09321e2
2 changed files with 66 additions and 0 deletions
|
|
@ -56,6 +56,20 @@ async def lifespan(app: FastAPI) -> AsyncIterator[None]:
|
|||
oidc_server = create_oidc_server(settings)
|
||||
app.state.oidc_server = oidc_server
|
||||
|
||||
# Register configured clients
|
||||
for client_id, client_cfg in settings.clients.items():
|
||||
oidc_server.context.cdb[client_id] = {
|
||||
"client_id": client_id,
|
||||
"client_secret": client_cfg.client_secret,
|
||||
"redirect_uris": [(uri, {}) for uri in client_cfg.redirect_uris],
|
||||
"response_types_supported": client_cfg.response_types,
|
||||
"token_endpoint_auth_method": client_cfg.token_endpoint_auth_method,
|
||||
"scope": client_cfg.scope,
|
||||
"allowed_scopes": client_cfg.scope,
|
||||
"client_salt": secrets.token_hex(8),
|
||||
}
|
||||
oidc_server.keyjar.add_symmetric(client_id, client_cfg.client_secret)
|
||||
|
||||
# Register management client
|
||||
manage_secret = settings.session_secret or secrets.token_hex(32)
|
||||
oidc_server.context.cdb[settings.manage_client_id] = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue