From 7e13e251f8474367c36e82835cc05e28e1e9f8a4 Mon Sep 17 00:00:00 2001 From: djuarezgf <46350150+djuarezgf@users.noreply.github.com> Date: Tue, 22 Jul 2025 11:34:49 +0200 Subject: [PATCH] feat: migrate PSP to Authentik (#329) --- ccp/modules/id-management-compose.yml | 13 ++++++++----- ccp/modules/id-management-setup.sh | 2 ++ ccp/vars | 1 + 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ccp/modules/id-management-compose.yml b/ccp/modules/id-management-compose.yml index 4e3e90a..86c6a96 100644 --- a/ccp/modules/id-management-compose.yml +++ b/ccp/modules/id-management-compose.yml @@ -14,6 +14,7 @@ services: MAGICPL_CONNECTOR_APIKEY: ${IDMANAGER_READ_APIKEY} MAGICPL_CENTRAL_PATIENTLIST_APIKEY: ${IDMANAGER_CENTRAL_PATIENTLIST_APIKEY} MAGICPL_CONTROLNUMBERGENERATOR_APIKEY: ${IDMANAGER_CONTROLNUMBERGENERATOR_APIKEY} + MAGICPL_OIDC_PROVIDER: ${OIDC_PRIVATE_URL} depends_on: - patientlist - traefik-forward-auth @@ -71,12 +72,14 @@ services: - https_proxy=http://forward_proxy:3128 - OAUTH2_PROXY_PROVIDER=oidc - OAUTH2_PROXY_SKIP_PROVIDER_BUTTON=true - - OAUTH2_PROXY_OIDC_ISSUER_URL=https://login.verbis.dkfz.de/realms/master - - OAUTH2_PROXY_CLIENT_ID=bridgehead-${SITE_ID} - - OAUTH2_PROXY_CLIENT_SECRET=${IDMANAGER_AUTH_CLIENT_SECRET} + - OAUTH2_PROXY_OIDC_ISSUER_URL=${OIDC_PRIVATE_URL} + - OAUTH2_PROXY_CLIENT_ID=${OIDC_PRIVATE_CLIENT_ID} + - OAUTH2_PROXY_CLIENT_SECRET=${OIDC_CLIENT_SECRET} - OAUTH2_PROXY_COOKIE_SECRET=${IDMANAGER_AUTH_COOKIE_SECRET} - OAUTH2_PROXY_COOKIE_NAME=_BRIDGEHEAD_oauth2_idm - OAUTH2_PROXY_COOKIE_DOMAINS=.${HOST} + - OAUTH2_PROXY_COOKIE_REFRESH=4m + - OAUTH2_PROXY_COOKIE_EXPIRE=24h - OAUTH2_PROXY_HTTP_ADDRESS=:4180 - OAUTH2_PROXY_REVERSE_PROXY=true - OAUTH2_PROXY_WHITELIST_DOMAINS=.${HOST} @@ -87,8 +90,8 @@ services: - OAUTH2_PROXY_SET_AUTHORIZATION_HEADER=true - OAUTH2_PROXY_SET_XAUTHREQUEST=true # Keycloak has an expiration time of 60s therefore oauth2-proxy needs to refresh after that - - OAUTH2_PROXY_COOKIE_REFRESH=60s - - OAUTH2_PROXY_ALLOWED_GROUPS=DKTK-CCP-PPSN + - OAUTH2_PROXY_ALLOWED_GROUPS=${OIDC_PSP_GROUP} + - OAUTH2_PROXY_OIDC_GROUPS_CLAIM=${OIDC_GROUP_CLAIM} - OAUTH2_PROXY_PROXY_PREFIX=/oauth2-idm labels: - "traefik.enable=true" diff --git a/ccp/modules/id-management-setup.sh b/ccp/modules/id-management-setup.sh index 333b512..a764459 100644 --- a/ccp/modules/id-management-setup.sh +++ b/ccp/modules/id-management-setup.sh @@ -14,6 +14,8 @@ function idManagementSetup() { # Ensure old ids are working !!! export IDMANAGEMENT_FRIENDLY_ID=$(legacyIdMapping "$SITE_ID") + + add_private_oidc_redirect_url "/oauth2-idm/callback" fi } diff --git a/ccp/vars b/ccp/vars index 8284476..2377b83 100644 --- a/ccp/vars +++ b/ccp/vars @@ -10,6 +10,7 @@ BROKER_URL_FOR_PREREQ=$BROKER_URL OIDC_USER_GROUP="DKTK_CCP_$(capitalize_first_letter ${SITE_ID})" OIDC_ADMIN_GROUP="DKTK_CCP_$(capitalize_first_letter ${SITE_ID})_Verwalter" +OIDC_PSP_GROUP="DKTK_CCP_$(capitalize_first_letter ${SITE_ID})_PSP" OIDC_PRIVATE_CLIENT_ID=${SITE_ID}-private OIDC_PUBLIC_CLIENT_ID=${SITE_ID}-public OIDC_URL="https://sso.verbis.dkfz.de/application/o/${OIDC_PUBLIC_CLIENT_ID}/"