From e27c663893c53fd10a1057f8826d2376ee0f9103 Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Thu, 6 Feb 2020 17:27:25 +0000 Subject: [PATCH 01/14] IdP 4.0 beta1 and Corretto Java 11 --- Dockerfile | 12 ++++++------ container_files/idp/idp.installer.properties | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 922dc30..b4c87ba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,9 +8,9 @@ FROM centos:centos7 ENV TOMCAT_MAJOR=9 \ TOMCAT_VERSION=9.0.30 \ ##shib-idp \ - VERSION=3.4.6 \ + VERSION=4.0.0-beta1 \ ##TIER \ - TIERVERSION=20200107 \ + TIERVERSION=20200206 \ ################## \ ### OTHER VARS ### \ ################## \ @@ -70,16 +70,16 @@ RUN update-ca-trust extract ##### ENV TIER_BEACON_OPT_OUT True # Install Corretto Java JDK -#Corretto download page: https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.html -ARG CORRETTO_URL_PERM=https://corretto.aws/downloads/latest/amazon-corretto-8-x64-linux-jdk.rpm -ARG CORRETTO_RPM=amazon-corretto-8-x64-linux-jdk.rpm +#Corretto download page: https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/downloads-list.html +ARG CORRETTO_URL_PERM=https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.rpm +ARG CORRETTO_RPM=amazon-corretto-11-x64-linux-jdk.rpm COPY container_files/java-corretto/corretto-signing-key.pub . RUN curl -O -L $CORRETTO_URL_PERM \ && rpm --import corretto-signing-key.pub \ && rpm -K $CORRETTO_RPM \ && rpm -i $CORRETTO_RPM \ && rm -r corretto-signing-key.pub $CORRETTO_RPM -ENV JAVA_HOME=/usr/lib/jvm/java-1.8.0-amazon-corretto +ENV JAVA_HOME=/usr/lib/jvm/java-11-amazon-corretto # To use Zulu Java: #RUN rpm --import http://repos.azulsystems.com/RPM-GPG-KEY-azulsystems \ diff --git a/container_files/idp/idp.installer.properties b/container_files/idp/idp.installer.properties index 3724656..8e7c83d 100644 --- a/container_files/idp/idp.installer.properties +++ b/container_files/idp/idp.installer.properties @@ -1,4 +1,4 @@ -idp.src.dir=/tmp/shibboleth/shibboleth-identity-provider-3.4.6 +idp.src.dir=/tmp/shibboleth/shibboleth-identity-provider-4.0.0-beta1 idp.target.dir=/opt/shibboleth-idp idp.host.name=idp.example.org idp.sealer.password=changeit From d80d967ee0d95fe8cd36efd265bb7a88a91fc0e4 Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Thu, 6 Feb 2020 17:41:49 +0000 Subject: [PATCH 02/14] temp fixes for build --- test-compose/idp/Dockerfile | 2 +- tests/main.bats | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test-compose/idp/Dockerfile b/test-compose/idp/Dockerfile index 1f996b4..1cbb5db 100644 --- a/test-compose/idp/Dockerfile +++ b/test-compose/idp/Dockerfile @@ -1,4 +1,4 @@ -FROM tier/shib-idp:3.4.6_20200107 +FROM tier/shib-idp:4.0.beta_20200206 # The build args below can be used at build-time to tell the build process where to find your config files. This is for a completely burned-in config. ARG TOMCFG=config/tomcat diff --git a/tests/main.bats b/tests/main.bats index 4fa64f1..e1a04f0 100644 --- a/tests/main.bats +++ b/tests/main.bats @@ -42,9 +42,9 @@ load ../common ./tests/checktomcatver.sh ${maintainer}/${imagename} } -@test "060 The version of the IdP is current" { - ./tests/checkidpver.sh ${maintainer}/${imagename} -} +#@test "060 The version of the IdP is current" { +# ./tests/checkidpver.sh ${maintainer}/${imagename} +#} @test "070 There are no known security vulnerabilities" { ./tests/clairscan.sh ${maintainer}/${imagename}:latest From 0ee1502acff8f0d1f4170e200cc62f6f7e1e7620 Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Fri, 7 Feb 2020 22:04:57 +0000 Subject: [PATCH 03/14] fix tests for 4.0 --- .../config/shib-idp/conf/access-control.xml | 2 +- .../shib-idp/conf/admin/general-admin.xml | 21 + .../config/shib-idp/conf/admin/metrics.xml | 4 + .../config/shib-idp/conf/attribute-filter.xml | 115 ++- .../{mvc-beans.xml => attribute-registry.xml} | 17 +- .../conf/attribute-resolver-default.xml | 96 --- .../shib-idp/conf/attribute-resolver-full.xml | 101 +-- .../shib-idp/conf/attribute-resolver-ldap.xml | 23 +- .../shib-idp/conf/attribute-resolver.xml | 171 ++-- .../shib-idp/conf/attribute-resolver.xml.orig | 76 ++ .../conf/attributes/custom/README.txt | 9 + .../conf/attributes/default-rules.xml | 803 ++++++++++++++++++ .../config/shib-idp/conf/audit.xml | 3 +- .../shib-idp/conf/authn/authn-comparison.xml | 69 ++ .../shib-idp/conf/authn/authn-events-flow.xml | 10 +- .../shib-idp/conf/authn/discovery-config.xml | 34 + .../shib-idp/conf/authn/duo-authn-config.xml | 6 +- .../config/shib-idp/conf/authn/duo.properties | 27 +- .../conf/authn/external-authn-config.xml | 2 +- .../conf/authn/function-authn-config.xml | 37 + .../shib-idp/conf/authn/general-authn.xml | 31 +- .../shib-idp/conf/authn/jaas-authn-config.xml | 2 - .../shib-idp/conf/authn/krb5-authn-config.xml | 6 +- .../shib-idp/conf/authn/ldap-authn-config.xml | 133 +-- .../shib-idp/conf/authn/mfa-authn-config.xml | 22 +- .../conf/authn/password-authn-config.xml | 23 +- .../shib-idp/conf/authn/saml-authn-config.xml | 35 + .../conf/authn/spnego-authn-config.xml | 2 +- .../conf/c14n/subject-c14n-events-flow.xml | 10 +- .../shib-idp/conf/c14n/subject-c14n.xml | 69 +- .../config/shib-idp/conf/cas-protocol.xml | 40 +- .../config/shib-idp/conf/credentials.xml | 3 + .../config/shib-idp/conf/errors.xml | 5 + .../config/shib-idp/conf/global.xml | 1 - .../config/shib-idp/conf/idp.properties | 109 ++- .../config/shib-idp/conf/idp.properties.dist | 195 ----- .../intercept/consent-intercept-config.xml | 28 +- .../context-check-intercept-config.xml | 23 +- .../expiring-password-intercept-config.xml | 10 +- .../intercept/external-intercept-config.xml | 25 + .../impersonate-intercept-config.xml | 25 + .../conf/intercept/intercept-events-flow.xml | 10 +- .../conf/intercept/profile-intercept.xml | 22 +- .../config/shib-idp/conf/ldap.properties | 35 +- .../config/shib-idp/conf/ldap.properties.dist | 63 -- .../config/shib-idp/conf/logback.xml | 97 +-- .../config/shib-idp/conf/logback.xml.dist | 191 +++++ .../config/shib-idp/conf/logback.xml.tmp3 | 191 +++++ .../shib-idp/conf/metadata-providers.xml | 73 +- .../config/shib-idp/conf/relying-party.xml | 18 +- .../shib-idp/conf/saml-nameid.properties | 10 +- .../config/shib-idp/conf/saml-nameid.xml | 2 + .../config/shib-idp/conf/services.properties | 24 +- .../config/shib-idp/conf/services.xml | 65 +- .../config/shib-idp/conf/session-manager.xml | 16 - .../shib-idp/edit-webapp/css/consent.css | 2 +- .../shib-idp/edit-webapp/css/logout.css | 17 +- .../config/shib-idp/edit-webapp/css/main.css | 4 +- .../shib-idp/messages/messages.properties | 238 ------ .../shib-idp/views/admin/unlock-keys.vm | 97 +++ .../config/shib-idp/views/duo.vm | 4 +- .../config/shib-idp/views/error.vm | 1 + .../views/intercept/attribute-release.vm | 6 +- .../shib-idp/views/intercept/impersonate.vm | 90 ++ .../shib-idp/views/intercept/terms-of-use.vm | 2 + .../config/shib-idp/views/login-error.vm | 8 +- .../config/shib-idp/views/login.vm | 20 +- .../config/shib-idp/views/logout-complete.vm | 12 +- .../config/shib-idp/views/logout-propagate.vm | 4 +- .../config/shib-idp/views/logout.vm | 78 +- .../credentials/shib-idp/secrets.properties | 13 + 71 files changed, 2488 insertions(+), 1348 deletions(-) rename test-compose/idp/container_files/config/shib-idp/conf/{mvc-beans.xml => attribute-registry.xml} (69%) delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-default.xml create mode 100644 test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml.orig create mode 100644 test-compose/idp/container_files/config/shib-idp/conf/attributes/custom/README.txt create mode 100644 test-compose/idp/container_files/config/shib-idp/conf/attributes/default-rules.xml create mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/discovery-config.xml create mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/function-authn-config.xml create mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/saml-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/idp.properties.dist create mode 100644 test-compose/idp/container_files/config/shib-idp/conf/intercept/external-intercept-config.xml create mode 100644 test-compose/idp/container_files/config/shib-idp/conf/intercept/impersonate-intercept-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/ldap.properties.dist create mode 100644 test-compose/idp/container_files/config/shib-idp/conf/logback.xml.dist create mode 100644 test-compose/idp/container_files/config/shib-idp/conf/logback.xml.tmp3 create mode 100644 test-compose/idp/container_files/config/shib-idp/views/admin/unlock-keys.vm create mode 100644 test-compose/idp/container_files/config/shib-idp/views/intercept/impersonate.vm create mode 100644 test-compose/idp/container_files/credentials/shib-idp/secrets.properties diff --git a/test-compose/idp/container_files/config/shib-idp/conf/access-control.xml b/test-compose/idp/container_files/config/shib-idp/conf/access-control.xml index ff7b36f..a9184e6 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/access-control.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/access-control.xml @@ -30,7 +30,7 @@ + p:allowedRanges="#{ {'127.0.0.1/32', '::1/128'} }" /> + + + + + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/admin/metrics.xml b/test-compose/idp/container_files/config/shib-idp/conf/admin/metrics.xml index f9b5c16..fccf419 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/admin/metrics.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/admin/metrics.xml @@ -28,6 +28,8 @@ + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/attribute-filter.xml b/test-compose/idp/container_files/config/shib-idp/conf/attribute-filter.xml index 8e43db8..e9077e7 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/attribute-filter.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/attribute-filter.xml @@ -4,53 +4,109 @@ example file is illustrative of some simple cases, it relies on the names of non-existent example services and the example attributes demonstrated in the default attribute-resolver.xml file. - - Deployers should refer to the documentation for a complete list of components - and their options. + + This example does contain some usable "general purpose" policies that may be + useful in conjunction with specific deployment choices, but those policies may + not be applicable to your specific needs or constraints. --> - - + - - - + + - - + + - - + + + + + + - +--> + + attributeName="http://macedir.org/entity-category" + attributeValue="http://refeds.org/category/research-and-scholarship"/> @@ -70,13 +126,12 @@ - - + - + + attributeName="http://macedir.org/entity-category" + attributeValue="http://id.incommon.org/category/registered-by-incommon"/> diff --git a/test-compose/idp/container_files/config/shib-idp/conf/mvc-beans.xml b/test-compose/idp/container_files/config/shib-idp/conf/attribute-registry.xml similarity index 69% rename from test-compose/idp/container_files/config/shib-idp/conf/mvc-beans.xml rename to test-compose/idp/container_files/config/shib-idp/conf/attribute-registry.xml index 98d9bcd..8890f4b 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/mvc-beans.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/attribute-registry.xml @@ -1,13 +1,11 @@ + The system comes preconfigured to load rules directly from resource files + configured in services.xml so they're monitored for changes. + You can add mappings here, add more XML resource files, + or drop property files into the directory noted below. + --> + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-default.xml b/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-default.xml deleted file mode 100644 index e111728..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-default.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - member - - - - - - - - givenName sn displayName mail uid - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-full.xml b/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-full.xml index 32647a3..ad75dbc 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-full.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-full.xml @@ -27,116 +27,78 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> @@ -144,88 +106,60 @@ @@ -233,8 +167,6 @@ @@ -242,12 +174,10 @@ @@ -257,13 +187,16 @@ - + + @@ -306,15 +238,14 @@ - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-ldap.xml b/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-ldap.xml index ec79de9..76e6d55 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-ldap.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-ldap.xml @@ -29,10 +29,8 @@ not expose a value for this attribute without considering the long term implications. --> - - - - + + - - - - + + - - - - + + @@ -81,14 +75,13 @@ %{idp.attribute.resolver.LDAP.searchFilter} ]]> - + expirationTime="%{idp.pool.LDAP.idleTime:PT10M}"/> diff --git a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml b/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml index fb963b2..9993dbc 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml @@ -15,10 +15,8 @@ --> + xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd"> @@ -27,262 +25,219 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - member - + + + + + + - givenName sn displayName mail uid + - - + + - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml.orig b/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml.orig new file mode 100644 index 0000000..0ee236b --- /dev/null +++ b/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml.orig @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + member + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/attributes/custom/README.txt b/test-compose/idp/container_files/config/shib-idp/conf/attributes/custom/README.txt new file mode 100644 index 0000000..98977b0 --- /dev/null +++ b/test-compose/idp/container_files/config/shib-idp/conf/attributes/custom/README.txt @@ -0,0 +1,9 @@ +# You can create custom attribute mapping rules using +# simple property files stored in this directory tree. +# Spring property replacement is NOT supported. + +# As an example, a default SAML 2 rule for eduPersonPrincipalName would be: + +#id=eduPersonPrincipalName +#transcoder=SAML2ScopedStringTranscoder +#saml2.name=urn:oid:1.3.6.1.4.1.5923.1.1.1.6 diff --git a/test-compose/idp/container_files/config/shib-idp/conf/attributes/default-rules.xml b/test-compose/idp/container_files/config/shib-idp/conf/attributes/default-rules.xml new file mode 100644 index 0000000..b6289fe --- /dev/null +++ b/test-compose/idp/container_files/config/shib-idp/conf/attributes/default-rules.xml @@ -0,0 +1,803 @@ + + + + + + + + + + + + + + uid + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:0.9.2342.19200300.100.1.1 + urn:mace:dir:attribute-def:uid + User ID + Benutzer-ID + ID utilisateur + ID dell'utente + ユーザID + User ID + Användaridentitet + A unique identifier for a person, mainly used for user identification within the user's home organization. + Eine eindeutige Nummer für eine Person, welche hauptsächlich zur Identifikation innerhalb der Organisation benutzt wird. + Identifiant de connexion d'une personnes sur les systèmes informatiques. + Identificativo unico della persona, usato per l'identificazione dell'utente all'interno della organizzazione di appartenenza. + 所属機関内で一意の利用者識別子 + Identificador do utilizador + Användaridentitet: Unik identifierar som används vid lokal inloggning i hemmaorganisationen. + + + + + + + + mail + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:0.9.2342.19200300.100.1.3 + urn:mace:dir:attribute-def:mail + E-mail + E-Mail + Email + E-mail + メールアドレス + E-mail + E-postadress + E-Mail: Preferred address for e-mail to be sent to this person + E-Mail-Adresse + E-Mail Adresse + Adresse de courrier électronique + E-Mail: l'indirizzo e-mail preferito dall'utente + メールアドレス + E-Mail: Endereço de correio electronico + E-postadress: E-postadress som används av personen. + + + + + + + + homePhone + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:0.9.2342.19200300.100.1.20 + urn:mace:dir:attribute-def:homePhone + Private phone number + Telefon Privat + Teléphone personnel + Numero di telefono privato + 自宅電話番号 + Número de telefone privado + Telefonnummer (hem) + Private phone number + Private Telefonnummer + Numéro de téléphone de domicile de la personne + Numero di telefono privato + 自宅の電話番号 + Número de telefone privado do utilizador + Telefonnummer (hem): Telefonnummer till bostaden. + + + + + + + + homePostalAddress + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:0.9.2342.19200300.100.1.39 + urn:mace:dir:attribute-def:homePostalAddress + Home postal address + Heimatadresse + Heimadresse + Adresse personnelle + Indirizzo personale + 自宅住所 + Morada Pessoal + Postadress (hem) + Home postal address: Home address of the user + Heimatadresse + Heimadresse + Adresse postale de domicile de la personne + Indirizzo personale: indirizzo dove abita l'utente + 自宅の住所 + Morada Pessoal: Morada do utilizador + Postadress (hem): Postadress till bostaden. + + + + + + + + mobile + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:0.9.2342.19200300.100.1.41 + urn:mace:dir:attribute-def:mobile + Mobile phone number + Telefon Mobil + Numéro de mobile + Numero di cellulare + 携帯電話番号 + Número de telemóvel + Telefonnummer (mobil) + Mobile phone number + Mobile Telefonnummer + Numéro de teléphone mobile + Numero di cellulare + 携帯電話の電話番号 + Número de telemóvel do utilizador + Telefonnummer (mobil): Telefonnummer till mobiltelefon. + + + + + + + + pager + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:0.9.2342.19200300.100.1.42 + urn:mace:dir:attribute-def:pager + Pager number + Pager number + + + + + + + + surname + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.4 + urn:mace:dir:attribute-def:sn + Surname + Nachname + Nom de famille + Cognome + + Nome de Família + Efternamn + Surname or family name + Familienname + Nom de famille de l'utilisateur. + Cognome dell'utilizzatore + 氏名(姓)の英語表記 + Nome de Família + Efternamn: Efternamn för personen. + + + + + + + + locality + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.7 + urn:mace:dir:attribute-def:l + Locality name + Ort + Locality name + 場所(L) + Locality name + Ort + Nom de la localité où réside l'objet + 場所の名前 日本の場合は市区町村名 + + + + + + + + stateProvince + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.8 + urn:mace:dir:attribute-def:st + State or province name + 都道府県もしくは州や省(ST) + State or province name + 州名や省名 国によって異なり日本の場合は都道府県名 + + + + + + + + street + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.9 + urn:mace:dir:attribute-def:street + Street + Straße + Strasse + Rue + 通り + Street address + Name der Straße + Strassenadresse + Nom de rue + 通りおよび番地 + + + + + + + + organizationName + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.10 + urn:mace:dir:attribute-def:o + Organization name + Organisationsname + Nom de l'organisation + 所属機関名 + Organization name + Name der Organisation + Nom de l'organisation + 所属機関名称の英語表記 + + + + + + + + organizationalUnit + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.11 + urn:mace:dir:attribute-def:ou + Organizational unit + Organisationseinheit + Unité organisationnelle + 機関内所属名 + Organizational unit + Name der Organisationseinheit + Nom de l'unité organisationnelle + 機関内所属名称の英語表記 + + + + + + + + title + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.12 + urn:mace:dir:attribute-def:title + Title + Titel + Title + 肩書き + Title of a person + Titel der Person + Titre de la personne + 利用者の肩書き + + + + + + + + postalAddress + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.16 + urn:mace:dir:attribute-def:postalAddress + Business postal address + Geschäftsadresse + Adresse professionnelle + Indirizzo professionale + 所属機関住所 + Morada + Postadress (arbete): + Business postal address: Campus or office address + Geschäftliche Adresse + Adresse am Arbeitsplatz + Adresse de l'institut, de l'université + Indirizzo professionale: indirizzo dell'istituto o dell'ufficio + 所属機関の住所 + Morada da instituição + Postadress (arbete): Postadressen för arbetsplatsen + + + + + + + + postalCode + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.17 + urn:mace:dir:attribute-def:postalCode + Postal code + ZIP code + Postleitzahl + Code postal + 郵便番号 + Postal code + ZIP code + Postleitzahl + Code postal + 郵便番号 + + + + + + + + postOfficeBox + SAML2StringTranscoder SAML1StringTranscoder + urn:mace:dir:attribute-def:postOfficeBox + urn:oid:2.5.4.18 + Postal box + Postfach + Boite postale + Case postale + 私書箱 + Postal box identifier + Postfach + Boite postale + Case postale + 私書箱 + + + + + + + + telephoneNumber + SAML2StringTranscoder SAML1StringTranscoder + urn:mace:dir:attribute-def:telephoneNumber + urn:oid:2.5.4.20 + Business phone number + Telefon Geschäft + Teléphone professionnel + Numero di telefono dell'ufficio + 勤務先電話番号 + Telefone + Telefonummer (arbete) + Business phone number: Office or campus phone number + Telefonnummer am Arbeitsplatz + Teléphone de l'institut, de l'université + Numero di telefono dell'ufficio + 所属機関での利用者の電話番号 + Número de telefone + Telefonummer (arbete): Telefonnummer till arbetsplatsen + + + + + + + + givenName + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.42 + urn:mace:dir:attribute-def:givenName + Given name + Vorname + Prénom + Nome + + Nome + Förnamn + Given name of a person + Vorname + Prénom de l'utilisateur + Nome + 氏名(名)の英語表記 + Nome + Förnamn: Förnamn för personen. + + + + + + + + initials + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.5.4.43 + urn:mace:dir:attribute-def:initials + Initials + Initialen + Initiales + イニシャル + Initials + Anfangsbuchstaben des Namens + Die Anfangsbuchstaben + L' initiales + イニシャル + + + + + + + + + + departmentNumber + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.16.840.1.113730.3.1.2 + urn:mace:dir:attribute-def:departmentNumber + Department number + Abteilungsnummer + Department number + Nummer der Abteilung + + + + + + + + displayName + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.16.840.1.113730.3.1.241 + urn:mace:dir:attribute-def:displayName + Display Name + Anzeigename + Nom + Nome + 表示名 + The name that should appear in white-pages-like applications for this person. + Anzeigename + Nom complet d'affichage + Nome + アプリケーションでの表示に用いられる英字氏名 + + + + + + + + employeeNumber + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.16.840.1.113730.3.1.3 + urn:mace:dir:attribute-def:employeeNumber + Employee number + Mitarbeiternummer + Numéro d'employé + Numero dell'utente + 従業員番号 + Número de empregado + Anställningsnummer + Identifies an employee within an organization + Identifiziert einen Mitarbeiter innerhalb der Organisation + Identifie un employé au sein de l'organisation + Identifica l' utente presso l'organizzazione + 所属機関における利用者の従業員番号 + Número de empregado + Anställningsnummer: Unik anställningsidentifierare i hemmaorganisationen. + + + + + + + + employeeType + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.16.840.1.113730.3.1.4 + urn:mace:dir:attribute-def:employeeType + Employee type + Employee type + + + + + + + + jpegPhoto + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:0.9.2342.19200300.100.1.60 + urn:mace:dir:attribute-def:jpegPhoto + JPEG Photo + Image of a person in JPEG format + + + + + + + + preferredLanguage + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:2.16.840.1.113730.3.1.39 + urn:mace:dir:attribute-def:preferredLanguage + Preferred Language + Bevorzugte Sprache + Langue préférée + Lingua preferita + 希望言語 + Língua preferida + Språkönskemål + Preferred language: Users preferred language (see RFC1766) + Bevorzugte Sprache (siehe RFC1766) + Exemple: fr, de, it, en, ... (voir RFC1766) + Lingua preferita: la lingua preferita dall'utente (cfr. RFC1766) + 利用者が希望する言語(RFC1766 を参照) + Língua preferida: Língua preferida do utilizador (cfr. RFC1766) + Språkönskemål: Personens önskade språk (see RFC1766). + + + + + + + + + + eduPersonAffiliation + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:1.3.6.1.4.1.5923.1.1.1.1 + urn:mace:dir:attribute-def:eduPersonAffiliation + Affiliation + Zugehörigkeit + Affiliation + Tipo di membro + 職位 + Tipo de utilizador + Anknytning + Affiliation: Type of affiliation with Home Organization + Art der Zugehörigkeit zur Heimatorganisation + Art der Zugehörigkeit zur Heimorganisation + Type d'affiliation dans l'organisation + Tipo di membro: Tipo di lavoro svolto per l'organizzazione + 所属機関における職位(faculty,staff,student,memberなど) + Tipo de utilizador: tipo de utilizador na organização. Exemplo: Estudante, ... + Anknytning: Vilken anknytning personen har till organisationen. + + + + + + + + eduPersonEntitlement + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:1.3.6.1.4.1.5923.1.1.1.7 + urn:mace:dir:attribute-def:eduPersonEntitlement + Entitlement + Berechtigung + Entitlement + Prerogativa + 資格情報 + Título + Rättigheter + Member of: URI (either URL or URN) that indicates a set of rights to specific resources based on an agreement across the releavant community + Zeichenkette, die Rechte für spezifische Ressourcen beschreibt + Membre de: URI (soit une URL ou une URN) décrivant un droit spécific d'accès. + Membro delle seguenti URI (sia URL o URN) che rappresentano diritti specifici d'accesso validi in tutta la communità + 特定のアプリケーションもしくはコミュニティ内の複数リソースへのアクセス権限を持つことを示すURI(URLもしくはURN) + URI (retractado por um URN ou URL) que indica um conjunto de direitos para recursos específicos. + Rättigheter: URI (either URL or URN) som beskriver olika rättigheter till angivna tjänster. + + + + + + + + eduPersonNickname + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:1.3.6.1.4.1.5923.1.1.1.2 + urn:mace:dir:attribute-def:eduPersonNickname + Nick name + Kurzname + Übername + Surnom + Diminutivo + ニックネーム + Person's nickname, or the informal name by which they are accustomed to be hailed. + Kurzname einer Person, oder üblicher Rufname zur Begrüßung. + Übername einer Person, oder üblicher Rufname zur Begrüssung. + Nom personnalisable pour un usage informel. + Diminutivo della persona, o soprannome. + 利用者のニックネームもしくは通称 + + + + + + + + eduPersonPrimaryAffiliation + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:1.3.6.1.4.1.5923.1.1.1.5 + urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation + Primary affiliation + Primäre Zugehörigkeit + Affiliation pricipale + Appartenenza principale + 主要職位 + Specifies the person's primary relationship to the institution in broad categories such as student, faculty, staff, alum, etc. + Spezifiziert der Hauptbeziehung einer Person innerhalb ihrer Organisation in groben Kategorien wie Student, Mitarbeiter, Alumni, etc. + Spécifie la relation principale d'une personne avec l'institution selon des majeures catégories comme étudiant, collaborateur, alumni etc. + Specifica la relazione principale dell persona con l'istituzione secondo le maggiori categorie come studente, collaboratore, alumni, etc. + 所属機関における主要な職位(faculty,staff,student,memberなど) + + + + + + + + eduPersonPrincipalName + SAML2ScopedStringTranscoder SAML1ScopedStringTranscoder CASScopedStringTranscoder + urn:oid:1.3.6.1.4.1.5923.1.1.1.6 + urn:mace:dir:attribute-def:eduPersonPrincipalName + Principal Name + Persönliche ID + Principal Name + Principal Name + プリンシパルID + A unique identifier for a person, mainly for inter-institutional user identification. + Eindeutige Benutzeridentifikation + Eindeutige Benützeridentifikation + L'identifiant unique de l'utilisateur + Un ID personale che identifica chiaramente l'utente in seno alla sua organizzazione + フェデレーション内で一意かつ永続的な利用者識別子 + + + + + + + + eduPersonPrincipalNamePrior + SAML2ScopedStringTranscoder SAML1ScopedStringTranscoder CASScopedStringTranscoder + urn:oid:1.3.6.1.4.1.5923.1.1.1.12 + urn:oid:1.3.6.1.4.1.5923.1.1.1.12 + Prior Principal Name + eduPersonPrincipalName value that was previously associated with the entry. + + + + + + + + eduPersonScopedAffiliation + SAML2ScopedStringTranscoder SAML1ScopedStringTranscoder CASScopedStringTranscoder + urn:oid:1.3.6.1.4.1.5923.1.1.1.9 + urn:mace:dir:attribute-def:eduPersonScopedAffiliation + Scoped Affiliation + Zugehörigkeit + Affiliation + Tipo di membro + スコープ付き職位 + Specifies the person's affiliation within a particular security domain + Art der Zugehörigkeit zur Heimatorganisation + Art der Zugehörigkeit zur Heimorganisation + Type d'affiliation dans l'organisation + Tipo di membro: Tipo di lavoro svolto per l'organizzazione + セキュリティドメインのスコープが付いた所属機関における職位 + + + + + + + + eduPersonAssurance + SAML2StringTranscoder SAML1StringTranscoder + urn:oid:1.3.6.1.4.1.5923.1.1.1.11 + urn:mace:dir:attribute-def:eduPersonAssurance + Assurance Level + Vertrauensgrad + Niveau de confiance + Livello di sicurezza + 保証レベル + Set of URIs that assert compliance with specific standards for identity assurance. + URIs die eine gewisse Zusicherung für spezifische Standards des Vertrauens beinhalten + Un ensemble d'URI qui attestent la conformité selon un standard pour les niveaux d'assurance d'identités + Un insieme di URI che asseriscono l'osservanza dei livelli di sicurezza richiesti + IDの保証レベルに関して特定の基準に準拠していることを示すURI + + + + + + + + + + eduPersonUniqueId + SAML2ScopedStringTranscoder SAML1ScopedStringTranscoder CASScopedStringTranscoder + urn:oid:1.3.6.1.4.1.5923.1.1.1.13 + urn:oid:1.3.6.1.4.1.5923.1.1.1.13 + Unique ID + Eindeutige ID + ID unique + ID unico + ユニークID + ID único + Unik identifierare + A unique identifier for a person, mainly for inter-institutional user identification. + Eindeutige Benutzeridentifikation + Eindeutige Benützeridentifikation + Identifiant unique de l'utilisateur + Un identificativo personale che identifica chiaramente l'utente in seno alla sua organizzazione + フェデレーション内で一意で永続的かつ難読化された利用者識別子(後継はサブジェクトID) + ID único: Identificador pessoal que identifica claramente o utilizador na sua organização + Unik identifierare: En unik identifierare för en person, används primärt för att identifiera personen inloggning vid annan organisation än hemmaorganisationen. + + + + + + + + + + samlSubjectID + SAML2ScopedStringTranscoder + urn:oasis:names:tc:SAML:attribute:subject-id + Unique ID + Eindeutige ID + ID unique + ID unico + サブジェクトID + A unique identifier for a person, mainly for inter-institutional user identification. + Eindeutige Benutzeridentifikation + Eindeutige Benützeridentifikation + Identifiant unique de l'utilisateur + Un identificativo personale che identifica chiaramente l'utente in seno alla sua organizzazione + フェデレーション内で一意で永続的かつ難読化された利用者識別子(eduPersonUniqueIdの後継) + + + + + + + + samlPairwiseID + SAML2ScopedStringTranscoder + urn:oasis:names:tc:SAML:attribute:pairwise-id + Pairwise ID + Pairwise ID + Pairwise ID + Pairwise ID + ペアワイズID + Pairwise ID: A unique identifier for a person, different for each service provider. + Pairwise ID: Eindeutige Benutzeridentifikation, unterschiedlich pro Service Provider. + Pairwise ID: Eindeutige Benützeridentifikation, unterschiedlich pro Service Provider. + Pairwise ID: Un identifiant unique de l'utilisateur, différent pour chaque fournisseur de service. + Pairwise ID: identificativo unico della persona, differente per ogni fornitore di servizio. + フェデレーション内で一意かつSP毎に送出される値が異なる利用者識別子(eduPersonTargetedIDの後継) + + + + + + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/audit.xml b/test-compose/idp/container_files/config/shib-idp/conf/audit.xml index 22949fd..a690ae0 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/audit.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/audit.xml @@ -15,7 +15,7 @@ for compatibility with V2 audit logging. --> - + @@ -27,6 +27,7 @@ http://shibboleth.net/ns/profiles/status + http://shibboleth.net/ns/profiles/mdquery diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/authn-comparison.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/authn-comparison.xml index f167b7a..dcf0271 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/authn-comparison.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/authn/authn-comparison.xml @@ -74,4 +74,73 @@ urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified + + + + + + + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/authn-events-flow.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/authn-events-flow.xml index 244e1db..8846677 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/authn-events-flow.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/authn/authn-events-flow.xml @@ -11,8 +11,12 @@ --> - + + + + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/discovery-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/discovery-config.xml new file mode 100644 index 0000000..e21e3fd --- /dev/null +++ b/test-compose/idp/container_files/config/shib-idp/conf/authn/discovery-config.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/duo-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/duo-authn-config.xml index 0a48152..2867f48 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/duo-authn-config.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/authn/duo-authn-config.xml @@ -9,10 +9,12 @@ default-init-method="initialize" default-destroy-method="destroy"> diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/duo.properties b/test-compose/idp/container_files/config/shib-idp/conf/authn/duo.properties index 2ca71ee..cb4b4aa 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/duo.properties +++ b/test-compose/idp/container_files/config/shib-idp/conf/authn/duo.properties @@ -1,9 +1,30 @@ -# Duo integration settings +## Duo integration settings -# Note: If upgrading from pre-3.3 IdP versions, you will need to manually add a pointer -# to this property file to idp.properties. +## Note: If upgrading from pre-3.3 IdP versions, you will need to manually add a pointer +## to this property file to idp.properties. + +## The first set of properties support DuoWeb "iframe" integration. idp.duo.apiHost = hostname idp.duo.applicationKey = key idp.duo.integrationKey = key idp.duo.secretKey = key + +## The second set are used for direct AuthAPI usage for ECP support. +## A seperate integration has to be created for this to work. + +#idp.duo.nonbrowser.apiHost = %{idp.duo.apiHost} +#idp.duo.nonbrowser.applicationKey = key +#idp.duo.nonbrowser.integrationKey = key +#idp.duo.nonbrowser.secretKey = key + +## Request header names for Duo non-browser credentials. +# idp.duo.nonbrowser.header.factor = X-Shibboleth-Duo-Factor +# idp.duo.nonbrowser.header.device = X-Shibboleth-Duo-Device +# idp.duo.nonbrowser.header.passcode = X-Shibboleth-Duo-Passcode + +## Enables auto selection of factor/device if not specified by client. +# idp.duo.nonbrowser.auto = true + +## Enables transmission of client address to Duo during authentication. +# idp.duo.nonbrowser.clientAddressTrusted = true diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/external-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/external-authn-config.xml index 8b3a159..9d6652a 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/external-authn-config.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/authn/external-authn-config.xml @@ -14,7 +14,7 @@ + c:_0="contextRelative:external.jsp" /> + + + + + + + + + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/general-authn.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/general-authn.xml index ac55bbb..b936f97 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/general-authn.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/authn/general-authn.xml @@ -51,13 +51,7 @@ - - - - - + @@ -132,6 +126,29 @@ + + + + + + + + + + + + - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/ldap-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/ldap-authn-config.xml index 56d1bc7..22824d0 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/ldap-authn-config.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/authn/ldap-authn-config.xml @@ -5,131 +5,28 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd" - default-init-method="initialize" default-destroy-method="destroy" default-lazy-init="true"> - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/mfa-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/mfa-authn-config.xml index 6198c29..3bfbcbb 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/mfa-authn-config.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/authn/mfa-authn-config.xml @@ -56,33 +56,17 @@ - + - - - + + + - @@ -34,9 +33,17 @@ + + + + + + + + + + + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/spnego-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/spnego-authn-config.xml index 07563b9..6c0fa48 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/spnego-authn-config.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/authn/spnego-authn-config.xml @@ -48,7 +48,7 @@ - + + + + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/c14n/subject-c14n.xml b/test-compose/idp/container_files/config/shib-idp/conf/c14n/subject-c14n.xml index 16fc6f1..e4b772f 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/c14n/subject-c14n.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/c14n/subject-c14n.xml @@ -16,12 +16,18 @@ - + + + + + + urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified + urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress + urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName + urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName + urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos + + - - + + + + + + + + + + - - + + + + + + @@ -89,7 +130,7 @@ Any condition can be used here; the example is suitable for enumerating a number of SPs to allow. --> - + @@ -102,7 +143,7 @@ --> diff --git a/test-compose/idp/container_files/config/shib-idp/conf/cas-protocol.xml b/test-compose/idp/container_files/config/shib-idp/conf/cas-protocol.xml index d0b3d55..2eb1733 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/cas-protocol.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/cas-protocol.xml @@ -3,6 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:c="http://www.springframework.org/schema/c" xmlns:p="http://www.springframework.org/schema/p" + xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd" @@ -35,6 +36,16 @@ + + + - + + + + + + + + + @@ -75,10 +103,4 @@ --> - - - \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/conf/credentials.xml b/test-compose/idp/container_files/config/shib-idp/conf/credentials.xml index 7462879..dde530b 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/credentials.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/credentials.xml @@ -36,6 +36,9 @@ p:certificateResource="%{idp.signing.cert}" p:entityId-ref="entityID" /> + + + + + + - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/idp.properties b/test-compose/idp/container_files/config/shib-idp/conf/idp.properties index ba38100..d03fc19 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/idp.properties +++ b/test-compose/idp/container_files/config/shib-idp/conf/idp.properties @@ -1,18 +1,43 @@ # Load any additional property resources from a comma-delimited list -idp.additionalProperties= /conf/ldap.properties, /conf/saml-nameid.properties, /conf/services.properties, /conf/authn/duo.properties +idp.additionalProperties=/conf/ldap.properties, /conf/saml-nameid.properties, /conf/services.properties, /conf/authn/duo.properties, /credentials/secrets.properties + +# In most cases (and unless noted in the surrounding comments) the +# commented settings in the distributed files document default behavior. +# Uncomment them and change the value to change functionality. +# +# Uncommented properties are either required or ship non-defaulted. # Set the entityID of the IdP -idp.entityID= https://idp.example.edu/idp/shibboleth +idp.entityID=https://idp.example.edu/idp/shibboleth + +# Set the file path which backs the IdP's own metadata publishing endpoint at /shibboleth. +# Set to empty value to disable and return a 404. +#idp.entityID.metadataFile=%{idp.home}/metadata/idp-metadata.xml # Set the scope used in the attribute resolver for scoped attributes -idp.scope= example.edu +idp.scope=example.edu # General cookie properties (maxAge only applies to persistent cookies) -idp.cookie.secure = true +#idp.cookie.secure = true #idp.cookie.httpOnly = true #idp.cookie.domain = #idp.cookie.path = #idp.cookie.maxAge = 31536000 +# These control operation of the SameSite filter, which is off by default. +#idp.cookie.sameSite = None +#idp.cookie.sameSiteCondition = shibboleth.Conditions.FALSE + +# Enable cross-site request forgery mitigation for views. +idp.csrf.enabled=true +# Name of the HTTP parameter that stores the CSRF token. +#idp.csrf.token.parameter = csrf_token + +# HSTS/CSP response headers +#idp.hsts = max-age=0 +# X-Frame-Options value, set to DENY or SAMEORIGIN to block framing +#idp.frameoptions = DENY +# Content-Security-Policy value, set to match X-Frame-Options default +#idp.csp = frame-ancestors 'none'; # Set the location of user-supplied web flow definitions #idp.webflows = %{idp.home}/flows @@ -21,38 +46,41 @@ idp.cookie.secure = true #idp.views = %{idp.home}/views # Settings for internal AES encryption key +#idp.sealer.keyStrategy = shibboleth.DataSealerKeyStrategy #idp.sealer.storeType = JCEKS #idp.sealer.updateInterval = PT15M #idp.sealer.aliasBase = secret -idp.sealer.storeResource= %{idp.home}/credentials/sealer.jks -idp.sealer.versionResource= %{idp.home}/credentials/sealer.kver -idp.sealer.storePassword= 90fa668e-ce0f-45e7-82f1-fa4bd0273b51 -idp.sealer.keyPassword= 90fa668e-ce0f-45e7-82f1-fa4bd0273b51 +idp.sealer.storeResource=%{idp.home}/credentials/sealer.jks +idp.sealer.versionResource=%{idp.home}/credentials/sealer.kver # Settings for public/private signing and encryption key(s) # During decryption key rollover, point the ".2" properties at a second # keypair, uncomment in credentials.xml, then publish it in your metadata. -idp.signing.key= %{idp.home}/credentials/idp-signing.key -idp.signing.cert= %{idp.home}/credentials/idp-signing.crt -idp.encryption.key= %{idp.home}/credentials/idp-encryption.key -idp.encryption.cert= %{idp.home}/credentials/idp-encryption.crt +idp.signing.key=%{idp.home}/credentials/idp-signing.key +idp.signing.cert=%{idp.home}/credentials/idp-signing.crt +idp.encryption.key=%{idp.home}/credentials/idp-encryption.key +idp.encryption.cert=%{idp.home}/credentials/idp-encryption.crt #idp.encryption.key.2 = %{idp.home}/credentials/idp-encryption-old.key #idp.encryption.cert.2 = %{idp.home}/credentials/idp-encryption-old.crt # Sets the bean ID to use as a default security configuration set #idp.security.config = shibboleth.DefaultSecurityConfiguration -# To default to SHA-1, set to shibboleth.SigningConfiguration.SHA1 +# To downgrade to SHA-1, set to shibboleth.SigningConfiguration.SHA1 #idp.signing.config = shibboleth.SigningConfiguration.SHA256 +# To upgrade to AES-GCM encryption, set to shibboleth.EncryptionConfiguration.GCM +# This is unlikely to work for all SPs, but this is a quick way to test them. +#idp.encryption.config = shibboleth.EncryptionConfiguration.CBC + # Configures trust evaluation of keys used by services at runtime -# Defaults to supporting both explicit key and PKIX using SAML metadata. -#idp.trust.signatures = shibboleth.ChainingSignatureTrustEngine -# To pick only one set to one of: -# shibboleth.ExplicitKeySignatureTrustEngine, shibboleth.PKIXSignatureTrustEngine -#idp.trust.certificates = shibboleth.ChainingX509TrustEngine -# To pick only one set to one of: -# shibboleth.ExplicitKeyX509TrustEngine, shibboleth.PKIXX509TrustEngine +# Internal default is Chaining, overriden for new installs +idp.trust.signatures=shibboleth.ExplicitKeySignatureTrustEngine +# Other options: +# shibboleth.ChainingSignatureTrustEngine, shibboleth.PKIXSignatureTrustEngine +idp.trust.certificates=shibboleth.ExplicitKeyX509TrustEngine +# Other options: +# shibboleth.ChainingX509TrustEngine, shibboleth.PKIXX509TrustEngine # If true, encryption will happen whenever a key to use can be located, but # failure to encrypt won't result in request failure. @@ -60,7 +88,7 @@ idp.encryption.cert= %{idp.home}/credentials/idp-encryption.crt # Configuration of client- and server-side storage plugins #idp.storage.cleanupInterval = PT10M -#idp.storage.htmlLocalStorage = false +idp.storage.htmlLocalStorage=true # Set to true to expose more detailed errors in responses to SPs #idp.errors.detailed = false @@ -90,22 +118,14 @@ idp.encryption.cert= %{idp.home}/credentials/idp-encryption.crt # Tolerate storage-related errors #idp.session.maskStorageFailure = false # Track information about SPs logged into -#idp.session.trackSPSessions = false +idp.session.trackSPSessions=true # Support lookup by SP for SAML logout -#idp.session.secondaryServiceIndex = false +idp.session.secondaryServiceIndex=true # Length of time to track SP sessions #idp.session.defaultSPlifetime = PT2H # Regular expression matching login flows to enable, e.g. IPAddress|Password -idp.authn.flows= Password - -# Regular expression of forced "initial" methods when no session exists, -# usually in conjunction with the idp.authn.resolveAttribute property below. -#idp.authn.flows.initial = Password - -# Set to an attribute ID to resolve prior to selecting authentication flows; -# its values are used to filter the flows to allow. -#idp.authn.resolveAttribute = eduPersonAssurance +idp.authn.flows=Password # Default lifetime and timeout of various authentication methods #idp.authn.defaultLifetime = PT60M @@ -128,8 +148,14 @@ idp.authn.flows= Password # Set to "shibboleth.consent.AttributeConsentStorageKey" to use an attribute # to key user consent storage records (and set the attribute name) -#idp.consent.userStorageKey = shibboleth.consent.PrincipalConsentStorageKey -#idp.consent.userStorageKeyAttribute = uid +#idp.consent.attribute-release.userStorageKey = shibboleth.consent.PrincipalConsentStorageKey +#idp.consent.attribute-release.userStorageKeyAttribute = uid +#idp.consent.terms-of-use.userStorageKey = shibboleth.consent.PrincipalConsentStorageKey +#idp.consent.terms-of-use.userStorageKeyAttribute = uid + +# Suffix of message property used as value of consent storage records when idp.consent.compareValues is true. +# Defaults to text displayed to the user. +#idp.consent.terms-of-use.consentValueMessageCodeSuffix = .text # Flags controlling how built-in attribute consent feature operates #idp.consent.allowDoNotRemember = true @@ -153,15 +179,19 @@ idp.authn.flows= Password # Whether to require logout requests/responses be signed/authenticated. #idp.logout.authenticated = true +# Bean to determine whether user should be allowed to cancel logout +#idp.logout.promptUser=shibboleth.Conditions.FALSE + # Message freshness and replay cache tuning #idp.policy.messageLifetime = PT3M #idp.policy.clockSkew = PT3M # Set to custom bean for alternate storage of replay cache #idp.replayCache.StorageService = shibboleth.StorageService +#idp.replayCache.strict = true # Toggles whether to allow outbound messages via SAML artifact -idp.artifact.enabled = false +#idp.artifact.enabled = true # Suppresses typical signing/encryption when artifact binding used #idp.artifact.secureChannel = true # May differ to direct SAML 2 artifact lookups to specific server nodes @@ -171,7 +201,7 @@ idp.artifact.enabled = false # Comma-delimited languages to use if not match can be found with the # browser-supported languages, defaults to an empty list. -idp.ui.fallbackLanguages= en,fr,de +idp.ui.fallbackLanguages=en,fr,de # Storage service used by CAS protocol # Defaults to shibboleth.StorageService (in-memory) @@ -183,9 +213,8 @@ idp.ui.fallbackLanguages= en,fr,de # CAS service registry implementation class #idp.cas.serviceRegistryClass=net.shibboleth.idp.cas.service.PatternServiceRegistry -# Profile flows in which the ProfileRequestContext should be exposed -# in servlet request under the key "opensamlProfileRequestContext" -#idp.profile.exposeProfileRequestContextInServletRequest = SAML2/POST/SSO,SAML2/Redirect/SSO +# If true, CAS services provisioned with SAML metadata are identified via entityID +#idp.cas.relyingPartyIdFromMetadata=false # F-TICKS auditing - set a salt to include hashed username #idp.fticks.federation=MyFederation @@ -193,3 +222,5 @@ idp.ui.fallbackLanguages= en,fr,de #idp.fticks.salt=somethingsecret #idp.fticks.loghost=localhost #idp.fticks.logport=514 +idp.sealer.keyPassword=90fa668e-ce0f-45e7-82f1-fa4bd0273b51 +idp.sealer.storePassword=90fa668e-ce0f-45e7-82f1-fa4bd0273b51 diff --git a/test-compose/idp/container_files/config/shib-idp/conf/idp.properties.dist b/test-compose/idp/container_files/config/shib-idp/conf/idp.properties.dist deleted file mode 100644 index 2c5dcc0..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/idp.properties.dist +++ /dev/null @@ -1,195 +0,0 @@ -# Load any additional property resources from a comma-delimited list -idp.additionalProperties= /conf/ldap.properties, /conf/saml-nameid.properties, /conf/services.properties, /conf/authn/duo.properties - -# Set the entityID of the IdP -idp.entityID= https://example.org/idp/shibboleth - -# Set the scope used in the attribute resolver for scoped attributes -idp.scope= example.org - -# General cookie properties (maxAge only applies to persistent cookies) -idp.cookie.secure = true -#idp.cookie.httpOnly = true -#idp.cookie.domain = -#idp.cookie.path = -#idp.cookie.maxAge = 31536000 - -# Set the location of user-supplied web flow definitions -#idp.webflows = %{idp.home}/flows - -# Set the location of Velocity view templates -#idp.views = %{idp.home}/views - -# Settings for internal AES encryption key -#idp.sealer.storeType = JCEKS -#idp.sealer.updateInterval = PT15M -#idp.sealer.aliasBase = secret -idp.sealer.storeResource= %{idp.home}/credentials/sealer.jks -idp.sealer.versionResource= %{idp.home}/credentials/sealer.kver -idp.sealer.storePassword= changeit -idp.sealer.keyPassword= changeit - -# Settings for public/private signing and encryption key(s) -# During decryption key rollover, point the ".2" properties at a second -# keypair, uncomment in credentials.xml, then publish it in your metadata. -idp.signing.key= %{idp.home}/credentials/idp-signing.key -idp.signing.cert= %{idp.home}/credentials/idp-signing.crt -idp.encryption.key= %{idp.home}/credentials/idp-encryption.key -idp.encryption.cert= %{idp.home}/credentials/idp-encryption.crt -#idp.encryption.key.2 = %{idp.home}/credentials/idp-encryption-old.key -#idp.encryption.cert.2 = %{idp.home}/credentials/idp-encryption-old.crt - -# Sets the bean ID to use as a default security configuration set -#idp.security.config = shibboleth.DefaultSecurityConfiguration - -# To default to SHA-1, set to shibboleth.SigningConfiguration.SHA1 -#idp.signing.config = shibboleth.SigningConfiguration.SHA256 - -# Configures trust evaluation of keys used by services at runtime -# Defaults to supporting both explicit key and PKIX using SAML metadata. -#idp.trust.signatures = shibboleth.ChainingSignatureTrustEngine -# To pick only one set to one of: -# shibboleth.ExplicitKeySignatureTrustEngine, shibboleth.PKIXSignatureTrustEngine -#idp.trust.certificates = shibboleth.ChainingX509TrustEngine -# To pick only one set to one of: -# shibboleth.ExplicitKeyX509TrustEngine, shibboleth.PKIXX509TrustEngine - -# If true, encryption will happen whenever a key to use can be located, but -# failure to encrypt won't result in request failure. -#idp.encryption.optional = false - -# Configuration of client- and server-side storage plugins -#idp.storage.cleanupInterval = PT10M -#idp.storage.htmlLocalStorage = false - -# Set to true to expose more detailed errors in responses to SPs -#idp.errors.detailed = false -# Set to false to skip signing of SAML response messages that signal errors -#idp.errors.signed = true -# Name of bean containing a list of Java exception classes to ignore -#idp.errors.excludedExceptions = ExceptionClassListBean -# Name of bean containing a property set mapping exception names to views -#idp.errors.exceptionMappings = ExceptionToViewPropertyBean -# Set if a different default view name for events and exceptions is needed -#idp.errors.defaultView = error - -# Set to false to disable the IdP session layer -#idp.session.enabled = true - -# Set to "shibboleth.StorageService" for server-side storage of user sessions -#idp.session.StorageService = shibboleth.ClientSessionStorageService - -# Size of session IDs -#idp.session.idSize = 32 -# Bind sessions to IP addresses -#idp.session.consistentAddress = true -# Inactivity timeout -#idp.session.timeout = PT60M -# Extra time to store sessions for logout -#idp.session.slop = PT0S -# Tolerate storage-related errors -#idp.session.maskStorageFailure = false -# Track information about SPs logged into -#idp.session.trackSPSessions = false -# Support lookup by SP for SAML logout -#idp.session.secondaryServiceIndex = false -# Length of time to track SP sessions -#idp.session.defaultSPlifetime = PT2H - -# Regular expression matching login flows to enable, e.g. IPAddress|Password -idp.authn.flows= Password - -# Regular expression of forced "initial" methods when no session exists, -# usually in conjunction with the idp.authn.resolveAttribute property below. -#idp.authn.flows.initial = Password - -# Set to an attribute ID to resolve prior to selecting authentication flows; -# its values are used to filter the flows to allow. -#idp.authn.resolveAttribute = eduPersonAssurance - -# Default lifetime and timeout of various authentication methods -#idp.authn.defaultLifetime = PT60M -#idp.authn.defaultTimeout = PT30M - -# Whether to populate relying party user interface information for display -# during authentication, consent, terms-of-use. -#idp.authn.rpui = true - -# Whether to prioritize "active" results when an SP requests more than -# one possible matching login method (V2 behavior was to favor them) -#idp.authn.favorSSO = false - -# Whether to fail requests when a user identity after authentication -# doesn't match the identity in a pre-existing session. -#idp.authn.identitySwitchIsError = false - -# Set to "shibboleth.StorageService" or custom bean for alternate storage of consent -#idp.consent.StorageService = shibboleth.ClientPersistentStorageService - -# Set to "shibboleth.consent.AttributeConsentStorageKey" to use an attribute -# to key user consent storage records (and set the attribute name) -#idp.consent.userStorageKey = shibboleth.consent.PrincipalConsentStorageKey -#idp.consent.userStorageKeyAttribute = uid - -# Flags controlling how built-in attribute consent feature operates -#idp.consent.allowDoNotRemember = true -#idp.consent.allowGlobal = true -#idp.consent.allowPerAttribute = false - -# Whether attribute values and terms of use text are compared -#idp.consent.compareValues = false -# Maximum number of consent records for space-limited storage (e.g. cookies) -#idp.consent.maxStoredRecords = 10 -# Maximum number of consent records for larger/server-side storage (0 = no limit) -#idp.consent.expandedMaxStoredRecords = 0 - -# Time in milliseconds to expire consent storage records. -#idp.consent.storageRecordLifetime = P1Y - -# Whether to lookup metadata, etc. for every SP involved in a logout -# for use by user interface logic; adds overhead so off by default. -#idp.logout.elaboration = false - -# Whether to require logout requests/responses be signed/authenticated. -#idp.logout.authenticated = true - -# Message freshness and replay cache tuning -#idp.policy.messageLifetime = PT3M -#idp.policy.clockSkew = PT3M - -# Set to custom bean for alternate storage of replay cache -#idp.replayCache.StorageService = shibboleth.StorageService - -# Toggles whether to allow outbound messages via SAML artifact -idp.artifact.enabled = false -# Suppresses typical signing/encryption when artifact binding used -#idp.artifact.secureChannel = true -# May differ to direct SAML 2 artifact lookups to specific server nodes -#idp.artifact.endpointIndex = 2 -# Set to custom bean for alternate storage of artifact map state -#idp.artifact.StorageService = shibboleth.StorageService - -# Comma-delimited languages to use if not match can be found with the -# browser-supported languages, defaults to an empty list. -idp.ui.fallbackLanguages= en,fr,de - -# Storage service used by CAS protocol -# Defaults to shibboleth.StorageService (in-memory) -# MUST be server-side storage (e.g. in-memory, memcached, database) -# NOTE that idp.session.StorageService requires server-side storage -# when CAS protocol is enabled -#idp.cas.StorageService=shibboleth.StorageService - -# CAS service registry implementation class -#idp.cas.serviceRegistryClass=net.shibboleth.idp.cas.service.PatternServiceRegistry - -# Profile flows in which the ProfileRequestContext should be exposed -# in servlet request under the key "opensamlProfileRequestContext" -#idp.profile.exposeProfileRequestContextInServletRequest = SAML2/POST/SSO,SAML2/Redirect/SSO - -# F-TICKS auditing - set a salt to include hashed username -#idp.fticks.federation=MyFederation -#idp.fticks.algorithm=SHA-256 -#idp.fticks.salt=somethingsecret -#idp.fticks.loghost=localhost -#idp.fticks.logport=514 diff --git a/test-compose/idp/container_files/config/shib-idp/conf/intercept/consent-intercept-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/intercept/consent-intercept-config.xml index ca183a7..66f06a0 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/intercept/consent-intercept-config.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/intercept/consent-intercept-config.xml @@ -24,8 +24,7 @@ - - - - - - - - - - - - - - + + \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/conf/intercept/context-check-intercept-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/intercept/context-check-intercept-config.xml index 809f1d4..aae07f0 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/intercept/context-check-intercept-config.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/intercept/context-check-intercept-config.xml @@ -22,7 +22,7 @@ - + @@ -39,4 +39,25 @@ + + + \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/conf/intercept/expiring-password-intercept-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/intercept/expiring-password-intercept-config.xml index 5447b16..b3bf96d 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/intercept/expiring-password-intercept-config.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/intercept/expiring-password-intercept-config.xml @@ -19,14 +19,8 @@ The format pattern parses the value and the negative offset determines how soon to warn the user beforehand. --> - - - - - - - + c:attribute="passwordExpiration" c:formatString="yyyyMMddHHmmss'T'" + p:resultIfMissing="true" p:offset="-P14D" /> diff --git a/test-compose/idp/container_files/config/shib-idp/conf/intercept/external-intercept-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/intercept/external-intercept-config.xml new file mode 100644 index 0000000..1d0fc29 --- /dev/null +++ b/test-compose/idp/container_files/config/shib-idp/conf/intercept/external-intercept-config.xml @@ -0,0 +1,25 @@ + + + + + + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/intercept/impersonate-intercept-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/intercept/impersonate-intercept-config.xml new file mode 100644 index 0000000..7dfda2b --- /dev/null +++ b/test-compose/idp/container_files/config/shib-idp/conf/intercept/impersonate-intercept-config.xml @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/intercept/intercept-events-flow.xml b/test-compose/idp/container_files/config/shib-idp/conf/intercept/intercept-events-flow.xml index 5cb30d5..6214e80 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/intercept/intercept-events-flow.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/intercept/intercept-events-flow.xml @@ -10,9 +10,11 @@ report custom events in response to unusual conditions. --> - - + + + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/intercept/profile-intercept.xml b/test-compose/idp/container_files/config/shib-idp/conf/intercept/profile-intercept.xml index bb3d3a7..f086cfa 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/intercept/profile-intercept.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/intercept/profile-intercept.xml @@ -30,25 +30,13 @@ - + + + + + - - - - - - - true - TRUE - YES - yes - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/ldap.properties b/test-compose/idp/container_files/config/shib-idp/conf/ldap.properties index e207f06..d874509 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/ldap.properties +++ b/test-compose/idp/container_files/config/shib-idp/conf/ldap.properties @@ -5,7 +5,7 @@ idp.authn.LDAP.authenticator = bindSearchAuthenticator ## Connection properties ## -idp.authn.LDAP.ldapURL = ldap://data:389 +idp.authn.LDAP.ldapURL=ldap://data:389 idp.authn.LDAP.useStartTLS = false idp.authn.LDAP.useSSL = false # Time in milliseconds that connects will block @@ -16,40 +16,38 @@ idp.authn.LDAP.useSSL = false ## SSL configuration, either jvmTrust, certificateTrust, or keyStoreTrust #idp.authn.LDAP.sslConfig = certificateTrust ## If using certificateTrust above, set to the trusted certificate's path -idp.authn.LDAP.trustCertificates = %{idp.home}/credentials/ldap-server.crt +idp.authn.LDAP.trustCertificates=%{idp.home}/credentials/ldap-server.crt ## If using keyStoreTrust above, set to the truststore path -idp.authn.LDAP.trustStore = %{idp.home}/credentials/ldap-server.truststore +idp.authn.LDAP.trustStore=%{idp.home}/credentials/ldap-server.truststore ## Return attributes during authentication -idp.authn.LDAP.returnAttributes = passwordExpirationTime,loginGraceRemaining +idp.authn.LDAP.returnAttributes=passwordExpirationTime,loginGraceRemaining ## DN resolution properties ## # Search DN resolution, used by anonSearchAuthenticator, bindSearchAuthenticator # for AD: CN=Users,DC=example,DC=org -idp.authn.LDAP.baseDN = ou=People,dc=internet2,dc=edu +idp.authn.LDAP.baseDN=ou=People,dc=internet2,dc=edu #idp.authn.LDAP.subtreeSearch = false -idp.authn.LDAP.userFilter = (uid={user}) +idp.authn.LDAP.userFilter=(uid={user}) # bind search configuration # for AD: idp.authn.LDAP.bindDN=adminuser@domain.com -idp.authn.LDAP.bindDN = cn=admin,dc=internet2,dc=edu -idp.authn.LDAP.bindDNCredential = password +idp.authn.LDAP.bindDN=cn=admin,dc=internet2,dc=edu # Format DN resolution, used by directAuthenticator, adAuthenticator # for AD use idp.authn.LDAP.dnFormat=%s@domain.com -idp.authn.LDAP.dnFormat = uid=%s,ou=People,dc=internet2,dc=edu +idp.authn.LDAP.dnFormat=uid=%s,ou=People,dc=internet2,dc=edu # LDAP attribute configuration, see attribute-resolver.xml # Note, this likely won't apply to the use of legacy V2 resolver configurations -idp.attribute.resolver.LDAP.ldapURL = %{idp.authn.LDAP.ldapURL} -idp.attribute.resolver.LDAP.connectTimeout = %{idp.authn.LDAP.connectTimeout:PT3S} -idp.attribute.resolver.LDAP.responseTimeout = %{idp.authn.LDAP.responseTimeout:PT3S} -idp.attribute.resolver.LDAP.baseDN = %{idp.authn.LDAP.baseDN:undefined} -idp.attribute.resolver.LDAP.bindDN = %{idp.authn.LDAP.bindDN:undefined} -idp.attribute.resolver.LDAP.bindDNCredential = %{idp.authn.LDAP.bindDNCredential:undefined} -idp.attribute.resolver.LDAP.useStartTLS = %{idp.authn.LDAP.useStartTLS:true} -idp.attribute.resolver.LDAP.trustCertificates = %{idp.authn.LDAP.trustCertificates:undefined} -idp.attribute.resolver.LDAP.searchFilter = (uid=$resolutionContext.principal) +idp.attribute.resolver.LDAP.ldapURL=%{idp.authn.LDAP.ldapURL} +idp.attribute.resolver.LDAP.connectTimeout=%{idp.authn.LDAP.connectTimeout:PT3S} +idp.attribute.resolver.LDAP.responseTimeout=%{idp.authn.LDAP.responseTimeout:PT3S} +idp.attribute.resolver.LDAP.baseDN=%{idp.authn.LDAP.baseDN:undefined} +idp.attribute.resolver.LDAP.bindDN=%{idp.authn.LDAP.bindDN:undefined} +idp.attribute.resolver.LDAP.useStartTLS=%{idp.authn.LDAP.useStartTLS:true} +idp.attribute.resolver.LDAP.trustCertificates=%{idp.authn.LDAP.trustCertificates:undefined} +idp.attribute.resolver.LDAP.searchFilter=(uid=$resolutionContext.principal) # LDAP pool configuration, used for both authn and DN resolution #idp.pool.LDAP.minSize = 3 @@ -60,4 +58,3 @@ idp.attribute.resolver.LDAP.searchFilter = (uid=$resolutionContext.princi #idp.pool.LDAP.prunePeriod = PT5M #idp.pool.LDAP.idleTime = PT10M #idp.pool.LDAP.blockWaitTime = PT3S -#idp.pool.LDAP.failFastInitialize = false diff --git a/test-compose/idp/container_files/config/shib-idp/conf/ldap.properties.dist b/test-compose/idp/container_files/config/shib-idp/conf/ldap.properties.dist deleted file mode 100644 index e045c8e..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/ldap.properties.dist +++ /dev/null @@ -1,63 +0,0 @@ -# LDAP authentication configuration, see authn/ldap-authn-config.xml -# Note, this doesn't apply to the use of JAAS - -## Authenticator strategy, either anonSearchAuthenticator, bindSearchAuthenticator, directAuthenticator, adAuthenticator -#idp.authn.LDAP.authenticator = anonSearchAuthenticator - -## Connection properties ## -idp.authn.LDAP.ldapURL = ldap://localhost:10389 -idp.authn.LDAP.useStartTLS = false -idp.authn.LDAP.useSSL = false -# Time in milliseconds that connects will block -#idp.authn.LDAP.connectTimeout = PT3S -# Time in milliseconds to wait for responses -#idp.authn.LDAP.responseTimeout = PT3S - -## SSL configuration, either jvmTrust, certificateTrust, or keyStoreTrust -#idp.authn.LDAP.sslConfig = certificateTrust -## If using certificateTrust above, set to the trusted certificate's path -idp.authn.LDAP.trustCertificates = %{idp.home}/credentials/ldap-server.crt -## If using keyStoreTrust above, set to the truststore path -idp.authn.LDAP.trustStore = %{idp.home}/credentials/ldap-server.truststore - -## Return attributes during authentication -idp.authn.LDAP.returnAttributes = passwordExpirationTime,loginGraceRemaining - -## DN resolution properties ## - -# Search DN resolution, used by anonSearchAuthenticator, bindSearchAuthenticator -# for AD: CN=Users,DC=example,DC=org -idp.authn.LDAP.baseDN = ou=people,dc=example,dc=org -#idp.authn.LDAP.subtreeSearch = false -idp.authn.LDAP.userFilter = (uid={user}) -# bind search configuration -# for AD: idp.authn.LDAP.bindDN=adminuser@domain.com -idp.authn.LDAP.bindDN = uid=myservice,ou=system -idp.authn.LDAP.bindDNCredential = myServicePassword - -# Format DN resolution, used by directAuthenticator, adAuthenticator -# for AD use idp.authn.LDAP.dnFormat=%s@domain.com -idp.authn.LDAP.dnFormat = uid=%s,ou=people,dc=example,dc=org - -# LDAP attribute configuration, see attribute-resolver.xml -# Note, this likely won't apply to the use of legacy V2 resolver configurations -idp.attribute.resolver.LDAP.ldapURL = %{idp.authn.LDAP.ldapURL} -idp.attribute.resolver.LDAP.connectTimeout = %{idp.authn.LDAP.connectTimeout:PT3S} -idp.attribute.resolver.LDAP.responseTimeout = %{idp.authn.LDAP.responseTimeout:PT3S} -idp.attribute.resolver.LDAP.baseDN = %{idp.authn.LDAP.baseDN:undefined} -idp.attribute.resolver.LDAP.bindDN = %{idp.authn.LDAP.bindDN:undefined} -idp.attribute.resolver.LDAP.bindDNCredential = %{idp.authn.LDAP.bindDNCredential:undefined} -idp.attribute.resolver.LDAP.useStartTLS = %{idp.authn.LDAP.useStartTLS:true} -idp.attribute.resolver.LDAP.trustCertificates = %{idp.authn.LDAP.trustCertificates:undefined} -idp.attribute.resolver.LDAP.searchFilter = (uid=$resolutionContext.principal) - -# LDAP pool configuration, used for both authn and DN resolution -#idp.pool.LDAP.minSize = 3 -#idp.pool.LDAP.maxSize = 10 -#idp.pool.LDAP.validateOnCheckout = false -#idp.pool.LDAP.validatePeriodically = true -#idp.pool.LDAP.validatePeriod = PT5M -#idp.pool.LDAP.prunePeriod = PT5M -#idp.pool.LDAP.idleTime = PT10M -#idp.pool.LDAP.blockWaitTime = PT3S -#idp.pool.LDAP.failFastInitialize = false diff --git a/test-compose/idp/container_files/config/shib-idp/conf/logback.xml b/test-compose/idp/container_files/config/shib-idp/conf/logback.xml index 104ec4c..9a91d26 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/logback.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/logback.xml @@ -5,60 +5,65 @@ Variables for simplifying logging configuration. http://logback.qos.ch/manual/configuration.html#variableSubstitution --> + + + + + - + - - - - - - + + + + + + + - - - + + + - - - - + - + - + + + + - + - + - + - - - - - + + + + @@ -66,17 +71,13 @@ - - ${idp.logfiles}/idp-process.log + + /tmp/logidp-process - - ${idp.logfiles}/idp-process-%d{yyyy-MM-dd}.log.gz - ${idp.loghistory:-180} - UTF-8 - %date{ISO8601} - %level [%logger:%line] - %msg%n%ex{short} + %date{ISO8601} - %mdc{idp.remote_addr} - %level [%logger:%line] - %msg%n%ex{full} @@ -97,22 +98,18 @@ 0 - + WARN - ${idp.logfiles}/idp-warn.log + /tmp/logidp-warn - - ${idp.logfiles}/idp-warn-%d{yyyy-MM-dd}.log.gz - ${idp.loghistory:-180} - UTF-8 - %date{ISO8601} - %level [%logger:%line] - %msg%n%ex{short} + %date{ISO8601} - %mdc{idp.remote_addr} - %level [%logger:%line] - %msg%n%ex{short} @@ -129,13 +126,9 @@ - - ${idp.logfiles}/idp-audit.log + + /tmp/logidp-audit - - ${idp.logfiles}/idp-audit-%d{yyyy-MM-dd}.log.gz - ${idp.loghistory:-180} - UTF-8 @@ -144,13 +137,9 @@ - - ${idp.logfiles}/idp-consent-audit.log + + /tmp/logidp-consent-audit - - ${idp.logfiles}/idp-consent-audit-%d{yyyy-MM-dd}.log.gz - ${idp.loghistory:-180} - UTF-8 @@ -183,4 +172,4 @@ - \ No newline at end of file + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/logback.xml.dist b/test-compose/idp/container_files/config/shib-idp/conf/logback.xml.dist new file mode 100644 index 0000000..ac19b1f --- /dev/null +++ b/test-compose/idp/container_files/config/shib-idp/conf/logback.xml.dist @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${idp.logfiles}/idp-process.log + + + ${idp.logfiles}/idp-process-%d{yyyy-MM-dd}.log.gz + ${idp.loghistory} + + + + UTF-8 + %date{ISO8601} - %mdc{idp.remote_addr} - %level [%logger:%line] - %msg%n%ex{full} + + + + + + + VelocityStatusMatcher + ResourceManager : unable to find resource 'status.vm' in any resource loader. + + VelocityStatusMatcher.matches(formattedMessage) + + DENY + + + + + + 0 + + + + + + WARN + + + ${idp.logfiles}/idp-warn.log + + + ${idp.logfiles}/idp-warn-%d{yyyy-MM-dd}.log.gz + ${idp.loghistory} + + + + UTF-8 + %date{ISO8601} - %mdc{idp.remote_addr} - %level [%logger:%line] - %msg%n%ex{short} + + + + + + + VelocityStatusMatcher + ResourceManager : unable to find resource 'status.vm' in any resource loader. + + VelocityStatusMatcher.matches(formattedMessage) + + DENY + + + + + + ${idp.logfiles}/idp-audit.log + + + ${idp.logfiles}/idp-audit-%d{yyyy-MM-dd}.log.gz + ${idp.loghistory} + + + + UTF-8 + %msg%n + + + + + + ${idp.logfiles}/idp-consent-audit.log + + + ${idp.logfiles}/idp-consent-audit-%d{yyyy-MM-dd}.log.gz + ${idp.loghistory} + + + + UTF-8 + %msg%n + + + + + + ${idp.fticks.loghost:-localhost} + ${idp.fticks.logport:-514} + AUTH + [%thread] %logger %msg + + + + + + + + + + + + + + + + + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/logback.xml.tmp3 b/test-compose/idp/container_files/config/shib-idp/conf/logback.xml.tmp3 new file mode 100644 index 0000000..4eebeaa --- /dev/null +++ b/test-compose/idp/container_files/config/shib-idp/conf/logback.xml.tmp3 @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /tmp/logidp-process + + + ${idp.logfiles}/idp-process-%d{yyyy-MM-dd}.log.gz + ${idp.loghistory} + + + + UTF-8 + %date{ISO8601} - %mdc{idp.remote_addr} - %level [%logger:%line] - %msg%n%ex{full} + + + + + + + VelocityStatusMatcher + ResourceManager : unable to find resource 'status.vm' in any resource loader. + + VelocityStatusMatcher.matches(formattedMessage) + + DENY + + + + + + 0 + + + + + + WARN + + + /tmp/logidp-warn + + + ${idp.logfiles}/idp-warn-%d{yyyy-MM-dd}.log.gz + ${idp.loghistory} + + + + UTF-8 + %date{ISO8601} - %mdc{idp.remote_addr} - %level [%logger:%line] - %msg%n%ex{short} + + + + + + + VelocityStatusMatcher + ResourceManager : unable to find resource 'status.vm' in any resource loader. + + VelocityStatusMatcher.matches(formattedMessage) + + DENY + + + + + + /tmp/logidp-audit + + + ${idp.logfiles}/idp-audit-%d{yyyy-MM-dd}.log.gz + ${idp.loghistory} + + + + UTF-8 + %msg%n + + + + + + ${idp.logfiles}/idp-consent-audit.log + + + ${idp.logfiles}/idp-consent-audit-%d{yyyy-MM-dd}.log.gz + ${idp.loghistory} + + + + UTF-8 + %msg%n + + + + + + ${idp.fticks.loghost:-localhost} + ${idp.fticks.logport:-514} + AUTH + [%thread] %logger %msg + + + + + + + + + + + + + + + + + + + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/metadata-providers.xml b/test-compose/idp/container_files/config/shib-idp/conf/metadata-providers.xml index 6daa0ca..4939ff0 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/metadata-providers.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/metadata-providers.xml @@ -1,15 +1,25 @@ - + urn:oasis:names:tc:SAML:2.0:assertion http://docs.oasis-open.org/security/saml/v2.0/saml-schema-assertion-2.0.xsd + urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd + urn:oasis:names:tc:SAML:metadata:algsupport http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-metadata-algsupport-v1.0.xsd + http://www.w3.org/2000/09/xmldsig# http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd + http://www.w3.org/2009/xmldsig11# http://www.w3.org/TR/2013/REC-xmldsig-core1-20130411/xmldsig11-schema.xsd + http://www.w3.org/2001/04/xmlenc# http://www.w3.org/TR/xmlenc-core/xenc-schema.xsd + http://www.w3.org/2009/xmlenc11# http://www.w3.org/TR/2013/REC-xmlenc-core1-20130411/xenc-schema-11.xsd"> + @@ -62,25 +72,48 @@ --> - - - - - - - - md:SPSSODescriptor - - + + + + + + + + + + + + + + + https://mdq.incommon.org/ + + + + + + + + + + + + https://mdq.incommon.org/ - + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/relying-party.xml b/test-compose/idp/container_files/config/shib-idp/conf/relying-party.xml index 1f48cff..a972b97 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/relying-party.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/relying-party.xml @@ -34,16 +34,20 @@ - - + - + + --> + + - - + + diff --git a/test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.properties b/test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.properties index 8530c4f..7169c5e 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.properties +++ b/test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.properties @@ -4,10 +4,6 @@ # identifiers. See saml-nameid.xml and c14n/subject-c14n.xml for advanced # settings -# Comment out to disable legacy NameID generation via Attribute Resolver -#idp.nameid.saml2.legacyGenerator = shibboleth.LegacySAML2NameIDGenerator -#idp.nameid.saml1.legacyGenerator = shibboleth.LegacySAML1NameIdentifierGenerator - # Default NameID Formats to use when nothing else is called for. # Don't change these just to change the Format used for a single SP! #idp.nameid.saml2.default = urn:oasis:names:tc:SAML:2.0:nameid-format:transient @@ -18,12 +14,12 @@ # Persistent IDs can be computed on the fly with a hash, or managed in a database -# For computed IDs, set a source attribute and a secret salt: +# For computed IDs, set a source attribute, and a secret salt in secrets.properties #idp.persistentId.sourceAttribute = changethistosomethingreal #idp.persistentId.useUnfilteredAttributes = true -# Do *NOT* share the salt with other people, it's like divulging your private key. #idp.persistentId.algorithm = SHA -#idp.persistentId.salt = changethistosomethingrandom +# BASE64 will match V2 values, we recommend BASE32 encoding for new installs. +idp.persistentId.encoding = BASE32 # To use a database, use shibboleth.StoredPersistentIdGenerator #idp.persistentId.generator = shibboleth.ComputedPersistentIdGenerator diff --git a/test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.xml b/test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.xml index ea97448..7d82cf5 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.xml @@ -40,6 +40,7 @@ @@ -53,6 +54,7 @@ diff --git a/test-compose/idp/container_files/config/shib-idp/conf/services.properties b/test-compose/idp/container_files/config/shib-idp/conf/services.properties index eee86ee..9dc3dff 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/services.properties +++ b/test-compose/idp/container_files/config/shib-idp/conf/services.properties @@ -12,19 +12,30 @@ #idp.service.logging.failFast = true idp.service.logging.checkInterval = PT5M -# Set to shibboleth.LegacyRelyingPartyResolverResources with legacy V2 relying-party.xml #idp.service.relyingparty.resources = shibboleth.RelyingPartyResolverResources #idp.service.relyingparty.failFast = false idp.service.relyingparty.checkInterval = PT15M +# Set true to limit metadata-driven settings lookup to decoded EntityAttributes +idp.service.relyingparty.ignoreUnmappedEntityAttributes=true #idp.service.metadata.resources = shibboleth.MetadataResolverResources #idp.service.metadata.failFast = false #idp.service.metadata.checkInterval = PT0S +# Set to false if not using ByReference MetadataFilters for a small perf gain +#idp.service.metadata.enableByReferenceFilters = true + +#idp.service.attribute.registry.resources = shibboleth.AttributeRegistryResources +#idp.service.attribute.registry.namingRegistry = shibboleth.DefaultNamingRegistry +#idp.service.attribute.registry.failFast = false +idp.service.attribute.registry.checkInterval = PT15M +# Default control of whether to encode XML attribute data with xsi:type +idp.service.attribute.registry.encodeType = false #idp.service.attribute.resolver.resources = shibboleth.AttributeResolverResources #idp.service.attribute.resolver.failFast = false idp.service.attribute.resolver.checkInterval = PT15M #idp.service.attribute.resolver.maskFailures = true +#idp.service.attribute.resolver.stripNulls = false #idp.service.attribute.filter.resources = shibboleth.AttributeFilterResources # NOTE: Failing the filter fast leaves no filters enabled. @@ -44,18 +55,21 @@ idp.service.access.checkInterval = PT5M #idp.service.cas.registry.failFast = false idp.service.cas.registry.checkInterval = PT15M +#idp.service.managedBean.resources = shibboleth.ManagedBeanResources +#idp.service.managedBean.failFast = false +idp.service.managedBean.checkInterval = PT15M + #idp.message.resources = shibboleth.MessageSourceResources #idp.message.cacheSeconds = 300 # Parameters for pre-defined HttpClient instances which perform in-memory and filesystem caching. # These are used with components such as remote configuration resources that are explicitly wired # with these client instances, *not* by default with HTTP metadata resolvers. -#idp.httpclient.useTrustEngineTLSSocketFactory = false #idp.httpclient.useSecurityEnhancedTLSSocketFactory = false #idp.httpclient.connectionDisregardTLSCertificate = false -#idp.httpclient.connectionRequestTimeout = 60000 -#idp.httpclient.connectionTimeout = 60000 -#idp.httpclient.socketTimeout = 60000 +#idp.httpclient.connectionRequestTimeout = PT1M +#idp.httpclient.connectionTimeout = PT1M +#idp.httpclient.socketTimeout = PT1M #idp.httpclient.maxConnectionsTotal = 100 #idp.httpclient.maxConnectionsPerRoute = 100 #idp.httpclient.memorycaching.maxCacheEntries = 50 diff --git a/test-compose/idp/container_files/config/shib-idp/conf/services.xml b/test-compose/idp/container_files/config/shib-idp/conf/services.xml index 313b636..5a4cdea 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/services.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/services.xml @@ -4,55 +4,11 @@ xmlns:c="http://www.springframework.org/schema/c" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd - http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> + http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd" - - + default-init-method="initialize" + default-destroy-method="destroy"> + - - %{idp.home}/conf/relying-party.xml - %{idp.home}/system/conf/legacy-relying-party-defaults.xml - - %{idp.home}/conf/metadata-providers.xml %{idp.home}/system/conf/metadata-providers-system.xml @@ -113,6 +63,13 @@ %{idp.home}/conf/attribute-resolver.xml + + %{idp.home}/conf/attribute-registry.xml + %{idp.home}/system/conf/attribute-registry-system.xml + %{idp.home}/conf/attributes/default-rules.xml + %{idp.home}/conf/attribute-resolver.xml + + %{idp.home}/conf/attribute-filter.xml diff --git a/test-compose/idp/container_files/config/shib-idp/conf/session-manager.xml b/test-compose/idp/container_files/config/shib-idp/conf/session-manager.xml index f195014..7372029 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/session-manager.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/session-manager.xml @@ -15,22 +15,6 @@ - - - - - - - - - - - - - - - - + +
+ + +
+ +
+ + +
+ + + +
+ + +
+ +
+ +
+ +
+ +
+ + + #end + + + +
+ +
+ + + + \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/views/duo.vm b/test-compose/idp/container_files/config/shib-idp/views/duo.vm index cf4f96a..d212df7 100644 --- a/test-compose/idp/container_files/config/shib-idp/views/duo.vm +++ b/test-compose/idp/container_files/config/shib-idp/views/duo.vm @@ -57,8 +57,8 @@ >
+ #parse("csrf/csrf.vm") -

