api: implement automatic ssh key fetching from keycloak
All checks were successful
Build Container / Build Container (push) Successful in 1m26s
All checks were successful
Build Container / Build Container (push) Successful in 1m26s
This commit is contained in:
parent
279a45a9e8
commit
914a4497c7
6 changed files with 111 additions and 0 deletions
|
|
@ -13,6 +13,7 @@ from aiohttp import BasicAuth
|
|||
|
||||
from dooris_api import deps, models, exceptions, app_config
|
||||
from dooris_api.ccujack import CCUJackClient
|
||||
from dooris_api.keycloak import KeycloakClient
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
|
@ -37,9 +38,18 @@ async def lifespan(app: FastAPI):
|
|||
)
|
||||
await app.extra["ccujack"].start()
|
||||
|
||||
app.extra["keycloak"] = KeycloakClient(
|
||||
base_uri=app_cfg.openid_issuer,
|
||||
oidc_client=app.extra["oidc_client"],
|
||||
keycloak_attribute_group=app_cfg.kc_ssh_attr_group,
|
||||
authorized_keys_file=app_cfg.authorized_keys_file,
|
||||
)
|
||||
app.extra["keycloak"].start()
|
||||
|
||||
yield
|
||||
|
||||
await app.extra["ccujack"].close_connections()
|
||||
await app.extra["keycloak"].stop()
|
||||
|
||||
|
||||
app = FastAPI(
|
||||
|
|
|
|||
Loading…
Reference in a new issue