Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision |
de:shibidp:config-encryption [2020/09/17 16:18] – Silke Meyer | de:shibidp:config-encryption [2023/08/14 12:04] – [Algorithmus pro Profil setzen, Variante] Wolfgang Pempe |
---|
| <- de:shibidp:config-sealer|Secret Key-Management ^ de:shibidp:uebersicht|Überblick: Tutorial zur IdP-Inbetriebnahme ^ de:production|Produktivbetrieb -> |
| ~~NOTOC~~ |
| |
====== Konfiguration des Verschlüsselungsalgorithmus ====== | ====== Konfiguration des Verschlüsselungsalgorithmus ====== |
| |
| {{INLINETOC 2}} |
| |
Ab Shibboleth IdP 3.4 wurde eine Einstellung aufgenommen, mit der der Algorithmus eingestellt werden kann, mit dem die Assertions verschlüsselt werden. Der alte Standard-Algorithmus AES-CBC gilt nicht mehr als sicher, daher ist bei neu installierten IdPs ab Version 4.x die Voreinstellung AES-GCM. | Ab Shibboleth IdP 3.4 wurde eine Einstellung aufgenommen, mit der der Algorithmus eingestellt werden kann, mit dem die Assertions verschlüsselt werden. Der alte Standard-Algorithmus AES-CBC gilt nicht mehr als sicher, daher ist bei neu installierten IdPs ab Version 4.x die Voreinstellung AES-GCM. |
Wir bemühen uns, die Liste der diesbezüglichen Entity IDs möglichst aktuell zu halten. Hinweise an [[hotline@aai.dfn.de|]] sind sehr willkommen! | Wir bemühen uns, die Liste der diesbezüglichen Entity IDs möglichst aktuell zu halten. Hinweise an [[hotline@aai.dfn.de|]] sind sehr willkommen! |
| |
* Springer Nature: [[https://fsso.springer.com|https://fsso.springer.com]] | * <del>ACS Publications: [[https://pubs.acs.org/shibboleth|https://pubs.acs.org/shibboleth]]</del> |
* GWDG: [[https://sso.gwdg.de/ssp|https://sso.gwdg.de/ssp]], [[https://sso.academiccloud.de/ssp|https://sso.academiccloud.de/ssp]] | * <del>AIP Scitation: [[https://scitation.aip.org/shibboleth|https://scitation.aip.org/shibboleth]]</del> |
* GÉANT SP Proxy: [[https://terena.org/sp|https://terena.org/sp]] | * <del>Atypon (Proxy für verschiedene Verlage): [[https://iam.atypon.com/shibboleth|https://iam.atypon.com/shibboleth]]</del> |
* Citavi Web: https://citaviweb.citavi.com/shibboleth | * <del>Brill Online Books and Journals: [[https://booksandjournals.brillonline.com/shibboleth|https://booksandjournals.brillonline.com/shibboleth]]</del> |
| * Brockhaus https://auth.brockhaus.de/samlauth und https://auth.brockhaus.at/samlauth |
| * <del>Cambridge Journals Online: [[https://shibboleth.cambridge.org/shibboleth-sp|https://shibboleth.cambridge.org/shibboleth-sp]]</del> |
| * Cisco Webex Tenant SPs |
| * Citavi Web: [[https://citaviweb.citavi.com/shibboleth|https://citaviweb.citavi.com/shibboleth]] |
| * De Gruyter: [[https://www.degruyter.com/shibboleth|https://www.degruyter.com/shibboleth]] <del>und https://www.degruyter.com/ssp</del> |
| * Dropbox: https://dropbox.com/sp |
| * <del>Elsevier: [[https://sdauth.sciencedirect.com/|https://sdauth.sciencedirect.com/]]</del> |
| * <del>Emerald Insight: [[https://sp.emerald.com/sp|https://sp.emerald.com/sp]]</del> |
| * Fiori: https://fiori.fhhrz.net (und wahrscheinlich https://test-fiori.fhhrz.net) |
| * <del>GÉANT SP Proxy: [[https://terena.org/sp|https://terena.org/sp]]</del> |
| * <del>Hanser E-Library: [[https://www.hanser-elibrary.com/shibboleth|https://www.hanser-elibrary.com/shibboleth]]</del> |
| * Highwire (Proxy für verschiedene Verlage): [[https://shibboleth.highwire.org/entity/secure-sp|https://shibboleth.highwire.org/entity/secure-sp]] |
| * Hirzel: https://elibrary.hirzel.de |
| * Hogrefe E-Library: [[https://elibrary.hogrefe.de|https://elibrary.hogrefe.de]] |
| * IOPScience Online Services: [[https://ticket.iop.org/shibboleth|https://ticket.iop.org/shibboleth]] |
| * Jobteaser-SPs (alle Tenant-SPs) |
| * <del>Karger Publishers: [[https://www.karger.com/oa/entity|https://www.karger.com/oa/entity]]</del> |
| * Landesnetz Rheinland-Pfalz: https://login.rlp.net/adfs/services/trust |
| * Meiner E-Library: [[https://meiner-elibrary.de|https://meiner-elibrary.de]] |
| * <del>Narr eLibrary: [[https://elibrary.narr.digital|https://elibrary.narr.digital]]</del> |
| * Nature Publishing: [[https://secure.nature.com/shibboleth|https://secure.nature.com/shibboleth]] |
| * <del>Ovid: https://shibboleth.ovid.com/entity</del> |
| * SOP Hilmbauer & Mauberger GmbH & Co KG, Amstetten: https://www.service4mobility.com/europe |
| * <del>Springer Nature: [[https://fsso.springer.com|https://fsso.springer.com]]</del> |
| * Steiner E-Library: [[https://elibrary.steiner-verlag.de|https://elibrary.steiner-verlag.de]] |
| * Thieme: https://prd.thieme.de/shibboleth-sp |
| * Thomson Reuters - Web of Knowledge and EndNote Web: [[https://sp.tshhosting.com/shibboleth|https://sp.tshhosting.com/shibboleth]] |
| * <del>Toolbox Lehrerbildung: https://toolbox-edx.edu.tum.de/shibboleth</del> |
| * Wiley Online Library: [[https://sp.onlinelibrary.wiley.com/shibboleth|https://sp.onlinelibrary.wiley.com/shibboleth]] |
| |
===== Standard-Algorithmen in den Versionen ab 3.4 ===== | ===== Standard-Algorithmen in den Versionen ab 3.4 ===== |
# oder neuer Algorithmus AES-GCM: | # oder neuer Algorithmus AES-GCM: |
idp.encryption.config=shibboleth.EncryptionConfiguration.GCM | idp.encryption.config=shibboleth.EncryptionConfiguration.GCM |
| |
| |
</file> | </file> |
===== Algorithmus pro Profil setzen ===== | ===== Algorithmus pro Profil setzen ===== |
| |
Die folgenden zwei Beispiele zeigen, wie Sie für einen oder mehrere IdPs den alten Algorithmus erlauben (Quelle: [[https://wiki.shibboleth.net/confluence/display/IDP4/SecurityConfiguration|https://wiki.shibboleth.net/confluence/display/IDP4/SecurityConfiguration]]). | Die folgenden zwei Beispiele zeigen, wie Sie für einen oder mehrere SPs den alten Algorithmus erlauben (Quelle: [[https://wiki.shibboleth.net/confluence/display/IDP4/SecurityConfiguration|https://wiki.shibboleth.net/confluence/display/IDP4/SecurityConfiguration]]). |
| |
| ==== Entity IDs ==== |
| |
<file xml ./conf/relying-party.xml> | <file xml ./conf/relying-party.xml> |
<util:list id="shibboleth.RelyingPartyOverrides"> | <util:list id="shibboleth.RelyingPartyOverrides"> |
| |
<bean parent="RelyingPartyByName" c:relyingPartyIds="HIER-DIE-ENTITYID-DES-SP"> | <bean parent="RelyingPartyByName" c:relyingPartyIds="#{{'HIER-DIE-ENTITYID-EINES-SP', 'ENTITYID-EINES-WEITEREN-SP', '...usw....'}}"> |
<property name="profileConfigurations"> | <property name="profileConfigurations"> |
<list> | <list> |
<bean parent="Shibboleth.SSO" p:securityConfiguration-ref="shibboleth.SecurityConfiguration.CBC" /> | |
<bean parent="SAML2.SSO" p:securityConfiguration-ref="shibboleth.SecurityConfiguration.CBC" /> | <bean parent="SAML2.SSO" p:securityConfiguration-ref="shibboleth.SecurityConfiguration.CBC" /> |
<bean parent="SAML2.ECP" p:securityConfiguration-ref="shibboleth.SecurityConfiguration.CBC" /> | <bean parent="SAML2.ECP" p:securityConfiguration-ref="shibboleth.SecurityConfiguration.CBC" /> |
| |
</util:list> | </util:list> |
| |
| |
</file> | </file> |
| |
Ein Beispiel mit mehreren SP-EntityIDs, mit den Angaben für Post Authentication Flows und NameID-Formate, aber ohne ECP-Schnittstelle und ohne die Erlaubnis für Attribute Queries würde so aussehen: | ==== Entity Category ==== |
| |
| Hier ein Beispiel, bei dem die abweichende Profil-Konfiguration über die [[http://aai.dfn.de/category/no-aes-gcm-support|Entity Category http://aai.dfn.de/category/no-aes-gcm-support]] gesteuert wird. Die Zuordnung zu dieser Entity Category wird zentral über eine Liste gesteuert, die die [[#liste_betroffener_service_provider|o.g. Entity IDs]] enthält. Hierbei werden auch SPs erfasst, die über die [[de:edugain#konfiguration_idp_sp_aa|eduGAIN Downstream-Metadaten]] in die DFN-AAI kommen. \\ |
| **Die sonstigen Einstellungen/Parameter müssen den lokalen Bedürfnissen bzw. Gegebenheiten angepasst werden!** |
| |
<file xml ./conf/relying-party.xml> | <file xml ./conf/relying-party.xml> |
<util:list id="shibboleth.RelyingPartyOverrides"> | <util:list id="shibboleth.RelyingPartyOverrides"> |
| |
<bean parent="RelyingPartyByName" c:relyingPartyIds="#{{'ENTITYID1', 'ENTITYID2', 'ENTITYID3'}}"> | <bean parent="RelyingPartyByTag"> |
| <constructor-arg name="candidates"> |
| <list> |
| <bean parent="TagCandidate" c:name="http://macedir.org/entity-category" |
| p:values="http://aai.dfn.de/category/no-aes-gcm-support"/> |
| </list> |
| </constructor-arg> |
<property name="profileConfigurations"> | <property name="profileConfigurations"> |
<list> | <list> |
| |
</util:list> | </util:list> |
| |
| |
</file> | </file> |
| |
===== Verwendeten Algorithmus im Log nachvollziehen ===== | ===== Algorithmus pro Profil setzen, Variante ===== |
| |
Der IdP loggt im Loglevel DEBUG u.a. die verschlüsselten Assertions. Dort finden Sie den verwendeten Algorithmus (Ausschnitt gekürzt): | Der Algorithmus kann im IDP 4.x auch in der metadata-providers.xml Datei gesetzt werden. In manchen Konfigurationen kann das zur Übersichtlichkeit beitragen, z.B. wenn die relying-party.xml sowieso schon umfangreich ist. |
| |
| <file xml ./conf/metadata-providers.xml> |
| <!-- Metadaten aller SPs der DFN-AAI Produktivföderation --> |
| <MetadataProvider id="DFN_AAI" |
| xsi:type="FileBackedHTTPMetadataProvider" |
| backingFile="%{idp.home}/metadata/DFN-AAI-sp-metadata.xml" |
| metadataURL="https://www.aai.dfn.de/metadata/dfn-aai-sp-metadata.xml" |
| maxRefreshDelay="PT2H"> |
| |
| <MetadataFilter xsi:type="SignatureValidation" requireSignedRoot="true" |
| certificateFile="%{idp.home}/credentials/dfn-aai.g2.pem"/> |
| |
| <MetadataFilter xsi:type="Algorithm"> |
| <md:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" /> |
| <Entity>https://auth.brockhaus.de/samlauth</Entity> |
| <Entity>https://auth.brockhaus.at/samlauth</Entity> |
| <Entity>https://citaviweb.citavi.com/shibboleth</Entity> |
| <Entity>https://www.degruyter.com/shibboleth</Entity> |
| <Entity>https://dropbox.com/sp</Entity> |
| <Entity>https://fiori.fhhrz.net</Entity> |
| <Entity>https://test-fiori.fhhrz.net</Entity> |
| <Entity>https://shibboleth.highwire.org/entity/secure-sp</Entity> |
| <Entity>https://elibrary.hirzel.de</Entity> |
| <Entity>https://elibrary.hogrefe.de</Entity> |
| <Entity>https://ticket.iop.org/shibboleth</Entity> |
| <Entity>https://login.rlp.net/adfs/services/trust</Entity> |
| <Entity>https://meiner-elibrary.de</Entity> |
| <Entity>https://secure.nature.com/shibboleth</Entity> |
| <Entity>https://www.service4mobility.com/europe</Entity> |
| <Entity>https://elibrary.steiner-verlag.de</Entity> |
| <Entity>https://prd.thieme.de/shibboleth-sp</Entity> |
| <Entity>https://sp.tshhosting.com/shibboleth</Entity> |
| <Entity>https://sp.onlinelibrary.wiley.com/shibboleth</Entity> |
| </MetadataFilter> |
| |
| </MetadataProvider> |
| |
| </file> |
| |
| ===== Verwendeten Algorithmus im IdP-Log nachvollziehen ===== |
| |
| Ein neu installierter IdP 4.x loggt den verwendeten Algorithmus ins ''idp-audit.log'':<file bash idp-audit.log> |
| 127.0.0.2|2020-11-25T09:18:42.067973Z|2020-11-25T09:18:53.319425Z|pingel|https://sp2.local/shibboleth|_f3f9070c525b2e7898b61e4a9c0e3a4b|password|2020-11-25T09:18:47.055896Z|eduPersonEntitlement,samlSubjectID,samlPairwiseID,mail,eduPersonScopedAffiliation|||false|false|AES128-GCM|Redirect|POST||Success||759afa9ead212d7d7f928be18669ff55af4009d6309491145bfcd8c74c5200d8|Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0</file> |
| |
| Um dieses Logging-Verhalten auch in einem von 3.x aktualisierten IdP 4.x zu bekommen, können Sie die Datei ''conf/audit.xml'' durch die Datei ''dist/conf/audit.xml'' ersetzen. |
| |
| Außerdem loggt der IdP im Loglevel DEBUG für ''idp.loglevel.messages'' die verschlüsselten Assertions. Dort finden Sie den verwendeten Algorithmus (Ausschnitt gekürzt): |
| |
<file bash idp-process.log> | <file bash idp-process.log> |
<saml2:EncryptedAssertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"> | <saml2:EncryptedAssertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"> |
<xenc:EncryptionMethod Algorithm="http://www.w3.org/2009/xmlenc11#aes128-gcm" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"/> | <xenc:EncryptionMethod Algorithm="http://www.w3.org/2009/xmlenc11#aes128-gcm" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"/> |
| |
</file> | </file> |
| |
**Die Basis-Konfiguration des IdPs ist damit abgeschlossen.** Nehmen Sie Ihren IdP jetzt in [[:de:production|Produktivbetrieb]]. | ===== Unterstützte Algorithmen am SP prüfen ===== |
| |
| Bei **Shibboleth SPs** finden Sie die Liste der unterstützten Verschlüsselungsalgorithmen über den Metadata Handler (/Shibboleth.sso/Metadata) in den Elementen namens <EncryptionMethod>. |
| |
| Bei **anderen SP-Implementierungen** existieren i.d.R. ähnliche Mechanismen. Ansonsten hilft ein Blick in die Dokumentation der betreffenden SP-Software oder eine Anfrage beim Customer Support des Herstellers bzw. Plattformbetreibers. |
| |
{{tag>idp4 tutorial}} | {{tag>idp4 tutorial aes-gcm algorithmus verschlüsselung included-in-ansible}} |
| |
| |