@@ -67,7 +67,7 @@ diff --git a/test-compose/idp/container_files/config/shib-idp/views/error.vm b/test-compose/idp/container_files/config/shib-idp/views/error.vm index c595175..dcb8e2b 100644 --- a/test-compose/idp/container_files/config/shib-idp/views/error.vm +++ b/test-compose/idp/container_files/config/shib-idp/views/error.vm @@ -3,6 +3,7 @@ ## ## Velocity context will contain the following properties ## flowRequestContext - the Spring Web Flow RequestContext +## profileRequestContext - root of context tree ## encoder - HTMLEncoder class ## request - HttpServletRequest ## response - HttpServletResponse diff --git a/test-compose/idp/container_files/config/shib-idp/views/intercept/attribute-release.vm b/test-compose/idp/container_files/config/shib-idp/views/intercept/attribute-release.vm index 0b74551..c170b69 100644 --- a/test-compose/idp/container_files/config/shib-idp/views/intercept/attribute-release.vm +++ b/test-compose/idp/container_files/config/shib-idp/views/intercept/attribute-release.vm @@ -6,6 +6,7 @@ ## attributeReleaseContext - context holding consentable attributes ## attributeReleaseFlowDescriptor - attribute consent flow descriptor ## attributeDisplayNameFunction - function to display attribute name +## attributeDisplayDescriptionFunction - function to display attribute description ## consentContext - context representing the state of a consent flow ## encoder - HTMLEncoder class ## flowExecutionKey - SWF execution key (this is built into the flowExecutionUrl) @@ -21,7 +22,7 @@ #set ($informationURL = $rpUIContext.informationURL) #set ($privacyStatementURL = $rpUIContext.privacyStatementURL) #set ($rpOrganizationLogo = $rpUIContext.getLogo()) -#set ($rpOrganizationName = $rpUIContext.organizationName) +#set ($rpOrganizationName = $rpUIContext.organizationDisplayName) #set ($replaceDollarWithNewline = true) ## @@ -34,6 +35,7 @@
+ #parse("csrf/csrf.vm")
@@ -78,7 +80,7 @@ #foreach ($value in $attribute.values) #if ($replaceDollarWithNewline) - #set ($encodedValue = $encoder.encodeForHTML($value.getDisplayValue()).replaceAll($encoder.encodeForHTML("$"),"
")) + #set ($encodedValue = $encoder.encodeForHTML($value.getDisplayValue()).replaceAll($encoder.encodeForHTML('$'),"
")) #else #set ($encodedValue = $encoder.encodeForHTML($value.getDisplayValue())) #end diff --git a/test-compose/idp/container_files/config/shib-idp/views/intercept/impersonate.vm b/test-compose/idp/container_files/config/shib-idp/views/intercept/impersonate.vm new file mode 100644 index 0000000..37c486c --- /dev/null +++ b/test-compose/idp/container_files/config/shib-idp/views/intercept/impersonate.vm @@ -0,0 +1,90 @@ +## +## Velocity Template for expiring password view +## +## Velocity context will contain the following properties +## flowExecutionUrl - the form action location +## flowRequestContext - the Spring Web Flow RequestContext +## flowExecutionKey - the SWF execution key (this is built into the flowExecutionUrl) +## profileRequestContext - root of context tree +## rpUIContext - the context with SP UI information from the metadata +## encoder - HTMLEncoder class +## request - HttpServletRequest +## response - HttpServletResponse +## environment - Spring Environment object for property resolution +## custom - arbitrary object injected by deployer +## +#set ($rpContext = $profileRequestContext.getSubcontext('net.shibboleth.idp.profile.context.RelyingPartyContext')) + + + + + + #springMessageText("idp.title", "Web Login Service") + + + + +
+
+
+ #springMessageText( +

