diff --git a/.env.example b/.env.example index 4f594547..515816ca 100644 --- a/.env.example +++ b/.env.example @@ -313,6 +313,25 @@ IDP_DOMAIN= IDP_ISSUER_URL= # Url of the account edit page from your Identity Provider. IDP_ACCOUNT_URL= +# Global Client ID, you can overwrite it by defining a client specific client id +OC_OIDC_CLIENT_ID="{{ item.oc_oidc_client_id }}" +# Declares which property should be used for the oidc claim +PROXY_ROLE_ASSIGNMENT_OIDC_CLAIM="roles" +# claim_role to opencloud mapping +OC_OIDC_CLIENT_SCOPES="openid profile email roles offline_access" +# Unfortunetely needed at the moment (be careful to set it to none in prod) +# PROXY_OIDC_ACCESS_TOKEN_VERIFY_METHOD=none +# Allow OpenCloud, to show Authentik Login-Frame +PROXY_CSP_CONFIG_FILE_LOCATION="/etc/ocis/csp.yaml" +# Client specific environment vars +#WEBFINGER_WEB_OIDC_CLIENT_ID= +#WEBFINGER_WEB_OIDC_CLIENT_SCOPES= +#WEBFINGER_IOS_OIDC_CLIENT_ID= +#WEBFINGER_IOS_OIDC_CLIENT_SCOPES= +#WEBFINGER_ANDROID_OIDC_CLIENT_ID= +#WEBFINGER_ANDROID_OIDC_CLIENT_SCOPES= +#WEBFINGER_DESKTOP_OIDC_CLIENT_ID= +#WEBFINGER_DESKTOP_OIDC_CLIENT_SCOPES= ## Shared User Directory Mode ## # Use together with idm/ldap-keycloak.yml and traefik/ldap-keycloak.yml diff --git a/idm/external-idp.yml b/idm/external-idp.yml index ff8a6a42..60c84a24 100644 --- a/idm/external-idp.yml +++ b/idm/external-idp.yml @@ -14,7 +14,17 @@ services: GRAPH_LDAP_REFINT_ENABLED: "true" # osixia has refint enabled. FRONTEND_READONLY_USER_ATTRIBUTES: "user.onPremisesSamAccountName,user.displayName,user.mail,user.passwordProfile,user.accountEnabled,user.appRoleAssignments" PROXY_OIDC_REWRITE_WELLKNOWN: "true" - WEB_OIDC_CLIENT_ID: ${OC_OIDC_CLIENT_ID:-web} + OC_OIDC_CLIENT_ID: ${OC_OIDC_CLIENT_ID:-web} + OC_OIDC_CLIENT_SCOPES: ${PROXY_ROLE_ASSIGNMENT_OIDC_CLAIM:-openid profile email roles offline_access} + PROXY_ROLE_ASSIGNMENT_OIDC_CLAIM: ${PROXY_ROLE_ASSIGNMENT_OIDC_CLAIM:-roles} + WEBFINGER_WEB_OIDC_CLIENT_ID: ${WEBFINGER_WEB_OIDC_CLIENT_ID:-${OC_OIDC_CLIENT_ID}} + WEBFINGER_WEB_OIDC_CLIENT_SCOPES: ${WEBFINGER_WEB_OIDC_CLIENT_SCOPES:-${OC_OIDC_CLIENT_SCOPES}} + WEBFINGER_ANDROID_OIDC_CLIENT_ID: ${WEBFINGER_ANDROID_OIDC_CLIENT_ID:-${OC_OIDC_CLIENT_ID}} + WEBFINGER_ANDROID_OIDC_CLIENT_SCOPES: ${WEBFINGER_ANDROID_OIDC_CLIENT_SCOPES:-${OC_OIDC_CLIENT_SCOPES}} + WEBFINGER_IOS_OIDC_CLIENT_ID: ${WEBFINGER_IOS_OIDC_CLIENT_ID:-${OC_OIDC_CLIENT_ID}} + WEBFINGER_IOS_OIDC_CLIENT_SCOPES: ${WEBFINGER_IOS_OIDC_CLIENT_SCOPES:-${OC_OIDC_CLIENT_SCOPES}} + WEBFINGER_DESKTOP_OIDC_CLIENT_ID: ${WEBFINGER_DESKTOP_OIDC_CLIENT_ID:-${OC_OIDC_CLIENT_ID}} + WEBFINGER_DESKTOP_OIDC_CLIENT_SCOPES: ${WEBFINGER_DESKTOP_OIDC_CLIENT_SCOPES:-${OC_OIDC_CLIENT_SCOPES}} PROXY_ROLE_ASSIGNMENT_DRIVER: "oidc" OC_OIDC_ISSUER: ${IDP_ISSUER_URL:-https://keycloak.opencloud.test/realms/openCloud} # This specifies to start all services except idm and idp. These are replaced by external services. @@ -45,6 +55,8 @@ services: WEB_OPTION_ACCOUNT_EDIT_LINK_HREF: ${IDP_ACCOUNT_URL} ldap-server: image: bitnamilegacy/openldap:2.6 + # Bitnami images require GID 0 to write to internal socket and PID directories + user: ${LDAP_UID_GID:-1000:0} networks: opencloud-net: entrypoint: [ "/bin/sh", "/opt/bitnami/scripts/openldap/docker-entrypoint-override.sh", "/opt/bitnami/scripts/openldap/run.sh" ]