Commit 73fa16c6 authored by William Tucker's avatar William Tucker
Browse files

Added ESGF IDP Proxy image

parent 6a1cafb8
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
#####
## Docker image for the ESGF IDP Proxy Keycloak service
#####

ARG ESGF_REPOSITORY_BASE=esgfdeploy
ARG ESGF_IMAGES_VERSION=latest

ARG THEME_GIT_REPOSITORY=https://github.com/ESGF/esgf-idp-proxy-theme
ARG THEME_GIT_VERSION=0.1
ARG THEME_NAME=esgf


FROM ${ESGF_REPOSITORY_BASE}/base:${ESGF_IMAGES_VERSION} as theme-source

# Install Git and clone the theme repository
RUN yum makecache && yum install -y git && yum clean all
RUN git clone --single-branch --b $THEME_GIT_VERSION $THEME_GIT_REPOSITORY /source


FROM ${ESGF_REPOSITORY_BASE}/keycloak:${ESGF_IMAGES_VERSION}

# Install Keycloak theme from the theme-source stage
ARG THEME_NAME
COPY --from=theme-source /source/theme/$THEME_NAME \
        /opt/jboss/keycloak/themes/$THEME_NAME
# Setup custom realm import
COPY realm.json /opt/jboss/deploy/realm.json
ENV KEYCLOAK_IMPORT /opt/jboss/deploy/realm.json
+139 −0
Original line number Diff line number Diff line
{
    "id": "esgf",
    "realm": "esgf",
    "notBefore": 0,
    "revokeRefreshToken": false,
    "refreshTokenMaxReuse": 0,
    "accessTokenLifespan": 300,
    "accessTokenLifespanForImplicitFlow": 900,
    "ssoSessionIdleTimeout": 1800,
    "ssoSessionMaxLifespan": 36000,
    "ssoSessionIdleTimeoutRememberMe": 0,
    "ssoSessionMaxLifespanRememberMe": 0,
    "offlineSessionIdleTimeout": 2592000,
    "offlineSessionMaxLifespanEnabled": false,
    "offlineSessionMaxLifespan": 5184000,
    "clientSessionIdleTimeout": 0,
    "clientSessionMaxLifespan": 0,
    "clientOfflineSessionIdleTimeout": 0,
    "clientOfflineSessionMaxLifespan": 0,
    "accessCodeLifespan": 60,
    "accessCodeLifespanUserAction": 300,
    "accessCodeLifespanLogin": 1800,
    "actionTokenGeneratedByAdminLifespan": 43200,
    "actionTokenGeneratedByUserLifespan": 300,
    "enabled": true,
    "sslRequired": "external",
    "registrationAllowed": true,
    "registrationEmailAsUsername": false,
    "rememberMe": true,
    "verifyEmail": true,
    "loginWithEmailAllowed": true,
    "duplicateEmailsAllowed": false,
    "resetPasswordAllowed": true,
    "editUsernameAllowed": false,
    "bruteForceProtected": false,
    "permanentLockout": false,
    "maxFailureWaitSeconds": 900,
    "minimumQuickLoginWaitSeconds": 60,
    "waitIncrementSeconds": 60,
    "quickLoginCheckMilliSeconds": 1000,
    "maxDeltaTimeSeconds": 43200,
    "failureFactor": 30,
    "defaultRoles": [
        "offline_access",
        "uma_authorization"
    ],
    "requiredCredentials": [
        "password"
    ],
    "passwordPolicy": "notUsername(undefined) and passwordHistory(3) and length(8)",
    "otpPolicyType": "totp",
    "otpPolicyAlgorithm": "HmacSHA1",
    "otpPolicyInitialCounter": 0,
    "otpPolicyDigits": 6,
    "otpPolicyLookAheadWindow": 1,
    "otpPolicyPeriod": 30,
    "otpSupportedApplications": [
        "FreeOTP",
        "Google Authenticator"
    ],
    "webAuthnPolicyRpEntityName": "keycloak",
    "webAuthnPolicySignatureAlgorithms": [
        "ES256"
    ],
    "webAuthnPolicyRpId": "",
    "webAuthnPolicyAttestationConveyancePreference": "not specified",
    "webAuthnPolicyAuthenticatorAttachment": "not specified",
    "webAuthnPolicyRequireResidentKey": "not specified",
    "webAuthnPolicyUserVerificationRequirement": "not specified",
    "webAuthnPolicyCreateTimeout": 0,
    "webAuthnPolicyAvoidSameAuthenticatorRegister": false,
    "webAuthnPolicyAcceptableAaguids": [],
    "webAuthnPolicyPasswordlessRpEntityName": "keycloak",
    "webAuthnPolicyPasswordlessSignatureAlgorithms": [
        "ES256"
    ],
    "webAuthnPolicyPasswordlessRpId": "",
    "webAuthnPolicyPasswordlessAttestationConveyancePreference": "not specified",
    "webAuthnPolicyPasswordlessAuthenticatorAttachment": "not specified",
    "webAuthnPolicyPasswordlessRequireResidentKey": "not specified",
    "webAuthnPolicyPasswordlessUserVerificationRequirement": "not specified",
    "webAuthnPolicyPasswordlessCreateTimeout": 0,
    "webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister": false,
    "webAuthnPolicyPasswordlessAcceptableAaguids": [],
    "browserSecurityHeaders": {
        "contentSecurityPolicyReportOnly": "",
        "xContentTypeOptions": "nosniff",
        "xRobotsTag": "none",
        "xFrameOptions": "SAMEORIGIN",
        "contentSecurityPolicy": "frame-src 'self'; frame-ancestors 'self'; object-src 'none';",
        "xXSSProtection": "1; mode=block",
        "strictTransportSecurity": "max-age=31536000; includeSubDomains"
    },
    "smtpServer": {},
    "loginTheme": "esgf",
    "accountTheme": "esgf",
    "eventsEnabled": false,
    "eventsListeners": [
        "jboss-logging"
    ],
    "enabledEventTypes": [],
    "adminEventsEnabled": false,
    "adminEventsDetailsEnabled": false,
    "internationalizationEnabled": true,
    "supportedLocales": [
        "de",
        "no",
        "ru",
        "sv",
        "pt-BR",
        "lt",
        "en",
        "it",
        "fr",
        "zh-CN",
        "es",
        "cs",
        "ja",
        "sk",
        "pl",
        "ca",
        "nl",
        "tr"
    ],
    "defaultLocale": "en",
    "browserFlow": "browser",
    "registrationFlow": "registration",
    "directGrantFlow": "direct grant",
    "resetCredentialsFlow": "reset credentials",
    "clientAuthenticationFlow": "clients",
    "dockerAuthenticationFlow": "docker auth",
    "attributes": {
        "clientOfflineSessionMaxLifespan": "0",
        "clientSessionIdleTimeout": "0",
        "clientSessionMaxLifespan": "0",
        "clientOfflineSessionIdleTimeout": "0"
    },
    "userManagedAccessAllowed": false
}
 No newline at end of file