#springMessageText("idp.impersonate.header", "Account Impersonation")

+
+ +
+ + + #parse("csrf/csrf.vm") + #set ($serviceName = $rpUIContext.serviceName) + #if ($serviceName && !$rpContext.getRelyingPartyId().contains($serviceName)) + + $encoder.encodeForHTML($serviceName) + + #end + + + #springMessageText("idp.impersonate.text", "Enter an account name to impersonate to this service or continue normally.") + + +
+ + + + + +
+ +
+ +
+ +
+ +
+ + + +
+
+ +
+ +
+ +
+ + \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/views/intercept/terms-of-use.vm b/test-compose/idp/container_files/config/shib-idp/views/intercept/terms-of-use.vm index 1bf12c7..67b2c15 100644 --- a/test-compose/idp/container_files/config/shib-idp/views/intercept/terms-of-use.vm +++ b/test-compose/idp/container_files/config/shib-idp/views/intercept/terms-of-use.vm @@ -42,11 +42,13 @@
+ #parse("csrf/csrf.vm")
+ #parse("csrf/csrf.vm") #if ($requireCheckbox) diff --git a/test-compose/idp/container_files/config/shib-idp/views/login-error.vm b/test-compose/idp/container_files/config/shib-idp/views/login-error.vm index 44676b3..224976b 100644 --- a/test-compose/idp/container_files/config/shib-idp/views/login-error.vm +++ b/test-compose/idp/container_files/config/shib-idp/views/login-error.vm @@ -2,11 +2,13 @@ ## ## authenticationErrorContext - context containing error data, if available ## -#if ($authenticationErrorContext && $authenticationErrorContext.getClassifiedErrors().size() > 0 && $authenticationErrorContext.getClassifiedErrors().iterator().next() != "ReselectFlow") +#if ($authenticationErrorContext && $authenticationErrorContext.getClassifiedErrors().size() > 0) ## This handles errors that are classified by the message maps in the authentication config. #set ($eventId = $authenticationErrorContext.getClassifiedErrors().iterator().next()) - #set ($eventKey = $springMacroRequestContext.getMessage("$eventId", "login")) - #set ($message = $springMacroRequestContext.getMessage("${eventKey}.message", "Login Failure: $eventId")) + #if ($eventId != "ReselectFlow") + #set ($eventKey = $springMacroRequestContext.getMessage("$eventId", "login")) + #set ($message = $springMacroRequestContext.getMessage("${eventKey}.message", "Login Failure: $eventId")) + #end #elseif ($authenticationErrorContext && $authenticationErrorContext.getExceptions().size() > 0) ## This handles login exceptions that are left unclassified. #set ($loginException = $authenticationErrorContext.getExceptions().get(0)) diff --git a/test-compose/idp/container_files/config/shib-idp/views/login.vm b/test-compose/idp/container_files/config/shib-idp/views/login.vm index c421a99..7609d40 100644 --- a/test-compose/idp/container_files/config/shib-idp/views/login.vm +++ b/test-compose/idp/container_files/config/shib-idp/views/login.vm @@ -46,7 +46,7 @@ #parse("login-error.vm") - + #parse("csrf/csrf.vm") #set ($serviceName = $rpUIContext.serviceName) #if ($serviceName && !$rpContext.getRelyingPartyId().contains($serviceName)) @@ -58,22 +58,26 @@
+ value="#if($username)$encoder.encodeForHTML($username)#end" />
- +
+ ## You may need to modify this to taste, such as changing the flow name its checking for to authn/MFA. + #if (!$authenticationContext.getActiveResults().containsKey('authn/Password'))
+ #end + #end
- +
@@ -96,7 +100,7 @@ #end - #* + #* // // SP Description & Logo (optional) // These idpui lines will display added information (if available @@ -121,9 +125,9 @@
@@ -136,5 +140,5 @@
- + \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/views/logout-complete.vm b/test-compose/idp/container_files/config/shib-idp/views/logout-complete.vm index d780252..7341e69 100644 --- a/test-compose/idp/container_files/config/shib-idp/views/logout-complete.vm +++ b/test-compose/idp/container_files/config/shib-idp/views/logout-complete.vm @@ -14,6 +14,8 @@ ## environment - Spring Environment object for property resolution ## custom - arbitrary object injected by deployer ## +#set ($activeIdPSessions = $logoutContext and !$logoutContext.getIdPSessions().isEmpty()) +#set ($activeSPSessions = $logoutContext and !$logoutContext.getSessionMap().isEmpty()) @@ -32,12 +34,18 @@
+ #if ($activeIdPSessions) +

#springMessageText("idp.logout.cancelled", "Logout has been cancelled.")

+ #elseif ($activeSPSessions)

#springMessageText("idp.logout.local", "You elected not to log out of all the applications accessed during your session.")

+ #else +

#springMessageText("idp.logout.complete", "The logout operation is complete, and no other services appear to have been accessed during this session.")

+ #end
diff --git a/test-compose/idp/container_files/config/shib-idp/views/logout-propagate.vm b/test-compose/idp/container_files/config/shib-idp/views/logout-propagate.vm index 86b3fa1..470eff5 100644 --- a/test-compose/idp/container_files/config/shib-idp/views/logout-propagate.vm +++ b/test-compose/idp/container_files/config/shib-idp/views/logout-propagate.vm @@ -40,8 +40,8 @@
diff --git a/test-compose/idp/container_files/config/shib-idp/views/logout.vm b/test-compose/idp/container_files/config/shib-idp/views/logout.vm index 2342855..0b9103b 100644 --- a/test-compose/idp/container_files/config/shib-idp/views/logout.vm +++ b/test-compose/idp/container_files/config/shib-idp/views/logout.vm @@ -14,20 +14,30 @@ ## environment - Spring Environment object for property resolution ## custom - arbitrary object injected by deployer ## +#set ($rpContext = $profileRequestContext.getSubcontext("net.shibboleth.idp.profile.context.RelyingPartyContext")) +#if ($rpContext) +#set ($rpUIContext = $rpContext.getSubcontext("net.shibboleth.idp.ui.context.RelyingPartyUIContext")) +#end +#set ($promptForIdP = $logoutContext and !$logoutContext.getIdPSessions().isEmpty()) +#set ($promptForSP = $logoutContext and !$logoutContext.getSessionMap().isEmpty()) - #if ( $logoutContext and !$logoutContext.getSessionMap().isEmpty() ) + #* + #if ($promptForSP) + #elseif ($promptForIdP) + #end + *# #springMessageText("idp.title", "Web Login Service") -
+
#springMessageText( @@ -40,19 +50,38 @@ decision, and we don't have a good suggestion for a default.


- #if ( $logoutContext and !$logoutContext.getSessionMap().isEmpty() ) -

#springMessageText("idp.logout.ask", "Would you like to attempt to log out of all services accessed during your session? Please select Yes or No to ensure the logout operation completes, or wait a few seconds for Yes.")

-
+ #if ($rpContext) +

#springMessageText("idp.logout.sp-initiated", "You have been logged out of the following service:")

+
+ #if ($rpUIContext) + $encoder.encodeForHTML($rpUIContext.getServiceName()) + #else + $encoder.encodeForHTML($rpContext.getRelyingPartyId()) + #end +
+
+ #end + + #if ($promptForIdP or $promptForSP) +

#springMessageText("idp.logout.prompt", "Choose one of the following, or wait a few seconds for the default.")

+
-
- - -
+
+ +
+ +

#springMessageText("idp.logout.idponly.caption", "End your SSO session.")

+
+ #end -
-

#springMessageText("idp.logout.contactServices", "If you proceed, the system will attempt to contact the following services:")

-
    - #foreach ($sp in $logoutContext.getSessionMap().keySet()) + #if ($promptForSP) +
    + +

    #springMessageText("idp.logout.global.caption", "End your SSO session and attempt logout of services accessed during session.")

    +
    +

    #springMessageText("idp.logout.contactServices", "If instructed, the system will attempt to contact the following services:")

    +
      + #foreach ($sp in $logoutContext.getSessionMap().keySet()) #set ($rpCtx = $multiRPContext.getRelyingPartyContextById($sp)) #if ($rpCtx) #set ($rpUIContext = $rpCtx.getSubcontext("net.shibboleth.idp.ui.context.RelyingPartyUIContext")) @@ -62,8 +91,21 @@ #else
    1. $encoder.encodeForHTML($sp)
    2. #end - #end -
    + #end +
+
+
+ #end + + #if ($promptForIdP) +
+ +

#springMessageText("idp.logout.cancel.caption", "Cancel logout and retain your SSO session.")

+
+ #end + + #if ($promptForIdP or $promptForSP) + #else

#springMessageText("idp.logout.complete", "The logout operation is complete, and no other services appear to have been accessed during this session.")

@@ -73,8 +115,8 @@
@@ -87,5 +129,5 @@ - + \ No newline at end of file diff --git a/test-compose/idp/container_files/credentials/shib-idp/secrets.properties b/test-compose/idp/container_files/credentials/shib-idp/secrets.properties new file mode 100644 index 0000000..cfe7795 --- /dev/null +++ b/test-compose/idp/container_files/credentials/shib-idp/secrets.properties @@ -0,0 +1,13 @@ +# This is a reserved spot for most properties containing passwords or other secrets. +# Created by install at 2020-02-06T17:19:55.442Z + +# Access to internal AES encryption key +idp.sealer.storePassword = 90fa668e-ce0f-45e7-82f1-fa4bd0273b51 +idp.sealer.keyPassword = 90fa668e-ce0f-45e7-82f1-fa4bd0273b51 + +# Default access to LDAP authn and attribute stores. +idp.authn.LDAP.bindDNCredential = password +idp.attribute.resolver.LDAP.bindDNCredential = %{idp.authn.LDAP.bindDNCredential:undefined} + +# Salt used to generate persistent/pairwise IDs, must be kept secret +#idp.persistentId.salt = changethistosomethingrandom From b08dfe54710f53c918f9b6d1671cb7aaaab49f63 Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Fri, 7 Feb 2020 22:46:59 +0000 Subject: [PATCH 04/14] temporarily remove fulltest.sh from tests --- tests/main.bats | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/main.bats b/tests/main.bats index e1a04f0..c657a31 100644 --- a/tests/main.bats +++ b/tests/main.bats @@ -50,7 +50,7 @@ load ../common ./tests/clairscan.sh ${maintainer}/${imagename}:latest } -@test "080 The IdP successfully completed a full-cycle test with an SP" { - ./tests/fulltest.sh -} +#@test "080 The IdP successfully completed a full-cycle test with an SP" { +# ./tests/fulltest.sh +#} From e31b8c5457d591fd5c15b71d7ac8054f34808578 Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Sat, 8 Feb 2020 14:00:25 +0000 Subject: [PATCH 05/14] fix tests --- .../shib-idp/conf/attribute-resolver.xml | 1 - .../shib-idp/conf/metadata-providers.xml | 14 ---------- .../credentials/shib-idp/inc-md-cert-mdq.pem | 28 +++++++++++++++++++ tests/main.bats | 6 ++-- tests/sptest.login | 3 +- 5 files changed, 33 insertions(+), 19 deletions(-) create mode 100644 test-compose/idp/container_files/credentials/shib-idp/inc-md-cert-mdq.pem diff --git a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml b/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml index 9993dbc..a339cef 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml +++ b/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml @@ -210,7 +210,6 @@ principalCredential="%{idp.attribute.resolver.LDAP.bindDNCredential}" useStartTLS="%{idp.attribute.resolver.LDAP.useStartTLS:true}" connectTimeout="%{idp.attribute.resolver.LDAP.connectTimeout}" - trustFile="%{idp.attribute.resolver.LDAP.trustCertificates}" responseTimeout="%{idp.attribute.resolver.LDAP.responseTimeout}"> https://mdq.incommon.org/ - - - - - - - - - - https://mdq.incommon.org/ - - diff --git a/test-compose/idp/container_files/credentials/shib-idp/inc-md-cert-mdq.pem b/test-compose/idp/container_files/credentials/shib-idp/inc-md-cert-mdq.pem new file mode 100644 index 0000000..178dcf8 --- /dev/null +++ b/test-compose/idp/container_files/credentials/shib-idp/inc-md-cert-mdq.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIEvjCCAyagAwIBAgIJANpi9/mkU/zoMA0GCSqGSIb3DQEBCwUAMHQxCzAJBgNV +BAYTAlVTMQswCQYDVQQIDAJNSTESMBAGA1UEBwwJQW5uIEFyYm9yMRYwFAYDVQQK +DA1JbnRlcm5ldDIuZWR1MREwDwYDVQQLDAhJbkNvbW1vbjEZMBcGA1UEAwwQbWRx +LmluY29tbW9uLm9yZzAeFw0xODExMTMxNDI5NDNaFw0zODExMTAxNDI5NDNaMHQx +CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJNSTESMBAGA1UEBwwJQW5uIEFyYm9yMRYw +FAYDVQQKDA1JbnRlcm5ldDIuZWR1MREwDwYDVQQLDAhJbkNvbW1vbjEZMBcGA1UE +AwwQbWRxLmluY29tbW9uLm9yZzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoC +ggGBAJ0+fUTzYVSP6ZOutOEhNdp3WPCPOYqnB4sQFz7IeGbFL1o0lZjx5Izm4Yho +4wNDd0h486iSkHxNf5dDhCqgz7ZRSmbusOl98SYn70PrUQj/Nzs3w47dPg9Tpb/x +y44PvNLS/rE56hPgCz/fbHoTTiJt5eosysa1ZebQ3LEyW3jGm+LGtLbdIfkynKVQ +vpp1FVeCamzdeB3ZRICAvqTYQKE1JQDGlWrEsSW0VVEGNjfbzMzr/g4l8JRdMabQ +Jig8tj3UIXnu7A2CKSMJSy3WZ3HX+85oHEbL+EV4PtpQz765c69tUIdNTJax9jQ2 +1c3wL0K27HE8jSRlrXImD50R3dXQBKH+iiynBWxRPdyMBa1YfK+zZEWPbLHshSTc +9hkylQv3awmPR/+Plz5AtTpe5yss/Ifyp01wz1jt42R+6jDE+WbUjp5XDBCAjGEE +0FPaYtxjZLkmNl367bdTN12OIn/ixPNH+Z/S/4skdBB9Gc4lb2fEBywJQY0OYNOd +WOxmPwIDAQABo1MwUTAdBgNVHQ4EFgQUMHZuwMaYSJM5mlu3Wc4Ts5xq4/swHwYD +VR0jBBgwFoAUMHZuwMaYSJM5mlu3Wc4Ts5xq4/swDwYDVR0TAQH/BAUwAwEB/zAN +BgkqhkiG9w0BAQsFAAOCAYEAMr4wfLrSoPTzfpXtvL+2vrKBJNnRfuJpOYTbPKUc +DOP2QfzRlczi7suYJvd5rLiRonq8rjyPUyM8gvTfbTps+JhJ6S9mS6dTBxOV1qPZ +3Ab+XKmq8LUtguGRabKgJgmJH0+inR/wVoal7EVHcWXfij9AT8DZOXW88shc6grh +jUaFZBu/2+q8c8ee0e4ip8B+CVEnCwDKI0d+nTcSmPvAE34CNa33F+QGpXawv5yv +VvIpSaLAeFQhc/jKcnNHfy+Zi7JmSnKZiMvQCbWANQmDjHg7pGmBW9nyQcm6P2/B +0AVcEj1YTpAR8Mbh1pUdIhoB+chaNnFEIZsXeRsdbbAFpxodInlJ7WekfuvSQ6sU +EXpoyBGOeuuTmR1va8k3QeL8Wc4yNu/g5LwjmtvPrh2jBF8xujc4J6VzP8K2BjA4 +xk4LnXgjHOT93dBAJhVYJkykDHwyvHUvsBHoP6lfjrt5P8zunK2mdP/AZKik+Rdt +1GGlErV2AyWShTOaDLW6NxdP +-----END CERTIFICATE----- diff --git a/tests/main.bats b/tests/main.bats index c657a31..e1a04f0 100644 --- a/tests/main.bats +++ b/tests/main.bats @@ -50,7 +50,7 @@ load ../common ./tests/clairscan.sh ${maintainer}/${imagename}:latest } -#@test "080 The IdP successfully completed a full-cycle test with an SP" { -# ./tests/fulltest.sh -#} +@test "080 The IdP successfully completed a full-cycle test with an SP" { + ./tests/fulltest.sh +} diff --git a/tests/sptest.login b/tests/sptest.login index 53a2277..7c78181 100644 --- a/tests/sptest.login +++ b/tests/sptest.login @@ -1,2 +1,3 @@ name=; domain=idp.example.edu; j_username=kwhite; j_password=password; - +name=shibboleth; +name=form1; submit_value=Continue; domain=idp.example.edu; From 0fb311e735ae1a358824428dd8d9609b99a8c5f6 Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Wed, 19 Feb 2020 19:01:57 +0000 Subject: [PATCH 06/14] remove secrets from merge properties --- container_files/idp/idp.merge.properties | 2 -- 1 file changed, 2 deletions(-) diff --git a/container_files/idp/idp.merge.properties b/container_files/idp/idp.merge.properties index 830b59f..f72b7e7 100644 --- a/container_files/idp/idp.merge.properties +++ b/container_files/idp/idp.merge.properties @@ -1,5 +1,3 @@ idp.entityID=https://idp.example.org/idp/shibboleth -idp.sealer.storePassword=changeit -idp.sealer.keyPassword=changeit idp.scope=example.org From 1437c629eeafbf175ec873548e3836e27e5c9c74 Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Wed, 19 Feb 2020 19:10:27 +0000 Subject: [PATCH 07/14] bump tomcat --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b4c87ba..e7effa3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ FROM centos:centos7 # ##tomcat \ ENV TOMCAT_MAJOR=9 \ - TOMCAT_VERSION=9.0.30 \ + TOMCAT_VERSION=9.0.31 \ ##shib-idp \ VERSION=4.0.0-beta1 \ ##TIER \ From af6a557db73247094c2dbaf5ec07a87feb2e2345 Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Fri, 28 Feb 2020 16:42:39 +0000 Subject: [PATCH 08/14] update to beta2 --- Dockerfile | 4 ++-- container_files/idp/idp.installer.properties | 2 +- test-compose/idp/Dockerfile | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index e7effa3..90a691e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,9 +8,9 @@ FROM centos:centos7 ENV TOMCAT_MAJOR=9 \ TOMCAT_VERSION=9.0.31 \ ##shib-idp \ - VERSION=4.0.0-beta1 \ + VERSION=4.0.0-beta2 \ ##TIER \ - TIERVERSION=20200206 \ + TIERVERSION=20200228 \ ################## \ ### OTHER VARS ### \ ################## \ diff --git a/container_files/idp/idp.installer.properties b/container_files/idp/idp.installer.properties index 8e7c83d..5f4b195 100644 --- a/container_files/idp/idp.installer.properties +++ b/container_files/idp/idp.installer.properties @@ -1,4 +1,4 @@ -idp.src.dir=/tmp/shibboleth/shibboleth-identity-provider-4.0.0-beta1 +idp.src.dir=/tmp/shibboleth/shibboleth-identity-provider-4.0.0-beta2 idp.target.dir=/opt/shibboleth-idp idp.host.name=idp.example.org idp.sealer.password=changeit diff --git a/test-compose/idp/Dockerfile b/test-compose/idp/Dockerfile index 1cbb5db..dd9d1da 100644 --- a/test-compose/idp/Dockerfile +++ b/test-compose/idp/Dockerfile @@ -1,4 +1,4 @@ -FROM tier/shib-idp:4.0.beta_20200206 +FROM tier/shib-idp:4.0.beta2_20200228 # The build args below can be used at build-time to tell the build process where to find your config files. This is for a completely burned-in config. ARG TOMCFG=config/tomcat From d10f6810bb52cb27ed53e242c9a3eb37766863e6 Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Sat, 29 Feb 2020 15:56:47 +0000 Subject: [PATCH 09/14] bugfix --- test-compose/idp/Dockerfile | 2 +- .../shib-idp/conf/admin/general-admin.xml | 74 -- .../config/shib-idp/conf/admin/metrics.xml | 133 --- .../shib-idp/conf/attribute-registry.xml | 26 - .../shib-idp/conf/attribute-resolver-full.xml | 251 ------ .../shib-idp/conf/attribute-resolver-ldap.xml | 87 -- .../shib-idp/conf/attribute-resolver.xml.orig | 76 -- .../conf/attributes/custom/README.txt | 9 - .../conf/attributes/default-rules.xml | 803 ------------------ .../config/shib-idp/conf/audit.xml | 33 - .../shib-idp/conf/authn/authn-comparison.xml | 146 ---- .../shib-idp/conf/authn/authn-events-flow.xml | 22 - .../shib-idp/conf/authn/discovery-config.xml | 34 - .../shib-idp/conf/authn/duo-authn-config.xml | 29 - .../config/shib-idp/conf/authn/duo.properties | 30 - .../conf/authn/external-authn-config.xml | 70 -- .../conf/authn/function-authn-config.xml | 37 - .../shib-idp/conf/authn/general-authn.xml | 173 ---- .../conf/authn/ipaddress-authn-config.xml | 37 - .../shib-idp/conf/authn/jaas-authn-config.xml | 25 - .../config/shib-idp/conf/authn/jaas.config | 11 - .../shib-idp/conf/authn/krb5-authn-config.xml | 29 - .../shib-idp/conf/authn/ldap-authn-config.xml | 32 - .../shib-idp/conf/authn/mfa-authn-config.xml | 78 -- .../conf/authn/password-authn-config.xml | 134 --- .../conf/authn/remoteuser-authn-config.xml | 75 -- .../remoteuser-internal-authn-config.xml | 63 -- .../shib-idp/conf/authn/saml-authn-config.xml | 35 - .../conf/authn/spnego-authn-config.xml | 74 -- .../shib-idp/conf/authn/x509-authn-config.xml | 44 - .../conf/authn/x509-internal-authn-config.xml | 21 - .../attribute-sourced-subject-c14n-config.xml | 44 - .../conf/c14n/simple-subject-c14n-config.xml | 27 - .../conf/c14n/subject-c14n-events-flow.xml | 22 - .../shib-idp/conf/c14n/subject-c14n.xml | 150 ---- .../conf/c14n/x500-subject-c14n-config.xml | 37 - .../config/shib-idp/conf/cas-protocol.xml | 106 --- .../config/shib-idp/conf/credentials.xml | 68 -- .../config/shib-idp/conf/errors.xml | 125 --- .../config/shib-idp/conf/global.xml | 52 -- .../intercept/consent-intercept-config.xml | 120 --- .../context-check-intercept-config.xml | 63 -- .../expiring-password-intercept-config.xml | 31 - .../intercept/external-intercept-config.xml | 25 - .../impersonate-intercept-config.xml | 25 - .../conf/intercept/intercept-events-flow.xml | 20 - .../conf/intercept/profile-intercept.xml | 42 - .../config/shib-idp/conf/logback.xml.dist | 191 ----- .../config/shib-idp/conf/logback.xml.tmp3 | 191 ----- .../shib-idp/conf/saml-nameid.properties | 31 - .../config/shib-idp/conf/saml-nameid.xml | 64 -- .../config/shib-idp/conf/services.properties | 79 -- .../config/shib-idp/conf/services.xml | 101 --- .../config/shib-idp/conf/session-manager.xml | 29 - .../shib-idp/edit-webapp/css/consent.css | 150 ---- .../shib-idp/edit-webapp/css/logout.css | 17 - .../config/shib-idp/edit-webapp/css/main.css | 165 ---- .../edit-webapp/images/dummylogo-mobile.png | Bin 8208 -> 0 bytes .../shib-idp/edit-webapp/images/dummylogo.png | Bin 13742 -> 0 bytes .../edit-webapp/images/failure-32x32.png | Bin 2580 -> 0 bytes .../edit-webapp/images/success-32x32.png | Bin 2448 -> 0 bytes .../shib-idp/messages/messages.properties | 2 - .../shib-idp/views/admin/unlock-keys.vm | 97 --- .../client-storage/client-storage-read.vm | 53 -- .../client-storage/client-storage-write.vm | 53 -- .../config/shib-idp/views/duo.vm | 83 -- .../config/shib-idp/views/error.vm | 73 -- .../views/intercept/attribute-release.vm | 160 ---- .../views/intercept/expiring-password.vm | 54 -- .../shib-idp/views/intercept/impersonate.vm | 90 -- .../shib-idp/views/intercept/terms-of-use.vm | 69 -- .../config/shib-idp/views/login-error.vm | 26 - .../config/shib-idp/views/login.vm | 144 ---- .../config/shib-idp/views/logout-complete.vm | 67 -- .../config/shib-idp/views/logout-propagate.vm | 58 -- .../config/shib-idp/views/logout.vm | 133 --- .../shib-idp/views/spnego-unavailable.vm | 49 -- .../config/shib-idp/views/user-prefs.js | 45 - .../config/shib-idp/views/user-prefs.vm | 60 -- 79 files changed, 1 insertion(+), 5983 deletions(-) delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/admin/general-admin.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/admin/metrics.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/attribute-registry.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-full.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-ldap.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml.orig delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/attributes/custom/README.txt delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/attributes/default-rules.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/audit.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/authn-comparison.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/authn-events-flow.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/discovery-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/duo-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/duo.properties delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/external-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/function-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/general-authn.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/ipaddress-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/jaas-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/jaas.config delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/krb5-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/ldap-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/mfa-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/password-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/remoteuser-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/remoteuser-internal-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/saml-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/spnego-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/x509-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/authn/x509-internal-authn-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/c14n/attribute-sourced-subject-c14n-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/c14n/simple-subject-c14n-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/c14n/subject-c14n-events-flow.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/c14n/subject-c14n.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/c14n/x500-subject-c14n-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/cas-protocol.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/credentials.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/errors.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/global.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/intercept/consent-intercept-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/intercept/context-check-intercept-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/intercept/expiring-password-intercept-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/intercept/external-intercept-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/intercept/impersonate-intercept-config.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/intercept/intercept-events-flow.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/intercept/profile-intercept.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/logback.xml.dist delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/logback.xml.tmp3 delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.properties delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/services.properties delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/services.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/conf/session-manager.xml delete mode 100644 test-compose/idp/container_files/config/shib-idp/edit-webapp/css/consent.css delete mode 100644 test-compose/idp/container_files/config/shib-idp/edit-webapp/css/logout.css delete mode 100644 test-compose/idp/container_files/config/shib-idp/edit-webapp/css/main.css delete mode 100644 test-compose/idp/container_files/config/shib-idp/edit-webapp/images/dummylogo-mobile.png delete mode 100644 test-compose/idp/container_files/config/shib-idp/edit-webapp/images/dummylogo.png delete mode 100644 test-compose/idp/container_files/config/shib-idp/edit-webapp/images/failure-32x32.png delete mode 100644 test-compose/idp/container_files/config/shib-idp/edit-webapp/images/success-32x32.png delete mode 100644 test-compose/idp/container_files/config/shib-idp/messages/messages.properties delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/admin/unlock-keys.vm delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/client-storage/client-storage-read.vm delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/client-storage/client-storage-write.vm delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/duo.vm delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/error.vm delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/intercept/attribute-release.vm delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/intercept/expiring-password.vm delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/intercept/impersonate.vm delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/intercept/terms-of-use.vm delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/login-error.vm delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/login.vm delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/logout-complete.vm delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/logout-propagate.vm delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/logout.vm delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/spnego-unavailable.vm delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/user-prefs.js delete mode 100644 test-compose/idp/container_files/config/shib-idp/views/user-prefs.vm diff --git a/test-compose/idp/Dockerfile b/test-compose/idp/Dockerfile index dd9d1da..1cbb5db 100644 --- a/test-compose/idp/Dockerfile +++ b/test-compose/idp/Dockerfile @@ -1,4 +1,4 @@ -FROM tier/shib-idp:4.0.beta2_20200228 +FROM tier/shib-idp:4.0.beta_20200206 # The build args below can be used at build-time to tell the build process where to find your config files. This is for a completely burned-in config. ARG TOMCFG=config/tomcat diff --git a/test-compose/idp/container_files/config/shib-idp/conf/admin/general-admin.xml b/test-compose/idp/container_files/config/shib-idp/conf/admin/general-admin.xml deleted file mode 100644 index 2814bf6..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/admin/general-admin.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/admin/metrics.xml b/test-compose/idp/container_files/config/shib-idp/conf/admin/metrics.xml deleted file mode 100644 index fccf419..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/admin/metrics.xml +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/attribute-registry.xml b/test-compose/idp/container_files/config/shib-idp/conf/attribute-registry.xml deleted file mode 100644 index 8890f4b..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/attribute-registry.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-full.xml b/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-full.xml deleted file mode 100644 index ad75dbc..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-full.xml +++ /dev/null @@ -1,251 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-ldap.xml b/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-ldap.xml deleted file mode 100644 index 76e6d55..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver-ldap.xml +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml.orig b/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml.orig deleted file mode 100644 index 0ee236b..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/attribute-resolver.xml.orig +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - member - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/attributes/custom/README.txt b/test-compose/idp/container_files/config/shib-idp/conf/attributes/custom/README.txt deleted file mode 100644 index 98977b0..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/attributes/custom/README.txt +++ /dev/null @@ -1,9 +0,0 @@ -# You can create custom attribute mapping rules using -# simple property files stored in this directory tree. -# Spring property replacement is NOT supported. - -# As an example, a default SAML 2 rule for eduPersonPrincipalName would be: - -#id=eduPersonPrincipalName -#transcoder=SAML2ScopedStringTranscoder -#saml2.name=urn:oid:1.3.6.1.4.1.5923.1.1.1.6 diff --git a/test-compose/idp/container_files/config/shib-idp/conf/attributes/default-rules.xml b/test-compose/idp/container_files/config/shib-idp/conf/attributes/default-rules.xml deleted file mode 100644 index b6289fe..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/attributes/default-rules.xml +++ /dev/null @@ -1,803 +0,0 @@ - - - - - - - - - - - - - - uid - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:0.9.2342.19200300.100.1.1 - urn:mace:dir:attribute-def:uid - User ID - Benutzer-ID - ID utilisateur - ID dell'utente - ユーザID - User ID - Användaridentitet - A unique identifier for a person, mainly used for user identification within the user's home organization. - Eine eindeutige Nummer für eine Person, welche hauptsächlich zur Identifikation innerhalb der Organisation benutzt wird. - Identifiant de connexion d'une personnes sur les systèmes informatiques. - Identificativo unico della persona, usato per l'identificazione dell'utente all'interno della organizzazione di appartenenza. - 所属機関内で一意の利用者識別子 - Identificador do utilizador - Användaridentitet: Unik identifierar som används vid lokal inloggning i hemmaorganisationen. - - - - - - - - mail - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:0.9.2342.19200300.100.1.3 - urn:mace:dir:attribute-def:mail - E-mail - E-Mail - Email - E-mail - メールアドレス - E-mail - E-postadress - E-Mail: Preferred address for e-mail to be sent to this person - E-Mail-Adresse - E-Mail Adresse - Adresse de courrier électronique - E-Mail: l'indirizzo e-mail preferito dall'utente - メールアドレス - E-Mail: Endereço de correio electronico - E-postadress: E-postadress som används av personen. - - - - - - - - homePhone - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:0.9.2342.19200300.100.1.20 - urn:mace:dir:attribute-def:homePhone - Private phone number - Telefon Privat - Teléphone personnel - Numero di telefono privato - 自宅電話番号 - Número de telefone privado - Telefonnummer (hem) - Private phone number - Private Telefonnummer - Numéro de téléphone de domicile de la personne - Numero di telefono privato - 自宅の電話番号 - Número de telefone privado do utilizador - Telefonnummer (hem): Telefonnummer till bostaden. - - - - - - - - homePostalAddress - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:0.9.2342.19200300.100.1.39 - urn:mace:dir:attribute-def:homePostalAddress - Home postal address - Heimatadresse - Heimadresse - Adresse personnelle - Indirizzo personale - 自宅住所 - Morada Pessoal - Postadress (hem) - Home postal address: Home address of the user - Heimatadresse - Heimadresse - Adresse postale de domicile de la personne - Indirizzo personale: indirizzo dove abita l'utente - 自宅の住所 - Morada Pessoal: Morada do utilizador - Postadress (hem): Postadress till bostaden. - - - - - - - - mobile - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:0.9.2342.19200300.100.1.41 - urn:mace:dir:attribute-def:mobile - Mobile phone number - Telefon Mobil - Numéro de mobile - Numero di cellulare - 携帯電話番号 - Número de telemóvel - Telefonnummer (mobil) - Mobile phone number - Mobile Telefonnummer - Numéro de teléphone mobile - Numero di cellulare - 携帯電話の電話番号 - Número de telemóvel do utilizador - Telefonnummer (mobil): Telefonnummer till mobiltelefon. - - - - - - - - pager - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:0.9.2342.19200300.100.1.42 - urn:mace:dir:attribute-def:pager - Pager number - Pager number - - - - - - - - surname - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.5.4.4 - urn:mace:dir:attribute-def:sn - Surname - Nachname - Nom de famille - Cognome - - Nome de Família - Efternamn - Surname or family name - Familienname - Nom de famille de l'utilisateur. - Cognome dell'utilizzatore - 氏名(姓)の英語表記 - Nome de Família - Efternamn: Efternamn för personen. - - - - - - - - locality - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.5.4.7 - urn:mace:dir:attribute-def:l - Locality name - Ort - Locality name - 場所(L) - Locality name - Ort - Nom de la localité où réside l'objet - 場所の名前 日本の場合は市区町村名 - - - - - - - - stateProvince - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.5.4.8 - urn:mace:dir:attribute-def:st - State or province name - 都道府県もしくは州や省(ST) - State or province name - 州名や省名 国によって異なり日本の場合は都道府県名 - - - - - - - - street - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.5.4.9 - urn:mace:dir:attribute-def:street - Street - Straße - Strasse - Rue - 通り - Street address - Name der Straße - Strassenadresse - Nom de rue - 通りおよび番地 - - - - - - - - organizationName - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.5.4.10 - urn:mace:dir:attribute-def:o - Organization name - Organisationsname - Nom de l'organisation - 所属機関名 - Organization name - Name der Organisation - Nom de l'organisation - 所属機関名称の英語表記 - - - - - - - - organizationalUnit - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.5.4.11 - urn:mace:dir:attribute-def:ou - Organizational unit - Organisationseinheit - Unité organisationnelle - 機関内所属名 - Organizational unit - Name der Organisationseinheit - Nom de l'unité organisationnelle - 機関内所属名称の英語表記 - - - - - - - - title - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.5.4.12 - urn:mace:dir:attribute-def:title - Title - Titel - Title - 肩書き - Title of a person - Titel der Person - Titre de la personne - 利用者の肩書き - - - - - - - - postalAddress - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.5.4.16 - urn:mace:dir:attribute-def:postalAddress - Business postal address - Geschäftsadresse - Adresse professionnelle - Indirizzo professionale - 所属機関住所 - Morada - Postadress (arbete): - Business postal address: Campus or office address - Geschäftliche Adresse - Adresse am Arbeitsplatz - Adresse de l'institut, de l'université - Indirizzo professionale: indirizzo dell'istituto o dell'ufficio - 所属機関の住所 - Morada da instituição - Postadress (arbete): Postadressen för arbetsplatsen - - - - - - - - postalCode - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.5.4.17 - urn:mace:dir:attribute-def:postalCode - Postal code - ZIP code - Postleitzahl - Code postal - 郵便番号 - Postal code - ZIP code - Postleitzahl - Code postal - 郵便番号 - - - - - - - - postOfficeBox - SAML2StringTranscoder SAML1StringTranscoder - urn:mace:dir:attribute-def:postOfficeBox - urn:oid:2.5.4.18 - Postal box - Postfach - Boite postale - Case postale - 私書箱 - Postal box identifier - Postfach - Boite postale - Case postale - 私書箱 - - - - - - - - telephoneNumber - SAML2StringTranscoder SAML1StringTranscoder - urn:mace:dir:attribute-def:telephoneNumber - urn:oid:2.5.4.20 - Business phone number - Telefon Geschäft - Teléphone professionnel - Numero di telefono dell'ufficio - 勤務先電話番号 - Telefone - Telefonummer (arbete) - Business phone number: Office or campus phone number - Telefonnummer am Arbeitsplatz - Teléphone de l'institut, de l'université - Numero di telefono dell'ufficio - 所属機関での利用者の電話番号 - Número de telefone - Telefonummer (arbete): Telefonnummer till arbetsplatsen - - - - - - - - givenName - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.5.4.42 - urn:mace:dir:attribute-def:givenName - Given name - Vorname - Prénom - Nome - - Nome - Förnamn - Given name of a person - Vorname - Prénom de l'utilisateur - Nome - 氏名(名)の英語表記 - Nome - Förnamn: Förnamn för personen. - - - - - - - - initials - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.5.4.43 - urn:mace:dir:attribute-def:initials - Initials - Initialen - Initiales - イニシャル - Initials - Anfangsbuchstaben des Namens - Die Anfangsbuchstaben - L' initiales - イニシャル - - - - - - - - - - departmentNumber - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.16.840.1.113730.3.1.2 - urn:mace:dir:attribute-def:departmentNumber - Department number - Abteilungsnummer - Department number - Nummer der Abteilung - - - - - - - - displayName - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.16.840.1.113730.3.1.241 - urn:mace:dir:attribute-def:displayName - Display Name - Anzeigename - Nom - Nome - 表示名 - The name that should appear in white-pages-like applications for this person. - Anzeigename - Nom complet d'affichage - Nome - アプリケーションでの表示に用いられる英字氏名 - - - - - - - - employeeNumber - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.16.840.1.113730.3.1.3 - urn:mace:dir:attribute-def:employeeNumber - Employee number - Mitarbeiternummer - Numéro d'employé - Numero dell'utente - 従業員番号 - Número de empregado - Anställningsnummer - Identifies an employee within an organization - Identifiziert einen Mitarbeiter innerhalb der Organisation - Identifie un employé au sein de l'organisation - Identifica l' utente presso l'organizzazione - 所属機関における利用者の従業員番号 - Número de empregado - Anställningsnummer: Unik anställningsidentifierare i hemmaorganisationen. - - - - - - - - employeeType - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.16.840.1.113730.3.1.4 - urn:mace:dir:attribute-def:employeeType - Employee type - Employee type - - - - - - - - jpegPhoto - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:0.9.2342.19200300.100.1.60 - urn:mace:dir:attribute-def:jpegPhoto - JPEG Photo - Image of a person in JPEG format - - - - - - - - preferredLanguage - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:2.16.840.1.113730.3.1.39 - urn:mace:dir:attribute-def:preferredLanguage - Preferred Language - Bevorzugte Sprache - Langue préférée - Lingua preferita - 希望言語 - Língua preferida - Språkönskemål - Preferred language: Users preferred language (see RFC1766) - Bevorzugte Sprache (siehe RFC1766) - Exemple: fr, de, it, en, ... (voir RFC1766) - Lingua preferita: la lingua preferita dall'utente (cfr. RFC1766) - 利用者が希望する言語(RFC1766 を参照) - Língua preferida: Língua preferida do utilizador (cfr. RFC1766) - Språkönskemål: Personens önskade språk (see RFC1766). - - - - - - - - - - eduPersonAffiliation - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:1.3.6.1.4.1.5923.1.1.1.1 - urn:mace:dir:attribute-def:eduPersonAffiliation - Affiliation - Zugehörigkeit - Affiliation - Tipo di membro - 職位 - Tipo de utilizador - Anknytning - Affiliation: Type of affiliation with Home Organization - Art der Zugehörigkeit zur Heimatorganisation - Art der Zugehörigkeit zur Heimorganisation - Type d'affiliation dans l'organisation - Tipo di membro: Tipo di lavoro svolto per l'organizzazione - 所属機関における職位(faculty,staff,student,memberなど) - Tipo de utilizador: tipo de utilizador na organização. Exemplo: Estudante, ... - Anknytning: Vilken anknytning personen har till organisationen. - - - - - - - - eduPersonEntitlement - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:1.3.6.1.4.1.5923.1.1.1.7 - urn:mace:dir:attribute-def:eduPersonEntitlement - Entitlement - Berechtigung - Entitlement - Prerogativa - 資格情報 - Título - Rättigheter - Member of: URI (either URL or URN) that indicates a set of rights to specific resources based on an agreement across the releavant community - Zeichenkette, die Rechte für spezifische Ressourcen beschreibt - Membre de: URI (soit une URL ou une URN) décrivant un droit spécific d'accès. - Membro delle seguenti URI (sia URL o URN) che rappresentano diritti specifici d'accesso validi in tutta la communità - 特定のアプリケーションもしくはコミュニティ内の複数リソースへのアクセス権限を持つことを示すURI(URLもしくはURN) - URI (retractado por um URN ou URL) que indica um conjunto de direitos para recursos específicos. - Rättigheter: URI (either URL or URN) som beskriver olika rättigheter till angivna tjänster. - - - - - - - - eduPersonNickname - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:1.3.6.1.4.1.5923.1.1.1.2 - urn:mace:dir:attribute-def:eduPersonNickname - Nick name - Kurzname - Übername - Surnom - Diminutivo - ニックネーム - Person's nickname, or the informal name by which they are accustomed to be hailed. - Kurzname einer Person, oder üblicher Rufname zur Begrüßung. - Übername einer Person, oder üblicher Rufname zur Begrüssung. - Nom personnalisable pour un usage informel. - Diminutivo della persona, o soprannome. - 利用者のニックネームもしくは通称 - - - - - - - - eduPersonPrimaryAffiliation - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:1.3.6.1.4.1.5923.1.1.1.5 - urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation - Primary affiliation - Primäre Zugehörigkeit - Affiliation pricipale - Appartenenza principale - 主要職位 - Specifies the person's primary relationship to the institution in broad categories such as student, faculty, staff, alum, etc. - Spezifiziert der Hauptbeziehung einer Person innerhalb ihrer Organisation in groben Kategorien wie Student, Mitarbeiter, Alumni, etc. - Spécifie la relation principale d'une personne avec l'institution selon des majeures catégories comme étudiant, collaborateur, alumni etc. - Specifica la relazione principale dell persona con l'istituzione secondo le maggiori categorie come studente, collaboratore, alumni, etc. - 所属機関における主要な職位(faculty,staff,student,memberなど) - - - - - - - - eduPersonPrincipalName - SAML2ScopedStringTranscoder SAML1ScopedStringTranscoder CASScopedStringTranscoder - urn:oid:1.3.6.1.4.1.5923.1.1.1.6 - urn:mace:dir:attribute-def:eduPersonPrincipalName - Principal Name - Persönliche ID - Principal Name - Principal Name - プリンシパルID - A unique identifier for a person, mainly for inter-institutional user identification. - Eindeutige Benutzeridentifikation - Eindeutige Benützeridentifikation - L'identifiant unique de l'utilisateur - Un ID personale che identifica chiaramente l'utente in seno alla sua organizzazione - フェデレーション内で一意かつ永続的な利用者識別子 - - - - - - - - eduPersonPrincipalNamePrior - SAML2ScopedStringTranscoder SAML1ScopedStringTranscoder CASScopedStringTranscoder - urn:oid:1.3.6.1.4.1.5923.1.1.1.12 - urn:oid:1.3.6.1.4.1.5923.1.1.1.12 - Prior Principal Name - eduPersonPrincipalName value that was previously associated with the entry. - - - - - - - - eduPersonScopedAffiliation - SAML2ScopedStringTranscoder SAML1ScopedStringTranscoder CASScopedStringTranscoder - urn:oid:1.3.6.1.4.1.5923.1.1.1.9 - urn:mace:dir:attribute-def:eduPersonScopedAffiliation - Scoped Affiliation - Zugehörigkeit - Affiliation - Tipo di membro - スコープ付き職位 - Specifies the person's affiliation within a particular security domain - Art der Zugehörigkeit zur Heimatorganisation - Art der Zugehörigkeit zur Heimorganisation - Type d'affiliation dans l'organisation - Tipo di membro: Tipo di lavoro svolto per l'organizzazione - セキュリティドメインのスコープが付いた所属機関における職位 - - - - - - - - eduPersonAssurance - SAML2StringTranscoder SAML1StringTranscoder - urn:oid:1.3.6.1.4.1.5923.1.1.1.11 - urn:mace:dir:attribute-def:eduPersonAssurance - Assurance Level - Vertrauensgrad - Niveau de confiance - Livello di sicurezza - 保証レベル - Set of URIs that assert compliance with specific standards for identity assurance. - URIs die eine gewisse Zusicherung für spezifische Standards des Vertrauens beinhalten - Un ensemble d'URI qui attestent la conformité selon un standard pour les niveaux d'assurance d'identités - Un insieme di URI che asseriscono l'osservanza dei livelli di sicurezza richiesti - IDの保証レベルに関して特定の基準に準拠していることを示すURI - - - - - - - - - - eduPersonUniqueId - SAML2ScopedStringTranscoder SAML1ScopedStringTranscoder CASScopedStringTranscoder - urn:oid:1.3.6.1.4.1.5923.1.1.1.13 - urn:oid:1.3.6.1.4.1.5923.1.1.1.13 - Unique ID - Eindeutige ID - ID unique - ID unico - ユニークID - ID único - Unik identifierare - A unique identifier for a person, mainly for inter-institutional user identification. - Eindeutige Benutzeridentifikation - Eindeutige Benützeridentifikation - Identifiant unique de l'utilisateur - Un identificativo personale che identifica chiaramente l'utente in seno alla sua organizzazione - フェデレーション内で一意で永続的かつ難読化された利用者識別子(後継はサブジェクトID) - ID único: Identificador pessoal que identifica claramente o utilizador na sua organização - Unik identifierare: En unik identifierare för en person, används primärt för att identifiera personen inloggning vid annan organisation än hemmaorganisationen. - - - - - - - - - - samlSubjectID - SAML2ScopedStringTranscoder - urn:oasis:names:tc:SAML:attribute:subject-id - Unique ID - Eindeutige ID - ID unique - ID unico - サブジェクトID - A unique identifier for a person, mainly for inter-institutional user identification. - Eindeutige Benutzeridentifikation - Eindeutige Benützeridentifikation - Identifiant unique de l'utilisateur - Un identificativo personale che identifica chiaramente l'utente in seno alla sua organizzazione - フェデレーション内で一意で永続的かつ難読化された利用者識別子(eduPersonUniqueIdの後継) - - - - - - - - samlPairwiseID - SAML2ScopedStringTranscoder - urn:oasis:names:tc:SAML:attribute:pairwise-id - Pairwise ID - Pairwise ID - Pairwise ID - Pairwise ID - ペアワイズID - Pairwise ID: A unique identifier for a person, different for each service provider. - Pairwise ID: Eindeutige Benutzeridentifikation, unterschiedlich pro Service Provider. - Pairwise ID: Eindeutige Benützeridentifikation, unterschiedlich pro Service Provider. - Pairwise ID: Un identifiant unique de l'utilisateur, différent pour chaque fournisseur de service. - Pairwise ID: identificativo unico della persona, differente per ogni fornitore di servizio. - フェデレーション内で一意かつSP毎に送出される値が異なる利用者識別子(eduPersonTargetedIDの後継) - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/audit.xml b/test-compose/idp/container_files/config/shib-idp/conf/audit.xml deleted file mode 100644 index a690ae0..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/audit.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - http://shibboleth.net/ns/profiles/status - http://shibboleth.net/ns/profiles/mdquery - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/authn-comparison.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/authn-comparison.xml deleted file mode 100644 index dcf0271..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/authn-comparison.xml +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/authn-events-flow.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/authn-events-flow.xml deleted file mode 100644 index 8846677..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/authn-events-flow.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/discovery-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/discovery-config.xml deleted file mode 100644 index e21e3fd..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/discovery-config.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/duo-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/duo-authn-config.xml deleted file mode 100644 index 2867f48..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/duo-authn-config.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/duo.properties b/test-compose/idp/container_files/config/shib-idp/conf/authn/duo.properties deleted file mode 100644 index cb4b4aa..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/duo.properties +++ /dev/null @@ -1,30 +0,0 @@ -## Duo integration settings - -## Note: If upgrading from pre-3.3 IdP versions, you will need to manually add a pointer -## to this property file to idp.properties. - -## The first set of properties support DuoWeb "iframe" integration. - -idp.duo.apiHost = hostname -idp.duo.applicationKey = key -idp.duo.integrationKey = key -idp.duo.secretKey = key - -## The second set are used for direct AuthAPI usage for ECP support. -## A seperate integration has to be created for this to work. - -#idp.duo.nonbrowser.apiHost = %{idp.duo.apiHost} -#idp.duo.nonbrowser.applicationKey = key -#idp.duo.nonbrowser.integrationKey = key -#idp.duo.nonbrowser.secretKey = key - -## Request header names for Duo non-browser credentials. -# idp.duo.nonbrowser.header.factor = X-Shibboleth-Duo-Factor -# idp.duo.nonbrowser.header.device = X-Shibboleth-Duo-Device -# idp.duo.nonbrowser.header.passcode = X-Shibboleth-Duo-Passcode - -## Enables auto selection of factor/device if not specified by client. -# idp.duo.nonbrowser.auto = true - -## Enables transmission of client address to Duo during authentication. -# idp.duo.nonbrowser.clientAddressTrusted = true diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/external-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/external-authn-config.xml deleted file mode 100644 index 9d6652a..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/external-authn-config.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - UnknownUsername - - - - - InvalidPassword - - - - - ExpiredPassword - - - - - ExpiringPassword - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/function-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/function-authn-config.xml deleted file mode 100644 index cf7876a..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/function-authn-config.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/general-authn.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/general-authn.xml deleted file mode 100644 index b936f97..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/general-authn.xml +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/ipaddress-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/ipaddress-authn-config.xml deleted file mode 100644 index a3ee096..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/ipaddress-authn-config.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/jaas-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/jaas-authn-config.xml deleted file mode 100644 index 7edd41c..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/jaas-authn-config.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - ShibUserPassAuth - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/jaas.config b/test-compose/idp/container_files/config/shib-idp/conf/authn/jaas.config deleted file mode 100644 index 232e93d..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/jaas.config +++ /dev/null @@ -1,11 +0,0 @@ -ShibUserPassAuth { - /* - com.sun.security.auth.module.Krb5LoginModule required; - */ - - org.ldaptive.jaas.LdapLoginModule required - ldapUrl="ldap://localhost:10389" - baseDn="ou=people,dc=example,dc=org" - userFilter="uid={user}"; - -}; \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/krb5-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/krb5-authn-config.xml deleted file mode 100644 index f826f30..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/krb5-authn-config.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/ldap-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/ldap-authn-config.xml deleted file mode 100644 index 22824d0..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/ldap-authn-config.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/mfa-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/mfa-authn-config.xml deleted file mode 100644 index 3bfbcbb..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/mfa-authn-config.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/password-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/password-authn-config.xml deleted file mode 100644 index 502e73e..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/password-authn-config.xml +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NoCredentials - UnknownUsername - CLIENT_NOT_FOUND - Client not found - DN_RESOLUTION_FAILURE - - - - - InvalidCredentials - PREAUTH_FAILED - INVALID_CREDENTIALS - Checksum failed - - - - - AccountLocked - Clients credentials have been revoked - - - - - PASSWORD_EXPIRED - - - - - ACCOUNT_WARNING - - - - - RequestUnsupported - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/remoteuser-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/remoteuser-authn-config.xml deleted file mode 100644 index 4b7e722..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/remoteuser-authn-config.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - NoCredentials - - - - - UnknownUsername - - - - - InvalidPassword - - - - - ExpiredPassword - - - - - ExpiringPassword - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/remoteuser-internal-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/remoteuser-internal-authn-config.xml deleted file mode 100644 index 9e68c85..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/remoteuser-internal-authn-config.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/saml-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/saml-authn-config.xml deleted file mode 100644 index 4ff55f9..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/saml-authn-config.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/spnego-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/spnego-authn-config.xml deleted file mode 100644 index 6c0fa48..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/spnego-authn-config.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SPNEGONotAvailable - - - - - NTLMUnsupported - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/x509-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/x509-authn-config.xml deleted file mode 100644 index 18b015a..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/x509-authn-config.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - NoCredentials - InvalidCredentials - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/authn/x509-internal-authn-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/authn/x509-internal-authn-config.xml deleted file mode 100644 index bad3029..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/authn/x509-internal-authn-config.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/c14n/attribute-sourced-subject-c14n-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/c14n/attribute-sourced-subject-c14n-config.xml deleted file mode 100644 index 938b30f..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/c14n/attribute-sourced-subject-c14n-config.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - altuid - - - - - altuid - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/c14n/simple-subject-c14n-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/c14n/simple-subject-c14n-config.xml deleted file mode 100644 index 3cddfa6..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/c14n/simple-subject-c14n-config.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/c14n/subject-c14n-events-flow.xml b/test-compose/idp/container_files/config/shib-idp/conf/c14n/subject-c14n-events-flow.xml deleted file mode 100644 index c4936f3..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/c14n/subject-c14n-events-flow.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/c14n/subject-c14n.xml b/test-compose/idp/container_files/config/shib-idp/conf/c14n/subject-c14n.xml deleted file mode 100644 index e4b772f..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/c14n/subject-c14n.xml +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified - urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress - urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName - urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName - urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified - urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress - urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName - urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName - urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos - - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/c14n/x500-subject-c14n-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/c14n/x500-subject-c14n-config.xml deleted file mode 100644 index 1ae25e4..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/c14n/x500-subject-c14n-config.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - 2.5.4.3 - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/cas-protocol.xml b/test-compose/idp/container_files/config/shib-idp/conf/cas-protocol.xml deleted file mode 100644 index 2eb1733..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/cas-protocol.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/conf/credentials.xml b/test-compose/idp/container_files/config/shib-idp/conf/credentials.xml deleted file mode 100644 index dde530b..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/credentials.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/errors.xml b/test-compose/idp/container_files/config/shib-idp/conf/errors.xml deleted file mode 100644 index a5a8790..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/errors.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/global.xml b/test-compose/idp/container_files/config/shib-idp/conf/global.xml deleted file mode 100644 index 457a814..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/global.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/intercept/consent-intercept-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/intercept/consent-intercept-config.xml deleted file mode 100644 index 66f06a0..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/intercept/consent-intercept-config.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - transientId - persistentId - eduPersonTargetedID - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/conf/intercept/context-check-intercept-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/intercept/context-check-intercept-config.xml deleted file mode 100644 index aae07f0..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/intercept/context-check-intercept-config.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - * - - - - - - - - - - - - - \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/conf/intercept/expiring-password-intercept-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/intercept/expiring-password-intercept-config.xml deleted file mode 100644 index b3bf96d..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/intercept/expiring-password-intercept-config.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/intercept/external-intercept-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/intercept/external-intercept-config.xml deleted file mode 100644 index 1d0fc29..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/intercept/external-intercept-config.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/intercept/impersonate-intercept-config.xml b/test-compose/idp/container_files/config/shib-idp/conf/intercept/impersonate-intercept-config.xml deleted file mode 100644 index 7dfda2b..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/intercept/impersonate-intercept-config.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/intercept/intercept-events-flow.xml b/test-compose/idp/container_files/config/shib-idp/conf/intercept/intercept-events-flow.xml deleted file mode 100644 index 6214e80..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/intercept/intercept-events-flow.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/intercept/profile-intercept.xml b/test-compose/idp/container_files/config/shib-idp/conf/intercept/profile-intercept.xml deleted file mode 100644 index f086cfa..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/intercept/profile-intercept.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/logback.xml.dist b/test-compose/idp/container_files/config/shib-idp/conf/logback.xml.dist deleted file mode 100644 index ac19b1f..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/logback.xml.dist +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ${idp.logfiles}/idp-process.log - - - ${idp.logfiles}/idp-process-%d{yyyy-MM-dd}.log.gz - ${idp.loghistory} - - - - UTF-8 - %date{ISO8601} - %mdc{idp.remote_addr} - %level [%logger:%line] - %msg%n%ex{full} - - - - - - - VelocityStatusMatcher - ResourceManager : unable to find resource 'status.vm' in any resource loader. - - VelocityStatusMatcher.matches(formattedMessage) - - DENY - - - - - - 0 - - - - - - WARN - - - ${idp.logfiles}/idp-warn.log - - - ${idp.logfiles}/idp-warn-%d{yyyy-MM-dd}.log.gz - ${idp.loghistory} - - - - UTF-8 - %date{ISO8601} - %mdc{idp.remote_addr} - %level [%logger:%line] - %msg%n%ex{short} - - - - - - - VelocityStatusMatcher - ResourceManager : unable to find resource 'status.vm' in any resource loader. - - VelocityStatusMatcher.matches(formattedMessage) - - DENY - - - - - - ${idp.logfiles}/idp-audit.log - - - ${idp.logfiles}/idp-audit-%d{yyyy-MM-dd}.log.gz - ${idp.loghistory} - - - - UTF-8 - %msg%n - - - - - - ${idp.logfiles}/idp-consent-audit.log - - - ${idp.logfiles}/idp-consent-audit-%d{yyyy-MM-dd}.log.gz - ${idp.loghistory} - - - - UTF-8 - %msg%n - - - - - - ${idp.fticks.loghost:-localhost} - ${idp.fticks.logport:-514} - AUTH - [%thread] %logger %msg - - - - - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/logback.xml.tmp3 b/test-compose/idp/container_files/config/shib-idp/conf/logback.xml.tmp3 deleted file mode 100644 index 4eebeaa..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/logback.xml.tmp3 +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /tmp/logidp-process - - - ${idp.logfiles}/idp-process-%d{yyyy-MM-dd}.log.gz - ${idp.loghistory} - - - - UTF-8 - %date{ISO8601} - %mdc{idp.remote_addr} - %level [%logger:%line] - %msg%n%ex{full} - - - - - - - VelocityStatusMatcher - ResourceManager : unable to find resource 'status.vm' in any resource loader. - - VelocityStatusMatcher.matches(formattedMessage) - - DENY - - - - - - 0 - - - - - - WARN - - - /tmp/logidp-warn - - - ${idp.logfiles}/idp-warn-%d{yyyy-MM-dd}.log.gz - ${idp.loghistory} - - - - UTF-8 - %date{ISO8601} - %mdc{idp.remote_addr} - %level [%logger:%line] - %msg%n%ex{short} - - - - - - - VelocityStatusMatcher - ResourceManager : unable to find resource 'status.vm' in any resource loader. - - VelocityStatusMatcher.matches(formattedMessage) - - DENY - - - - - - /tmp/logidp-audit - - - ${idp.logfiles}/idp-audit-%d{yyyy-MM-dd}.log.gz - ${idp.loghistory} - - - - UTF-8 - %msg%n - - - - - - ${idp.logfiles}/idp-consent-audit.log - - - ${idp.logfiles}/idp-consent-audit-%d{yyyy-MM-dd}.log.gz - ${idp.loghistory} - - - - UTF-8 - %msg%n - - - - - - ${idp.fticks.loghost:-localhost} - ${idp.fticks.logport:-514} - AUTH - [%thread] %logger %msg - - - - - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.properties b/test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.properties deleted file mode 100644 index 7169c5e..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.properties +++ /dev/null @@ -1,31 +0,0 @@ -# Properties involving SAML NameIdentifier/NameID generation/consumption - -# For the most part these settings only deal with "transient" and "persistent" -# identifiers. See saml-nameid.xml and c14n/subject-c14n.xml for advanced -# settings - -# Default NameID Formats to use when nothing else is called for. -# Don't change these just to change the Format used for a single SP! -#idp.nameid.saml2.default = urn:oasis:names:tc:SAML:2.0:nameid-format:transient -#idp.nameid.saml1.default = urn:mace:shibboleth:1.0:nameIdentifier - -# Set to shibboleth.StoredTransientIdGenerator for server-side transient ID storage -#idp.transientId.generator = shibboleth.CryptoTransientIdGenerator - -# Persistent IDs can be computed on the fly with a hash, or managed in a database - -# For computed IDs, set a source attribute, and a secret salt in secrets.properties -#idp.persistentId.sourceAttribute = changethistosomethingreal -#idp.persistentId.useUnfilteredAttributes = true -#idp.persistentId.algorithm = SHA -# BASE64 will match V2 values, we recommend BASE32 encoding for new installs. -idp.persistentId.encoding = BASE32 - -# To use a database, use shibboleth.StoredPersistentIdGenerator -#idp.persistentId.generator = shibboleth.ComputedPersistentIdGenerator -# For basic use, set this to a JDBC DataSource bean name: -#idp.persistentId.dataSource = PersistentIdDataSource -# For advanced use, set to a bean inherited from shibboleth.JDBCPersistentIdStore -#idp.persistentId.store = MyPersistentIdStore -# Set to an empty property to skip hash-based generation of first stored ID -#idp.persistentId.computed = shibboleth.ComputedPersistentIdGenerator diff --git a/test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.xml b/test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.xml deleted file mode 100644 index 7d82cf5..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/saml-nameid.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/services.properties b/test-compose/idp/container_files/config/shib-idp/conf/services.properties deleted file mode 100644 index 9dc3dff..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/services.properties +++ /dev/null @@ -1,79 +0,0 @@ -# Configure the resources to load for various services, -# and the settings for failure handling and auto-reload. - -# failFast=true prevents IdP startup if a configuration is bad -# checkInterval = PT0S means never reload (this is the default) - -# Global default for fail-fast behavior of most subsystems -# with individual override possible below. -#idp.service.failFast = false - -#idp.service.logging.resource = %{idp.home}/conf/logback.xml -#idp.service.logging.failFast = true -idp.service.logging.checkInterval = PT5M - -#idp.service.relyingparty.resources = shibboleth.RelyingPartyResolverResources -#idp.service.relyingparty.failFast = false -idp.service.relyingparty.checkInterval = PT15M -# Set true to limit metadata-driven settings lookup to decoded EntityAttributes -idp.service.relyingparty.ignoreUnmappedEntityAttributes=true - -#idp.service.metadata.resources = shibboleth.MetadataResolverResources -#idp.service.metadata.failFast = false -#idp.service.metadata.checkInterval = PT0S -# Set to false if not using ByReference MetadataFilters for a small perf gain -#idp.service.metadata.enableByReferenceFilters = true - -#idp.service.attribute.registry.resources = shibboleth.AttributeRegistryResources -#idp.service.attribute.registry.namingRegistry = shibboleth.DefaultNamingRegistry -#idp.service.attribute.registry.failFast = false -idp.service.attribute.registry.checkInterval = PT15M -# Default control of whether to encode XML attribute data with xsi:type -idp.service.attribute.registry.encodeType = false - -#idp.service.attribute.resolver.resources = shibboleth.AttributeResolverResources -#idp.service.attribute.resolver.failFast = false -idp.service.attribute.resolver.checkInterval = PT15M -#idp.service.attribute.resolver.maskFailures = true -#idp.service.attribute.resolver.stripNulls = false - -#idp.service.attribute.filter.resources = shibboleth.AttributeFilterResources -# NOTE: Failing the filter fast leaves no filters enabled. -#idp.service.attribute.filter.failFast = false -idp.service.attribute.filter.checkInterval = PT15M -#idp.service.attribute.filter.maskFailures = true - -#idp.service.nameidGeneration.resources = shibboleth.NameIdentifierGenerationResources -#idp.service.nameidGeneration.failFast = false -idp.service.nameidGeneration.checkInterval = PT15M - -#idp.service.access.resources = shibboleth.AccessControlResources -#idp.service.access.failFast = true -idp.service.access.checkInterval = PT5M - -#idp.service.cas.registry.resources = shibboleth.CASServiceRegistryResources -#idp.service.cas.registry.failFast = false -idp.service.cas.registry.checkInterval = PT15M - -#idp.service.managedBean.resources = shibboleth.ManagedBeanResources -#idp.service.managedBean.failFast = false -idp.service.managedBean.checkInterval = PT15M - -#idp.message.resources = shibboleth.MessageSourceResources -#idp.message.cacheSeconds = 300 - -# Parameters for pre-defined HttpClient instances which perform in-memory and filesystem caching. -# These are used with components such as remote configuration resources that are explicitly wired -# with these client instances, *not* by default with HTTP metadata resolvers. -#idp.httpclient.useSecurityEnhancedTLSSocketFactory = false -#idp.httpclient.connectionDisregardTLSCertificate = false -#idp.httpclient.connectionRequestTimeout = PT1M -#idp.httpclient.connectionTimeout = PT1M -#idp.httpclient.socketTimeout = PT1M -#idp.httpclient.maxConnectionsTotal = 100 -#idp.httpclient.maxConnectionsPerRoute = 100 -#idp.httpclient.memorycaching.maxCacheEntries = 50 -#idp.httpclient.memorycaching.maxCacheEntrySize = 1048576 -#idp.httpclient.filecaching.maxCacheEntries = 100 -#idp.httpclient.filecaching.maxCacheEntrySize = 10485760 -idp.httpclient.filecaching.cacheDirectory = %{idp.home}/tmp/httpClientCache \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/conf/services.xml b/test-compose/idp/container_files/config/shib-idp/conf/services.xml deleted file mode 100644 index 5a4cdea..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/services.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - %{idp.home}/conf/relying-party.xml - %{idp.home}/conf/credentials.xml - %{idp.home}/system/conf/relying-party-system.xml - - - - %{idp.home}/conf/metadata-providers.xml - %{idp.home}/system/conf/metadata-providers-system.xml - - - - %{idp.home}/conf/attribute-resolver.xml - - - - %{idp.home}/conf/attribute-registry.xml - %{idp.home}/system/conf/attribute-registry-system.xml - %{idp.home}/conf/attributes/default-rules.xml - %{idp.home}/conf/attribute-resolver.xml - - - - %{idp.home}/conf/attribute-filter.xml - - - - %{idp.home}/conf/saml-nameid.xml - %{idp.home}/system/conf/saml-nameid-system.xml - - - - %{idp.home}/conf/access-control.xml - %{idp.home}/system/conf/access-control-system.xml - - - - %{idp.home}/conf/cas-protocol.xml - - - - - %{idp.home}/messages/messages - %{idp.home}/system/messages/messages - - - diff --git a/test-compose/idp/container_files/config/shib-idp/conf/session-manager.xml b/test-compose/idp/container_files/config/shib-idp/conf/session-manager.xml deleted file mode 100644 index 7372029..0000000 --- a/test-compose/idp/container_files/config/shib-idp/conf/session-manager.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/test-compose/idp/container_files/config/shib-idp/edit-webapp/css/consent.css b/test-compose/idp/container_files/config/shib-idp/edit-webapp/css/consent.css deleted file mode 100644 index 5daabee..0000000 --- a/test-compose/idp/container_files/config/shib-idp/edit-webapp/css/consent.css +++ /dev/null @@ -1,150 +0,0 @@ -.box { - width:600px; - margin-left: auto; - margin-right: auto; - margin-top: 50px; - background-color: white; - -webkit-box-shadow: 1px 1px 15px #999999; - -moz-box-shadow: 1px 1px 15px #999999; - box-shadow: 1px 1px 15px #999999; - -webkit-border-radius: 8px; - -moz-border-radius: 8px; - border-radius: 8px; - overflow: auto; - padding: 1.268em; -} - -body { - font-family:Verdana, Geneva, sans-serif; - font-size: 12px; -} - -h1 { - font-size: 13px; - padding-bottom: 12px; -} - -a { - color: #00247D; - text-decoration: underline; -} - -a:visited { - color: #00247D; - text-decoration: underline; -} - -a:focus, a:hover, a:active { - color: #F39800; - text-decoration: underline; -} - -#tou-content { - font-family:monospace; - width: 95%; - border: solid 1px #666; - margin: 4px; - padding: 10px; - overflow: hidden; -} - -#tou-content li{ - margin-bottom:10px; -} - -#tou-acceptance { - width: 95%; - border: solid 1px #666; - background-color: #F0F0F0; - margin: 4px; - padding: 10px; - text-align: left; - overflow: hidden; -} - -.service_name { - font-weight: bold; -} - -.service_description { - font-style: italic; -} - -.organization_name { -} - -#attributeRelease-consent { - width: 95%; - border: solid 1px #666; - background-color: #F0F0F0; - margin: 4px; - overflow: hidden; -} - -#attributeRelease { - width: 95%; - margin: 4px; - border: solid 1px black; - overflow: auto; -} - -#attributeRelease table { - border-collapse: collapse; - border: none 0px white; - width: 100%; -} - -#attributeRelease td { - padding: 3px 7px; - vertical-align: top; -} - -#attributeRelease th { - text-align: left; - font-size: 18px; - padding: 5px 7px; - background-color:#00247D; - color: white; -} - -#attributeRelease tr:nth-of-type(even) { - background-color: #E4E5E3; -} - -.federation_logo -{ - width: 50%; - float: left; - padding-top: 35px; - border: 0; -} -.organization_logo -{ - width: 50%; - float: right; - border: 0; -} - -.form-error { - padding: 0; - color: #B61601; -} - -/* Device specific styles */ -@media only screen and (max-device-width: 721px){ - .box { - width: auto; - box-shadow: none; - border-radius: 0; - -webkit-box-shadow: none; - -webkit-border-radius: 0; - -moz-box-shadow: none; - -moz-border-radius: 0; - padding: 0; - margin-top:0; - } - #tou-content, #tou-acceptance{ - /*width:87%;*/ - width:auto; - } -} diff --git a/test-compose/idp/container_files/config/shib-idp/edit-webapp/css/logout.css b/test-compose/idp/container_files/config/shib-idp/edit-webapp/css/logout.css deleted file mode 100644 index dcd10d2..0000000 --- a/test-compose/idp/container_files/config/shib-idp/edit-webapp/css/logout.css +++ /dev/null @@ -1,17 +0,0 @@ -/* Success/Failure indicators for logout propagation. */ -li.logout { - line-height: 36px; - padding-left: 36px; -} -li.logout.success { - background: url(../images/success-32x32.png) no-repeat left center; -} -li.logout.failure { - background: url(../images/failure-32x32.png) no-repeat left center; -} -li.logout.pending{ - -} -li.logout.na { - background: url(../images/failure-32x32.png) no-repeat left center; -} diff --git a/test-compose/idp/container_files/config/shib-idp/edit-webapp/css/main.css b/test-compose/idp/container_files/config/shib-idp/edit-webapp/css/main.css deleted file mode 100644 index 116b31e..0000000 --- a/test-compose/idp/container_files/config/shib-idp/edit-webapp/css/main.css +++ /dev/null @@ -1,165 +0,0 @@ -* { - margin: 0; - padding: 0; -} -header, footer, section, nav { - display: block; -} -html, body { - height: 100%; -} -body { - font-family:Verdana, Geneva, sans-serif; - font-size: 12px; - line-height: 1.5; - color: #717171; - background: #717171; -} -a:link, -a:visited { - text-decoration: none; - color: #717171; -} -img { - max-width: 100%; - margin-bottom: 12px; -} - -.wrapper { - background: #ffffff; -} - -.container { - position: relative; - left: 34%; - width: 540px; - margin-left: -270px; -} -.container-footer { - padding-top: 12px; -} -@media only screen and (max-width: 1020px) { - .container { - left: 45%; - } -} -@media only screen and (max-width: 650px) { - .container { - position: static; - margin: 0 auto; - width: 280px; - } -} - -header { - padding: 20px 0; -} - -.logo img { - border: none; -} -@media only screen and (max-width: 650px) { - .logo img { - display: none; - } - .logo { - background: url(../images/dummylogo-mobile.png) no-repeat top center; - display: block; - height: 115px; - width: 100px; - margin: 0 auto; - } -} - -.content { - padding-bottom: 80px; - overflow: hidden; -} - -.column { - float: left; -} -.column.one { - width: 50%; - margin-right: 48px; -} - -form { - width: 240px; - padding-bottom: 21px; -} -form label { /* labels are hidden */ - font-weight: bold; -} -form legend { - font-size:1.2em; - margin-bottom: 12px; -} -.form-element-wrapper { - margin-bottom: 12px; -} -.form-element { - width: 100%; - padding: 13px 12px; - border: none; - font-size: 14px; - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; -} -.form-field { - color: #B7B7B7; - border: 1px solid #B7B7B7; -} -.form-field-focus, -.form-field:focus, -input[type="text"]:focus { - color: #333333; - border-color: #333; -} -.form-button { - background: #B61601; - box-sizing: content-box; - -moz-box-sizing: content-box; - color: #ffffff; - cursor: pointer; -} -.form-button:hover { - background: #FF6400; -} -.form-error { - padding: 0; - color: #B61601; -} - -.list-help { - margin-top: 40px; /* offset padding on first anchor */ - list-style: none; -} -.list-help-item a { - display: block; - padding: 6px 0; -} -.item-marker { - color: #be0000; -} - -footer { - color: #ffffff; - font-size: 11px; - background: #717171; -} -.footer-text { - margin-bottom: 12px; -} -.footer-links a:link, -.footer-links a:visited { - color: #ffffff; - font-weight: bold; -} -.footer-links a:after { - content: "\00a0\00a0\00a0|\00a0\00a0"; -} -.footer-links a.last:after { - content: ""; -} diff --git a/test-compose/idp/container_files/config/shib-idp/edit-webapp/images/dummylogo-mobile.png b/test-compose/idp/container_files/config/shib-idp/edit-webapp/images/dummylogo-mobile.png deleted file mode 100644 index 8ba3c95a12a93606734df54750d674bee02eaa96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8208 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 L-jZ1QHv_zWT(g{@D_sziiBb#9|Q*$?+TTlYjE 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 diff --git a/test-compose/idp/container_files/config/shib-idp/edit-webapp/images/success-32x32.png b/test-compose/idp/container_files/config/shib-idp/edit-webapp/images/success-32x32.png deleted file mode 100644 index aa512048d8fe96fc4b37db81fc5354a80b191bdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2448 zcmZ{m2|QHY8^?zk%2pAglrf@DWj16PGnO$zqR6fo%P@nPJI!3pq(Tvyx4bCtL{YZ4 zNhMmeP_Gu!Sh7U2Z;2u;gi`%yq&I(W-TOKBp7T7v?|IJioO?c>o4DP{RzY^9ECd2k zu(u<*h~9888pts1yx0(k+;VY~fMlFjgFv7HnyV-1 z>9`da2+&dfK|lZn#icVvY6t|+#fiFf3g{2#(!&{S9G8HYRp3N@u^Ekk&q}~B0>aaA zJKP#zQQ(_UhA0feTow+8<5@w$I2Y39Ib1X%AgCb7#G%m~4hO|CKmn`}G}hGA6phhG z>+2&$3M6|k1N7%28EozEll+*6L}3TAXiSg>FyP{O{R4mqkbppl1O0o=t&`6DHxPq8 zmz5|#G}oVr#-cFjUqK)(_~-Kej}m)+i&40=-(X_TcWky8-`9v2RTSq41kr-`lKer6 zxjqKF35mrZF<4iu0S=4785!fz3p777oTaT<6n_w4xdK4A`F0wY5>6Kn;RYzt{hgh! zm_pqyJ-DsJ8~_OcsUB7V9_7>F3)P>Rl*oAUr}my&HoDn(NOY z3(N~Cub+N%;~&g?<3hmmSHOJZJV3k=xYTB9QIuag7J}A5IKbM$^be$n z>otqaGc8olhVlAcn0byl5RVpr%k#eN?+0hrDmpplvZ5XRaSF|4EBG4+AP}j8_9QD; zPnimjuy9u!<*$QX^!1?w&KK6hny7}^R^tgdYe|WMxCD^j79YC30haudp~btLr)YI7 zzujG@4VDX6@@nraaV6#U+B(7lVLDUQq*&!Vymy*QTc=qRdo1(go6$xO;^~39e*B;r zd$1<`mgECuL&Y>ENKsEOu6#5(KnZ?1qWKB&h*45Bj3oKj^d?~-Ki=TFnv0-dilNrx zE+oM0ses}Tf~=ZX^FGzSbg>o(p5AfvSZzqt-r?MFnLA~#Y>cfkoQbI22b+0!11y$Q zo5YP28eMGvcBA%!{EK^r4Bepz?p=&68A@7?t!x`xNffd+#QyKbqD=Lz2un=GR49F%^l{3JnVvhDN6dftf% z6C=Z{w;Pv)?c9Z5QM9LN)va+McICukgu=P9+wq(jdbZi;axHVBExAr`ulZr`Cunk| z{2|SAicL2Kunoa4xmf6dSfMQtlL+gqtkUJ?`Fm*sd6{jgc+bbu1)1fo9p~!XqbySU z7S$1;{kknFU-PoAbVGyPRW9kBz25zx?3#<*(VK1?ucaP)daB~G{H~BaWXBnei>`_< zzw&)Oc~p$xWrVx{mF0AQ`Aj60qMrNtimICPg{0w|GMYO={=Q(#gOjPc!d20|lE$WB zvC2M&t<4bv-8ucXcl(&2+b(;T=Dp z&kMF3T~QQswAyZh;r!4!jXIr>cR3R^vqkqz8B&ATYbN8NoRhfqiQWN7d+f{ZfRx!~=H`Kdk zjXgO(GUBi1y%w8~2x)aA4*K%`vbP}1v3@_`xQ z8Wk#Ad+nJN^rPp~UBIZ>AG+@vY58PH`eW^)rUJSAq*Lh~_MQ6<^n`MyB`(%lj;)i) zZrU9ctveE8cE`1cAi0(Kcx!G8U$A7&+2U2swO5e?fdj)wJOUVgh4(WantA|Ln=`*S ztvRC+?sxW{hK?36L0fKFqf_I2$YNX8ik*oCfxPE7e@!Lq$3N3%5$-!iPjk}~H1(e3JW8|mni?ect|u$@skp0p+~#p2 z4my5tS6Nh=LMbqt*|yXRvpGY3;tZD>%PDQ+v$J1;UwDrPQ92`P%L>1xf9agLLaSNx zv~E@INg5?$#8BS4!k+IiW(hZ)NpNs$Sl#i^c=fL7)VhmF61(7 z4@BH4{JPGwMQO=&{E$)~qW z&a75NaAbno>wLYT&*x@oEzE=8RUSnb lg!m33->y9S*<*Ne#$rJETbE67eU - - - - - $title - $titleSuffix - - - - -
-
-
- #springMessageText( -

$title - $titleSuffix

-
- -
- #if ($state == "end") - #springMessageText("idp.unlock-keys.complete", "The system is unlocked and ready for use.") -

Validation Link

- #else - #if ($eventId == "InvalidMessage") -

- #springMessageText("idp.unlock-keys.error", "Unlock failed; check log for specific message.") -

-

- #end - -
- #parse("csrf/csrf.vm") - - - -
- - -
- -
- - -
- - - -
- - -
- -
- -
- -
- -
- -
- #end -
-
- -
- -
- -
- - \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/views/client-storage/client-storage-read.vm b/test-compose/idp/container_files/config/shib-idp/views/client-storage/client-storage-read.vm deleted file mode 100644 index 1993c14..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/client-storage/client-storage-read.vm +++ /dev/null @@ -1,53 +0,0 @@ -## -## Velocity template to read from local storage. -## -## Velocity context will contain the following properties -## flowExecutionUrl - the form action location -## flowRequestContext - the Spring Web Flow RequestContext -## flowExecutionKey - the SWF execution key (this is built into the flowExecutionUrl) -## profileRequestContext - root of context tree -## loadContext - context with details about the storage keys to load -## encoder - HTMLEncoder class -## request - HttpServletRequest -## response - HttpServletResponse -## environment - Spring Environment object for property resolution -#set ($title = $springMacroRequestContext.getMessage("idp.title", "Web Login Service")) -#set ($titleSuffix = $springMacroRequestContext.getMessage("idp.client-storage-read.suffix", "Loading Session Information")) -## - - - - - - $title - $titleSuffix - - - - -
-
-
-

$title - $titleSuffix

-
-
- $springMacroRequestContext.getMessage("idp.client-storage-read.text", "Loading login session information from the browser...") -
- - #parse( "client-storage/read.vm" ) -
-
- -
-
- - diff --git a/test-compose/idp/container_files/config/shib-idp/views/client-storage/client-storage-write.vm b/test-compose/idp/container_files/config/shib-idp/views/client-storage/client-storage-write.vm deleted file mode 100644 index 4b92d6b..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/client-storage/client-storage-write.vm +++ /dev/null @@ -1,53 +0,0 @@ -## -## Velocity template to write to local storage. -## -## Velocity context will contain the following properties -## flowExecutionUrl - the form action location -## flowRequestContext - the Spring Web Flow RequestContext -## flowExecutionKey - the SWF execution key (this is built into the flowExecutionUrl) -## profileRequestContext - root of context tree -## saveContext - context with details about the storage data to save -## encoder - HTMLEncoder class -## request - HttpServletRequest -## response - HttpServletResponse -## environment - Spring Environment object for property resolution -#set ($title = $springMacroRequestContext.getMessage("idp.title", "Web Login Service")) -#set ($titleSuffix = $springMacroRequestContext.getMessage("idp.client-storage-write.suffix", "Saving Session Information...")) -## - - - - - - $title - $titleSuffix - - - - -
-
-
-

$title - $titleSuffix

-
-
- $springMacroRequestContext.getMessage("idp.client-storage-write.text", "Saving login session information to the browser...") -
- - #parse( "client-storage/write.vm" ) -
-
- -
-
- - \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/views/duo.vm b/test-compose/idp/container_files/config/shib-idp/views/duo.vm deleted file mode 100644 index d212df7..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/duo.vm +++ /dev/null @@ -1,83 +0,0 @@ -## -## Velocity Template for Duo login view-state -## -## Velocity context will contain the following properties -## flowExecutionUrl - the form action location -## flowRequestContext - the Spring Web Flow RequestContext -## flowExecutionKey - the SWF execution key (this is built into the flowExecutionUrl) -## profileRequestContext - root of context tree -## authenticationContext - context with authentication request information -## rpUIContext - the context with SP UI information from the metadata -## canonicalUsername - name of user passed to Duo -## duoHost - API hostname for Duo frame -## duoRequest - signed Duo request message -## duoScriptPath - path to Duo JavaScript source -## encoder - HTMLEncoder class -## request - HttpServletRequest -## response - HttpServletResponse -## environment - Spring Environment object for property resolution -## custom - arbitrary object injected by deployer -## - - - - - - - #springMessageText("idp.title", "Web Login Service") - - - - -
-
-
- #springMessageText( -
- -
-
- -

#springMessageText("idp.login.duoRequired", "Authentication with Duo is required for the requested service.")

- - - - -
- #parse("csrf/csrf.vm") - -
- -

- #springMessageText("idp.login.duoCancel", "Cancel this Request") -

-
- -
-
- -
- -
-
- - diff --git a/test-compose/idp/container_files/config/shib-idp/views/error.vm b/test-compose/idp/container_files/config/shib-idp/views/error.vm deleted file mode 100644 index dcb8e2b..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/error.vm +++ /dev/null @@ -1,73 +0,0 @@ -## -## Velocity Template for error end-state -## -## Velocity context will contain the following properties -## flowRequestContext - the Spring Web Flow RequestContext -## profileRequestContext - root of context tree -## encoder - HTMLEncoder class -## request - HttpServletRequest -## response - HttpServletResponse -## environment - Spring Environment object for property resolution -## custom - arbitrary object injected by deployer -## -#set ($title = $springMacroRequestContext.getMessage("idp.title", "Web Login Service")) -#set ($defaultTitleSuffix = $springMacroRequestContext.getMessage("idp.title.suffix", "Error")) -## -#if ($flowRequestContext) - ## This handles flow events, the most common case. - #set ($eventId = $flowRequestContext.getCurrentEvent().getId()) - #set ($eventKey = $springMacroRequestContext.getMessage("$eventId", "error")) - #set ($titleSuffix = $springMacroRequestContext.getMessage("${eventKey}.title", "$defaultTitleSuffix")) - #set ($message = $springMacroRequestContext.getMessage("${eventKey}.message", "$defaultTitleSuffix: $eventId")) - #if ($eventId == "AccessDenied" or $eventId == "ContextCheckDenied") - $response.setStatus(403) - #elseif ($eventId == "AttributeReleaseRejected" || $eventId == "TermsRejected") - $response.setStatus(200) - #elseif ($eventKey == "unexpected" || $eventKey == "runtime-error" || $eventKey == "error") - $response.setStatus(500) - #else - $response.setStatus(400) - #end -#elseif ($exception) - ## This handles exceptions that reach the Spring-MVC exception handler. - #set ($eventId = $exception.getClass().getSimpleName()) - #set ($eventKey = $springMacroRequestContext.getMessage("$eventId", "error")) - #set ($titleSuffix = $springMacroRequestContext.getMessage("${eventKey}.title", "$defaultTitleSuffix")) - #set ($message = $springMacroRequestContext.getMessage("${eventKey}.message", "$defaultTitleSuffix: $eventId")) -#else - ## This is a catch-all that theoretically shouldn't happen? - #set ($titleSuffix = $defaultTitleSuffix) - #set ($message = $springMacroRequestContext.getMessage("idp.message", "An unidentified error occurred.")) -#end -## - - - - - - $title - $titleSuffix - - - - -
-
-
- #springMessageText( -

$title - $titleSuffix

-
- -
- #evaluate($message) -
-
- -
- -
- -
- - \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/views/intercept/attribute-release.vm b/test-compose/idp/container_files/config/shib-idp/views/intercept/attribute-release.vm deleted file mode 100644 index c170b69..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/intercept/attribute-release.vm +++ /dev/null @@ -1,160 +0,0 @@ -## -## Velocity Template for DisplayAttributeReleasePage view-state -## -## Velocity context will contain the following properties : -## -## attributeReleaseContext - context holding consentable attributes -## attributeReleaseFlowDescriptor - attribute consent flow descriptor -## attributeDisplayNameFunction - function to display attribute name -## attributeDisplayDescriptionFunction - function to display attribute description -## consentContext - context representing the state of a consent flow -## encoder - HTMLEncoder class -## flowExecutionKey - SWF execution key (this is built into the flowExecutionUrl) -## flowExecutionUrl - form action location -## flowRequestContext - Spring Web Flow RequestContext -## profileRequestContext - OpenSAML profile request context -## request - HttpServletRequest -## response - HttpServletResponse -## rpUIContext - context with SP UI information from the metadata -## environment - Spring Environment object for property resolution -#set ($serviceName = $rpUIContext.serviceName) -#set ($serviceDescription = $rpUIContext.serviceDescription) -#set ($informationURL = $rpUIContext.informationURL) -#set ($privacyStatementURL = $rpUIContext.privacyStatementURL) -#set ($rpOrganizationLogo = $rpUIContext.getLogo()) -#set ($rpOrganizationName = $rpUIContext.organizationDisplayName) -#set ($replaceDollarWithNewline = true) -## - - - - - - - #springMessageText("idp.attribute-release.title", "Information Release") - - -
- #parse("csrf/csrf.vm") -
-
- - #if ($rpOrganizationLogo) - - #end -
- #if ($serviceName) -

- #springMessageText("idp.attribute-release.serviceNameLabel", "You are about to access the service:")
- $serviceName - #if ($rpOrganizationName) - #springMessageText("idp.attribute-release.of", "of") $encoder.encodeForHTML($rpOrganizationName) - #end -

- #end - #if ($serviceDescription) -

- #springMessageText("idp.attribute-release.serviceDescriptionLabel", "Description as provided by this service:")
- $encoder.encodeForHTML($serviceDescription) -
-

- #end - #if ($informationURL) -

- #springMessageText("idp.attribute-release.informationURLLabel", "Additional information about the service") -

- #end -
- - - - - - - - #foreach ($attribute in $attributeReleaseContext.getConsentableAttributes().values()) - - - - - - #end - -
- #springMessageText("idp.attribute-release.attributesHeader", "Information to be Provided to Service") -
$encoder.encodeForHTML($attributeDisplayNameFunction.apply($attribute)) - #foreach ($value in $attribute.values) - #if ($replaceDollarWithNewline) - #set ($encodedValue = $encoder.encodeForHTML($value.getDisplayValue()).replaceAll($encoder.encodeForHTML('$'),"
")) - #else - #set ($encodedValue = $encoder.encodeForHTML($value.getDisplayValue())) - #end - #if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled) - - #else - $encodedValue - #end -
- #end -
- #if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled) - #set ($inputType = "checkbox") - #else - #set ($inputType = "hidden") - #end - -
-
- #if ($privacyStatementURL) -

- #springMessageText("idp.attribute-release.privacyStatementURLLabel", "Data privacy information of the service") -

- #end -
-

- #springMessageText("idp.attribute-release.confirmationQuestion", "The information above would be shared with the service if you proceed. Do you agree to release this information to the service every time you access it?") -

- #if ($attributeReleaseFlowDescriptor.doNotRememberConsentAllowed || $attributeReleaseFlowDescriptor.globalConsentAllowed) -
- #springMessageText("idp.attribute-release.consentMethod", "Select an information release consent duration:") - #end - #if ($attributeReleaseFlowDescriptor.doNotRememberConsentAllowed) -

- - -

    -
  • #springMessageText("idp.attribute-release.doNotRememberConsentItem", "I agree to send my information this time.")
  • -
-

- #end - #if ($attributeReleaseFlowDescriptor.doNotRememberConsentAllowed || $attributeReleaseFlowDescriptor.globalConsentAllowed) -

- - -

    -
  • #springMessageText("idp.attribute-release.rememberConsentItem", "I agree that the same information will be sent automatically to this service in the future.")
  • -
-

- #end - #if ($attributeReleaseFlowDescriptor.globalConsentAllowed) -

- - -

    -
  • #springMessageText("idp.attribute-release.globalConsentItem", "I agree that all of my information will be released to any service.")
  • -
-

- #end - #if ($attributeReleaseFlowDescriptor.doNotRememberConsentAllowed || $attributeReleaseFlowDescriptor.globalConsentAllowed) - #springMessageText("idp.attribute-release.consentMethodRevoke", "This setting can be revoked at any time with the checkbox on the login page.") -
- #end -

- - -

-
-
-
- - diff --git a/test-compose/idp/container_files/config/shib-idp/views/intercept/expiring-password.vm b/test-compose/idp/container_files/config/shib-idp/views/intercept/expiring-password.vm deleted file mode 100644 index 4395844..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/intercept/expiring-password.vm +++ /dev/null @@ -1,54 +0,0 @@ -## -## Velocity Template for expiring password view -## -## Velocity context will contain the following properties -## flowExecutionUrl - the form action location -## flowRequestContext - the Spring Web Flow RequestContext -## flowExecutionKey - the SWF execution key (this is built into the flowExecutionUrl) -## profileRequestContext - root of context tree -## authenticationContext - context with authentication request information -## authenticationErrorContext - context with login error state -## authenticationWarningContext - context with login warning state -## ldapResponseContext - context with LDAP state (if using native LDAP) -## encoder - HTMLEncoder class -## request - HttpServletRequest -## response - HttpServletResponse -## environment - Spring Environment object for property resolution -## custom - arbitrary object injected by deployer -## - - - - - - #springMessageText("idp.title", "Web Login Service") - - - - - -
-
-
- #springMessageText( -

#springMessageText("idp.login.expiringSoon", "Your password will be expiring soon!")

-
- -
-

#springMessageText("idp.login.changePassword", "To create a new password now, go to") - #.

-

#springMessageText("idp.login.proceedBegin", "Your login will proceed in 20 seconds or you may click") - #springMessageText("idp.login.proceedHere", "here") - #springMessageText("idp.login.proceedEnd", "to continue").

-
-
- -
- -
- -
- - \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/views/intercept/impersonate.vm b/test-compose/idp/container_files/config/shib-idp/views/intercept/impersonate.vm deleted file mode 100644 index 37c486c..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/intercept/impersonate.vm +++ /dev/null @@ -1,90 +0,0 @@ -## -## Velocity Template for expiring password view -## -## Velocity context will contain the following properties -## flowExecutionUrl - the form action location -## flowRequestContext - the Spring Web Flow RequestContext -## flowExecutionKey - the SWF execution key (this is built into the flowExecutionUrl) -## profileRequestContext - root of context tree -## rpUIContext - the context with SP UI information from the metadata -## encoder - HTMLEncoder class -## request - HttpServletRequest -## response - HttpServletResponse -## environment - Spring Environment object for property resolution -## custom - arbitrary object injected by deployer -## -#set ($rpContext = $profileRequestContext.getSubcontext('net.shibboleth.idp.profile.context.RelyingPartyContext')) - - - - - - #springMessageText("idp.title", "Web Login Service") - - - - -
-
-
- #springMessageText( -

#springMessageText("idp.impersonate.header", "Account Impersonation")

-
- -
- -
- #parse("csrf/csrf.vm") - #set ($serviceName = $rpUIContext.serviceName) - #if ($serviceName && !$rpContext.getRelyingPartyId().contains($serviceName)) - - $encoder.encodeForHTML($serviceName) - - #end - - - #springMessageText("idp.impersonate.text", "Enter an account name to impersonate to this service or continue normally.") - - -
- - - - - -
- -
- -
- -
- -
- -
- -
-
- -
- -
- -
- - \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/views/intercept/terms-of-use.vm b/test-compose/idp/container_files/config/shib-idp/views/intercept/terms-of-use.vm deleted file mode 100644 index 67b2c15..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/intercept/terms-of-use.vm +++ /dev/null @@ -1,69 +0,0 @@ -## -## Velocity Template for DisplayTermsOfUsePage view-state -## -## Velocity context will contain the following properties : -## -## encoder - HTMLEncoder class -## flowExecutionKey - SWF execution key (this is built into the flowExecutionUrl) -## flowExecutionUrl - form action location -## flowRequestContext - Spring Web Flow RequestContext -## request - HttpServletRequest -## response - HttpServletResponse -## rpUIContext - context with SP UI information from the metadata -## termsOfUseId - terms of use ID to lookup message strings -## environment - Spring Environment object for property resolution -#set ($serviceName = $rpUIContext.serviceName) -#set ($rpOrganizationLogo = $rpUIContext.getLogo()) -## - - - - - - - #springMessageText("${termsOfUseId}.title", "Terms of Use") - - -
-
- - #if ($rpOrganizationLogo) - - #end -
- #if ($rpOrganizationLogo) -
-

#springMessageText("${termsOfUseId}.title", "Terms of Use")

-
- #end -
- #springMessageText("${termsOfUseId}.text", "Terms of Use Text...") -
-
-
-
- #parse("csrf/csrf.vm") - -
-
-
-
- #parse("csrf/csrf.vm") - - - #if ($requireCheckbox) -

#springMessageText("idp.terms-of-use.required", "Please check this box if you want to proceed.")

- #end - -
-
-
-
-
- -
-
- - diff --git a/test-compose/idp/container_files/config/shib-idp/views/login-error.vm b/test-compose/idp/container_files/config/shib-idp/views/login-error.vm deleted file mode 100644 index 224976b..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/login-error.vm +++ /dev/null @@ -1,26 +0,0 @@ -## Velocity Template for login error message production, included by login.vm -## -## authenticationErrorContext - context containing error data, if available -## -#if ($authenticationErrorContext && $authenticationErrorContext.getClassifiedErrors().size() > 0) - ## This handles errors that are classified by the message maps in the authentication config. - #set ($eventId = $authenticationErrorContext.getClassifiedErrors().iterator().next()) - #if ($eventId != "ReselectFlow") - #set ($eventKey = $springMacroRequestContext.getMessage("$eventId", "login")) - #set ($message = $springMacroRequestContext.getMessage("${eventKey}.message", "Login Failure: $eventId")) - #end -#elseif ($authenticationErrorContext && $authenticationErrorContext.getExceptions().size() > 0) - ## This handles login exceptions that are left unclassified. - #set ($loginException = $authenticationErrorContext.getExceptions().get(0)) - #if ($loginException.getMessage()) - #set ($message = "Login Failure: $loginException.getMessage()") - #else - #set ($message = $loginException.toString()) - #end -#end - -#if ($message) -
-

$encoder.encodeForHTML($message)

-
-#end diff --git a/test-compose/idp/container_files/config/shib-idp/views/login.vm b/test-compose/idp/container_files/config/shib-idp/views/login.vm deleted file mode 100644 index 7609d40..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/login.vm +++ /dev/null @@ -1,144 +0,0 @@ -## -## Velocity Template for DisplayUsernamePasswordPage view-state -## -## Velocity context will contain the following properties -## flowExecutionUrl - the form action location -## flowRequestContext - the Spring Web Flow RequestContext -## flowExecutionKey - the SWF execution key (this is built into the flowExecutionUrl) -## profileRequestContext - root of context tree -## authenticationContext - context with authentication request information -## authenticationErrorContext - context with login error state -## authenticationWarningContext - context with login warning state -## ldapResponseContext - context with LDAP state (if using native LDAP) -## rpUIContext - the context with SP UI information from the metadata -## extendedAuthenticationFlows - collection of "extended" AuthenticationFlowDescriptor objects -## passwordPrincipals - contents of the shibboleth.authn.Password.PrincipalOverride bean -## encoder - HTMLEncoder class -## request - HttpServletRequest -## response - HttpServletResponse -## environment - Spring Environment object for property resolution -## custom - arbitrary object injected by deployer -## -#set ($rpContext = $profileRequestContext.getSubcontext('net.shibboleth.idp.profile.context.RelyingPartyContext')) -#set ($username = $authenticationContext.getSubcontext('net.shibboleth.idp.authn.context.UsernamePasswordContext', true).getUsername()) -#set ($passwordEnabled = false) -#if (!$passwordPrincipals or $passwordPrincipals.isEmpty() or $authenticationContext.isAcceptable($passwordPrincipals)) - #set ($passwordEnabled = true) -#end -## - - - - - - #springMessageText("idp.title", "Web Login Service") - - - -
-
-
- #springMessageText( -
- -
-
- #parse("login-error.vm") - -
- #parse("csrf/csrf.vm") - #set ($serviceName = $rpUIContext.serviceName) - #if ($serviceName && !$rpContext.getRelyingPartyId().contains($serviceName)) - - #springMessageText("idp.login.loginTo", "Login to") $encoder.encodeForHTML($serviceName) - - #end - - #if ($passwordEnabled) -
- - -
- -
- - -
- - ## You may need to modify this to taste, such as changing the flow name its checking for to authn/MFA. - #if (!$authenticationContext.getActiveResults().containsKey('authn/Password')) -
- - -
- #end - - #end - -
- - -
- - #if ($passwordEnabled) -
- -
- #end - - #foreach ($extFlow in $extendedAuthenticationFlows) - #if ($authenticationContext.isAcceptable($extFlow) and $extFlow.apply(profileRequestContext)) -
- -
- #end - #end -
- - #* - // - // SP Description & Logo (optional) - // These idpui lines will display added information (if available - // in the metadata) about the Service Provider (SP) that requested - // authentication. These idpui lines are "active" in this example - // (not commented out) - this extra SP info will be displayed. - // Remove or comment out these lines to stop the display of the - // added SP information. - // - *# - #set ($logo = $rpUIContext.getLogo()) - #if ($logo) - $encoder.encodeForHTMLAttribute($serviceName) - #end - #set ($desc = $rpUIContext.getServiceDescription()) - #if ($desc) - $encoder.encodeForHTML($desc) - #end - -
- -
-
- -
- -
-
- - - \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/views/logout-complete.vm b/test-compose/idp/container_files/config/shib-idp/views/logout-complete.vm deleted file mode 100644 index 7341e69..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/logout-complete.vm +++ /dev/null @@ -1,67 +0,0 @@ -## -## Velocity Template for logout flow's concluding view-state (no propagation) -## -## Velocity context will contain the following properties -## flowExecutionUrl - the form action location -## flowRequestContext - the Spring Web Flow RequestContext -## flowExecutionKey - the SWF execution key (this is built into the flowExecutionUrl) -## profileRequestContext - root of context tree -## logoutContext - context with SPSession details for logout operation -## multiRPContext - context with RelyingPartyContexts and possibly SP UI information from the metadata -## encoder - HTMLEncoder class -## request - HttpServletRequest -## response - HttpServletResponse -## environment - Spring Environment object for property resolution -## custom - arbitrary object injected by deployer -## -#set ($activeIdPSessions = $logoutContext and !$logoutContext.getIdPSessions().isEmpty()) -#set ($activeSPSessions = $logoutContext and !$logoutContext.getSessionMap().isEmpty()) - - - - - - #springMessageText("idp.title", "Web Login Service") - - - - -
-
-
- #springMessageText( -
- -
-
- #if ($activeIdPSessions) -

#springMessageText("idp.logout.cancelled", "Logout has been cancelled.")

- #elseif ($activeSPSessions) -

#springMessageText("idp.logout.local", "You elected not to log out of all the applications accessed during your session.")

- #else -

#springMessageText("idp.logout.complete", "The logout operation is complete, and no other services appear to have been accessed during this session.")

- #end -
- -
-
- - - #if ( $profileRequestContext.getProfileId().contains("saml2/logout") ) - - #end - -
- -
-
- - - \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/views/logout-propagate.vm b/test-compose/idp/container_files/config/shib-idp/views/logout-propagate.vm deleted file mode 100644 index 470eff5..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/logout-propagate.vm +++ /dev/null @@ -1,58 +0,0 @@ -## -## Velocity Template for logout flow's concluding view-state (with propagation) -## -## Velocity context will contain the following properties -## flowExecutionUrl - the form action location -## flowRequestContext - the Spring Web Flow RequestContext -## flowExecutionKey - the SWF execution key (this is built into the flowExecutionUrl) -## profileRequestContext - root of context tree -## logoutContext - context with SPSession details for logout operation -## multiRPContext - context with RelyingPartyContexts and possibly SP UI information from the metadata -## htmlEncoder - HTMLEncoder class -## urlEncoder - urlEncoder class -## codecUtil - CodecUtil class -## request - HttpServletRequest -## response - HttpServletResponse -## environment - Spring Environment object for property resolution -## custom - arbitrary object injected by deployer -## - - - - - - #springMessageText("idp.title", "Web Login Service") - - - - - -
-
-
- #springMessageText( -
- -
-
-

#springMessageText("idp.logout.attempt", "Attempting to log out of the following services:")

- #parse("logout/propagate.vm") -
- -
-
- -
- -
-
- - - \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/views/logout.vm b/test-compose/idp/container_files/config/shib-idp/views/logout.vm deleted file mode 100644 index 0b9103b..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/logout.vm +++ /dev/null @@ -1,133 +0,0 @@ -## -## Velocity Template for logout flow's starting view-state -## -## Velocity context will contain the following properties -## flowExecutionUrl - the form action location -## flowRequestContext - the Spring Web Flow RequestContext -## flowExecutionKey - the SWF execution key (this is built into the flowExecutionUrl) -## profileRequestContext - root of context tree -## logoutContext - context with SPSession details for logout operation -## multiRPContext - context with RelyingPartyContexts and possibly SP UI information from the metadata -## encoder - HTMLEncoder class -## request - HttpServletRequest -## response - HttpServletResponse -## environment - Spring Environment object for property resolution -## custom - arbitrary object injected by deployer -## -#set ($rpContext = $profileRequestContext.getSubcontext("net.shibboleth.idp.profile.context.RelyingPartyContext")) -#if ($rpContext) -#set ($rpUIContext = $rpContext.getSubcontext("net.shibboleth.idp.ui.context.RelyingPartyUIContext")) -#end -#set ($promptForIdP = $logoutContext and !$logoutContext.getIdPSessions().isEmpty()) -#set ($promptForSP = $logoutContext and !$logoutContext.getSessionMap().isEmpty()) - - - - - - #* - #if ($promptForSP) - - #elseif ($promptForIdP) - - #end - *# - #springMessageText("idp.title", "Web Login Service") - - - - -
-
-
- #springMessageText( -
- -
-
-

This page is displayed when a logout operation at the Identity Provider completes. This page is an example - and should be customized. It is not fully internationalized because the presentation will be a highly localized - decision, and we don't have a good suggestion for a default.

-
- - #if ($rpContext) -

#springMessageText("idp.logout.sp-initiated", "You have been logged out of the following service:")

-
- #if ($rpUIContext) - $encoder.encodeForHTML($rpUIContext.getServiceName()) - #else - $encoder.encodeForHTML($rpContext.getRelyingPartyId()) - #end -
-
- #end - - #if ($promptForIdP or $promptForSP) -

#springMessageText("idp.logout.prompt", "Choose one of the following, or wait a few seconds for the default.")

-
- -
- -
- -

#springMessageText("idp.logout.idponly.caption", "End your SSO session.")

-
- #end - - #if ($promptForSP) -
- -

#springMessageText("idp.logout.global.caption", "End your SSO session and attempt logout of services accessed during session.")

-
-

#springMessageText("idp.logout.contactServices", "If instructed, the system will attempt to contact the following services:")

-
    - #foreach ($sp in $logoutContext.getSessionMap().keySet()) - #set ($rpCtx = $multiRPContext.getRelyingPartyContextById($sp)) - #if ($rpCtx) - #set ($rpUIContext = $rpCtx.getSubcontext("net.shibboleth.idp.ui.context.RelyingPartyUIContext")) - #end - #if ($rpUIContext and $rpUIContext.getServiceName()) -
  1. $encoder.encodeForHTML($rpUIContext.getServiceName())
  2. - #else -
  3. $encoder.encodeForHTML($sp)
  4. - #end - #end -
-
-
- #end - - #if ($promptForIdP) -
- -

#springMessageText("idp.logout.cancel.caption", "Cancel logout and retain your SSO session.")

-
- #end - - #if ($promptForIdP or $promptForSP) -
- #else -

#springMessageText("idp.logout.complete", "The logout operation is complete, and no other services appear to have been accessed during this session.")

- - - #end - -
- -
-
- -
- -
-
- - - \ No newline at end of file diff --git a/test-compose/idp/container_files/config/shib-idp/views/spnego-unavailable.vm b/test-compose/idp/container_files/config/shib-idp/views/spnego-unavailable.vm deleted file mode 100644 index 3673f02..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/spnego-unavailable.vm +++ /dev/null @@ -1,49 +0,0 @@ -## -## Velocity Template for SPNEGO unauthorized page -## -## This is not a Spring Webflow view, but a special view internal to the -## SPNEGO login flow, so it doesn't contain all of the usual SWF variables. -## -## Velocity context will contain the following properties -## encoder - HTMLEncoder class -## request - HttpServletRequest -## response - HttpServletResponse -## profileRequestContext - root of context tree -## errorUrl - URL to call to indicate error and return back to the login flow -## -#set ($eventKey = $springMacroRequestContext.getMessage("SPNEGOUnavailable", "spnego-unavailable")) - - - - - - #springMessageText("idp.title", "Web Login Sevice") - #springMessageText("${eventKey}.title", "Error") - - - - -
-
-
- #springMessageText( -

#springMessageText("idp.title", "Web Login Sevice") - #springMessage("idp.title.suffix", "Error")

-
- -
- #springMessageText("${eventKey}.message", "Your web browser doesn't support authentication with your desktop login credentials.") - -
-
- -
- -
-
- - diff --git a/test-compose/idp/container_files/config/shib-idp/views/user-prefs.js b/test-compose/idp/container_files/config/shib-idp/views/user-prefs.js deleted file mode 100644 index ab994f9..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/user-prefs.js +++ /dev/null @@ -1,45 +0,0 @@ -"use strict"; - -function createCookie(name, value, seconds) { - var date = new Date(); - date.setTime(date.getTime() + (seconds * 1000)); - var expires = "; expires=" + date.toGMTString(); - - var path = '$environment.getProperty("idp.cookie.path", $request.getContextPath())'; - if (path.length > 0) - path = "; path=" + path; - document.cookie = name + "=" + value + expires + path; -} - -function eraseCookie(name) { - createCookie(name, "", -31536000); -} - -function readCookie(name) { - var nameEQ = name + "="; - var ca = document.cookie.split(';'); - for (var i = 0; i < ca.length; i++) { - var c = ca[i]; - while (c.charAt(0) == ' ') - c = c.substring(1, c.length); - if (c.indexOf(nameEQ) == 0) - return c.substring(nameEQ.length, c.length); - } - return null; -} - -function load(id) { - var checkbox = document.getElementById(id); - if (checkbox != null) { - var spnego = readCookie(checkbox.name); - checkbox.checked = (spnego == "1"); - } -} - -function check(checkbox) { - if (checkbox.checked) { - createCookie(checkbox.name, checkbox.value, $environment.getProperty("idp.cookie.maxAge","31536000")); - } else { - eraseCookie(checkbox.name); - } -} diff --git a/test-compose/idp/container_files/config/shib-idp/views/user-prefs.vm b/test-compose/idp/container_files/config/shib-idp/views/user-prefs.vm deleted file mode 100644 index 8de0503..0000000 --- a/test-compose/idp/container_files/config/shib-idp/views/user-prefs.vm +++ /dev/null @@ -1,60 +0,0 @@ -## -## Velocity Template for user preferences view -## -## Velocity context will contain the following properties -## request - HttpServletRequest -## response - HttpServletResponse -## environment - Spring Environment object for property resolution -## custom - arbitrary object injected by deployer -## - - - - - - #springMessageText("idp.userprefs.title", "Web Login Service") - #springMessageText("idp.userprefs.title.suffix", "Login Preferences") - - - - -
-
-
- #springMessageText( -

#springMessageText("idp.title", "Web Login Service") - #springMessageText("idp.userprefs.title.suffix", "Login Preferences")

-

- #springMessage("idp.userprefs.info") -

-
- - - - -
- -
- -
-
- - - From cff2d46b01361169eb381e86f70b276847e30429 Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Sat, 29 Feb 2020 23:56:38 +0000 Subject: [PATCH 10/14] minor fix --- test-compose/idp/Dockerfile | 6 +++--- tests/fulltest.sh | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test-compose/idp/Dockerfile b/test-compose/idp/Dockerfile index 1cbb5db..671c2bd 100644 --- a/test-compose/idp/Dockerfile +++ b/test-compose/idp/Dockerfile @@ -17,9 +17,9 @@ ADD ${TOMCERT} /opt/certs ADD ${TOMWWWROOT} /usr/local/tomcat/webapps/ROOT ADD ${SHBCFG} /opt/shibboleth-idp/conf ADD ${SHBCREDS} /opt/shibboleth-idp/credentials -ADD ${SHBVIEWS} /opt/shibboleth-idp/views -ADD ${SHBEDWAPP} /opt/shibboleth-idp/edit-webapp -ADD ${SHBMSGS} /opt/shibboleth-idp/messages +#ADD ${SHBVIEWS} /opt/shibboleth-idp/views +#ADD ${SHBEDWAPP} /opt/shibboleth-idp/edit-webapp +#ADD ${SHBMSGS} /opt/shibboleth-idp/messages ADD ${SHBMD} /opt/shibboleth-idp/metadata diff --git a/tests/fulltest.sh b/tests/fulltest.sh index 22b4a73..8088fd9 100755 --- a/tests/fulltest.sh +++ b/tests/fulltest.sh @@ -6,8 +6,8 @@ echo "Launching fresh containers..." ./compose.sh &>/dev/null popd &>/dev/null -echo "Waiting 4 minutes while everything comes up..." -sleep 240 +echo "Waiting 3 minutes while everything comes up..." +sleep 180 pushd tests &>/dev/null rm -f ./lastpage.txt From 4a2e9414c69334d0ee217744f95151de7c2f9be7 Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Tue, 3 Mar 2020 16:18:16 +0000 Subject: [PATCH 11/14] minor fix --- test-compose/idp/Dockerfile | 2 +- .../config/shib-idp/conf/idp.properties | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test-compose/idp/Dockerfile b/test-compose/idp/Dockerfile index 671c2bd..671b9ad 100644 --- a/test-compose/idp/Dockerfile +++ b/test-compose/idp/Dockerfile @@ -1,4 +1,4 @@ -FROM tier/shib-idp:4.0.beta_20200206 +FROM tier/shib-idp:4.0.beta2_20200228 # The build args below can be used at build-time to tell the build process where to find your config files. This is for a completely burned-in config. ARG TOMCFG=config/tomcat diff --git a/test-compose/idp/container_files/config/shib-idp/conf/idp.properties b/test-compose/idp/container_files/config/shib-idp/conf/idp.properties index d03fc19..1ea41c1 100644 --- a/test-compose/idp/container_files/config/shib-idp/conf/idp.properties +++ b/test-compose/idp/container_files/config/shib-idp/conf/idp.properties @@ -69,9 +69,8 @@ idp.encryption.cert=%{idp.home}/credentials/idp-encryption.crt # To downgrade to SHA-1, set to shibboleth.SigningConfiguration.SHA1 #idp.signing.config = shibboleth.SigningConfiguration.SHA256 -# To upgrade to AES-GCM encryption, set to shibboleth.EncryptionConfiguration.GCM -# This is unlikely to work for all SPs, but this is a quick way to test them. -#idp.encryption.config = shibboleth.EncryptionConfiguration.CBC +# The new install default for encryption is now AES-GCM. +idp.encryption.config=shibboleth.EncryptionConfiguration.GCM # Configures trust evaluation of keys used by services at runtime # Internal default is Chaining, overriden for new installs @@ -222,5 +221,6 @@ idp.ui.fallbackLanguages=en,fr,de #idp.fticks.salt=somethingsecret #idp.fticks.loghost=localhost #idp.fticks.logport=514 -idp.sealer.keyPassword=90fa668e-ce0f-45e7-82f1-fa4bd0273b51 -idp.sealer.storePassword=90fa668e-ce0f-45e7-82f1-fa4bd0273b51 + +# Set false if you want SAML bindings "spelled out" in audit log +idp.audit.shortenBindings=true From cb1bc2c7d9abd63107dbbc83bee77b0cb780c24d Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Wed, 11 Mar 2020 15:39:26 +0000 Subject: [PATCH 12/14] bump to IdP 4.0.0 (release) --- Dockerfile | 4 ++-- container_files/idp/idp.installer.properties | 2 +- test-compose/idp/Dockerfile | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 90a691e..cc21e16 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,9 +8,9 @@ FROM centos:centos7 ENV TOMCAT_MAJOR=9 \ TOMCAT_VERSION=9.0.31 \ ##shib-idp \ - VERSION=4.0.0-beta2 \ + VERSION=4.0.0 \ ##TIER \ - TIERVERSION=20200228 \ + TIERVERSION=20200311 \ ################## \ ### OTHER VARS ### \ ################## \ diff --git a/container_files/idp/idp.installer.properties b/container_files/idp/idp.installer.properties index 5f4b195..ace3ea1 100644 --- a/container_files/idp/idp.installer.properties +++ b/container_files/idp/idp.installer.properties @@ -1,4 +1,4 @@ -idp.src.dir=/tmp/shibboleth/shibboleth-identity-provider-4.0.0-beta2 +idp.src.dir=/tmp/shibboleth/shibboleth-identity-provider-4.0.0 idp.target.dir=/opt/shibboleth-idp idp.host.name=idp.example.org idp.sealer.password=changeit diff --git a/test-compose/idp/Dockerfile b/test-compose/idp/Dockerfile index 671b9ad..fa052c8 100644 --- a/test-compose/idp/Dockerfile +++ b/test-compose/idp/Dockerfile @@ -1,4 +1,4 @@ -FROM tier/shib-idp:4.0.beta2_20200228 +FROM tier/shib-idp:4.0.0_20200311 # The build args below can be used at build-time to tell the build process where to find your config files. This is for a completely burned-in config. ARG TOMCFG=config/tomcat From 34176335d95a2cf9890f62bd0fe96fe16d0ae898 Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Thu, 12 Mar 2020 16:10:18 +0000 Subject: [PATCH 13/14] tests fix --- test-compose/idp/Dockerfile | 2 +- tests/fulltest.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test-compose/idp/Dockerfile b/test-compose/idp/Dockerfile index fa052c8..671b9ad 100644 --- a/test-compose/idp/Dockerfile +++ b/test-compose/idp/Dockerfile @@ -1,4 +1,4 @@ -FROM tier/shib-idp:4.0.0_20200311 +FROM tier/shib-idp:4.0.beta2_20200228 # The build args below can be used at build-time to tell the build process where to find your config files. This is for a completely burned-in config. ARG TOMCFG=config/tomcat diff --git a/tests/fulltest.sh b/tests/fulltest.sh index 8088fd9..40d7d0a 100755 --- a/tests/fulltest.sh +++ b/tests/fulltest.sh @@ -6,8 +6,8 @@ echo "Launching fresh containers..." ./compose.sh &>/dev/null popd &>/dev/null -echo "Waiting 3 minutes while everything comes up..." -sleep 180 +echo "Waiting 1 minute while everything comes up..." +sleep 60 pushd tests &>/dev/null rm -f ./lastpage.txt From 0ad707b4e210e98e1cb317e45ad6a206dbd6de62 Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Thu, 12 Mar 2020 16:35:11 +0000 Subject: [PATCH 14/14] merge fix --- Dockerfile | 6 +++--- test-compose/idp/Dockerfile | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index cc21e16..8dc949f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,9 +11,9 @@ ENV TOMCAT_MAJOR=9 \ VERSION=4.0.0 \ ##TIER \ TIERVERSION=20200311 \ -################## \ -### OTHER VARS ### \ -################## \ +#################### \ +#### OTHER VARS #### \ +#################### \ # \ #global \ IMAGENAME=shibboleth_idp \ diff --git a/test-compose/idp/Dockerfile b/test-compose/idp/Dockerfile index 671b9ad..fa052c8 100644 --- a/test-compose/idp/Dockerfile +++ b/test-compose/idp/Dockerfile @@ -1,4 +1,4 @@ -FROM tier/shib-idp:4.0.beta2_20200228 +FROM tier/shib-idp:4.0.0_20200311 # The build args below can be used at build-time to tell the build process where to find your config files. This is for a completely burned-in config. ARG TOMCFG=config/tomcat