Transcription

ssystemsUmfassende, Professionelle IT-ServiceleistungenFirmengeschichteGegründet im Jahr 2003 verfügt ssystemsüber mehr als 10 Jahre Erfahrung in derZusammenarbeit mit Personen, Gruppen,Teams in Hochschulen, die sich mit CampusIT beschäftigen.ssystems mit seinen Sitzen in München undBerlin ist derzeit eines der wenigenUnternehmen in Deutschland, die mit denHerausforderungen von Campus-IT auch imKontext großer Hochschulen vertraut sind undbei dem das konzeptionelle und technischeFachwissen existiert, um ihre Projekt kompetentbegleiten zu können.Wir sind groß genug, um komplexe Lösungenrealisieren zu können und dabei menschlichpräsent und organisatorisch flexibel.www.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.1

2Über unsUmfassende, Professionelle IT-ServiceleistungenIdentity und Access ManagementServer und InfrastrukturCampus ManagementMail, Web, Storage(Managed) Hosting, IaaSUNIX, Linux und NetzwerkeVirtualisierungDatenschutzBeratung, Konzeption und UmsetzungVerwaltung und BetriebMetadirectories und ProzesberatungVerzeichnisdiensteSSO, Shibboleth und AAIErweiterung und IntegrationAnwendungsentwicklungE-Learning, E-PrüfungCMS und LMS ErweiterungenSystemprogrammierung, BackendsCustomized FrontendsJAVA, Spring, GWT, BPMPerl, PHP, Shell, uvm.Moodle, Blackboard, CLIX, OpenCASTSocial Learning, E-Portfolios, MaharaOnline Klausuren – E-AssessmentCMS: TYPO3, Drupal, Firstspirit, Wordpresswww.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.

3ReferenzenNachhaltige systems.de 2017 ssystems Harald Strack. All Rights Reserved.

4HerausforderungAutomatisierte Verbreitung von AAIKomptenzen nutzen Einstieg hnell Shibboleth SPbereit stellen IdP Freigabenkonfigurieren GeringeEinarbeitung fürAdmins undEntwickler Kernkomptenz beiAnwendungsentwicklung Standardsoftwarenur konfigurieren Widerständeabbauen SchnellePrototypen Basis für neueDienste SSO, Benutzererfahrung IdM Prozesseforcierenwww.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved. 2 FA Auditing Einsatz von„alternativenVerfahren“verhindern

5SP ay/CONCEPT/NativeSPSkills25%25%25%25%OSstandard OS-level knowledge (e.g., how to deal withsoftware installation/uninstallation, manipulate/editconfiguration files, start/stop processes, etc.)PKIa basic working knowledge of public key cryptography,similar to the kinds of skills needed to deploy SSLcertificatesXMLa good working knowledge of XML, how to edit andsanity-check it, diagnose parser error messages, etc.WWWa basic understanding of the web at the level ofcookies, redirects, forms, etc. AND a basicunderstanding of web authenticationwww.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.

6Ein typischer SPZiemlich viel Applikationsfremde TechnikShibboleth SP BetriebssystemPackages / RepositoriesNTPZertifikate, Apache SSLKonfiguration, Attribute Policy undMapAAI Monitoring Log Analyse / Auditing /Alerts Backup Firewall, Metadaten registrieren Attribute freigeben Testuser / Login testApplication www.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.Registrierung / gout

Warum Saltstack?Automatisierung der Konfiguration von ServersystemenAutomatisierung des Deliveryvon Shibboleth Service Providern:Salt is a new approach to infrastructuremanagement built on a dynamic communicationbus. Salt can be used for data-drivenorchestration, remote execution for anyinfrastructure, configuration management forany app stack, and much more.Pull und Push Verfahren:Master/Minion im RZAlternativ salt-sshStarke CommunityShibboleth FormelverfügbarYAML und Templates. Einmalverstanden, flexibel einsetzbar.Introspection sehr gut:Man sieht und versteht gutwas passiertsalt-ssh –i state.apply sp-test.ssystems.de test Truewww.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.7

8DeploymentKein Unterschied mehr zwischen Live- und Test-Platformen oder Cluster NodesSaltingSP RequirementAcceptance TestDeliver StagingDeploy to Productionsalt-ssh –i state.apply ‚sp-*.ssystems.de‘ test Falsewww.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.

9Vorteile für das RZProzesse und Technik verständlich, erlernbar und wiederholbarDokumentation Nachvollziehbarkeitvon eigenenTätigkeiten und dervon Kollegen Konfigurationen zujedem Zeitpunktverstehen (GIT)und anwendenDelegierbarkeit Kollegen müssenin der Lage sein,SPs bereitzustellen LangjährigeShibbolethErfahrung nichtzwingendnotwendigwww.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.Wartung Mit vorkonfiguriertenVMs nicht möglich Zertifikatswechsel Ciphers anpassen Kleinigkeiten

Motivaionssh key managementBegriffe: State: beschreibt wasgemacht wird Pillar: beschreibt wie esgemacht wird (Parameter) Formel: Menge von Statesund Pillar Presetsssh keys provision hstrack:Statesssh auth.present:- user: root- source: salt://ssh keys/hstrack.pub- config: '%h/.ssh/authorized keys'ssh keys deprovision mitarbeiter:ssh auth.absent:- user: root- source: salt://ssh keys/mitarbeiter.pub- config: '%h/.ssh/authorized keys'base:Mapping von States auf Hosts'*':- ssh keys/ssh key hstrack- ssh keys/ssh key deprovision mitarbeiter #diese state entfernt keys!- etckeeper'*google.de':- ssh keys/ssh key dtrump- nginx/ofacwww.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.10

Saltstack SP ay/IDP30/Contributions and Extensions25%25%25%25%Entity IDThe SP's SAML entity ID, eThis key-pair (a DER-encoded X.509 certificate andprivate key in base64 format) supports inbound XMLencryption and signing.SessioninitatorEither unconditionally redirect users to a single identityprovider, or send users to a discovery service, wherethey can choose one of the trusted identity providers.Metadata ProvidersAt a minimum this is a list of URLs, from which the SPcan download the XML metadata of trusted identityproviders.www.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.11

Pillar: leth-formula/blob/master/pillar.exampleBegriffe: State: beschreibt wasgemacht wird Pillar: beschreibt wie esgemacht wird (Parameter) Formel: Menge von Statesund Pillar Presetsshibboleth:sp:entity id: https://www.example.com/shibbolethsupport contact: '[email protected]'remote user:- eppn- upn- persistent-id- targeted-id{%- if grains['osfamily'] ! 'RedHat' %}backchannel cipher suites: # intermediate-strength profile'ECDHE-ECDSA-usw '{%- endif %}session check address: Truesession handler ssl: Truesession cookie properties: httpssession idp history: Truesso default idp: https://login.example.com/idp/shibboleth# sso discovery url: https://www.example.com/shibboleth-eds/async logout: False# workaround for AD FSwww.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.12

Session a/blob/master/pillar.exampleBegriffe: pillar.example:Gesamtkonfiguration, injeder Formel enthaltensession handlers:- type: MetadataGeneratorlocation: /Metadata.xmlsigning: False# TODO: configure signing- type: Statuslocation: /Statusacl:- 192.0.2.0/24# example management network- 127.0.0.1# IPv4 loopback (default)- ::1# IPv6 loopback (default)- type: Sessionlocation: /Sessionshow attribute values: True- type: DiscoveryFeedlocation: /DiscoFeedwww.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.13

ula/blob/master/pillar.exampleMetakonfiguration: Lokale Metadaten DFN Metadatenmetadata providers:- type: XMLurl: .xmlmax refresh delay: 3600- type: XMLurl: -AAI-metadata.xmlmax refresh delay: 3600legacy org names: Truemetadata filters:- type: Signaturecertificate: -----BEGIN CERTIFICATE---- gekuerzt -----END CERTIFICATE-----www.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.14

rmula/blob/master/pillar.exampleSP Zertifikat und Key Können inline oder in extraDateien hinterlegt werden Getrennte Zertifikate fürEncryption und Signingmöglichshibboleth:sp:encryption certificate: &spcert -----BEGIN CERTIFICATE----.-----END CERTIFICATE----encryption key: &spkey -----BEGIN PRIVATE KEY----.-----END PRIVATE KEY----signing certificate: *spcertsigning key: *spkeywww.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.15

States: SP und /blob/master/pillar.exampleEigene States: SP und NTP werdenvollautomatisch durchFormel konfiguriert Apache hier durch eigeneStatesinclude:- shibboleth.repo- shibboleth.sp- ntphttpd config sp vhost:file.managed:- name: /etc/httpd/conf.d/{{ grains[id'] }}.conf- template: jinja- source: {{ t://etc/httpd/conf.d/sslvhost.conf') }}- user: root- group: rootwww.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.16

Zertifikate in der SchleifeJinja Templates: VariablenSchleifenIf-Then-ElseWWW-Technologie!{% set defaultDomain salt['grains.get']('id') %}{% set domain names salt['pillar.get']('ssl-certificates:domain names', [defaultDomain]) %}{% for domain in domain names %}/etc/pki/tls/certs/{{ domain }}-cert-nginx.pem:file.managed:- source: salt://etc/pki/tls/certs/{{ domain }}-cert-nginx.pem- user: root- group: root- mode: 644/etc/pki/tls/certs/{{ domain }}-cert.pem:file.managed:- source: salt://etc/pki/tls/certs/{{ domain }}-cert.pem/etc/pki/tls/certs/{{ domain }}-chain.pem:file.managed:- source: salt://etc/pki/tls/certs/{{ domain }}-chain.pem/etc/pki/tls/private/{{ domain }}-key.pem:file.managed:- source: salt://etc/pki/tls/private/{{ domain }}-key.pem{% endfor %}www.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.17

Maps: HTTPs, CiphersNoch mehr Apache: Redirect auf HTTPs,dynamisches vhost Template Sichere TLS Konfiguration Kompatible Ciphers (v.a.Java clients){% from "httpd/map.jinja" import httpd with context %}{{httpd.vhost conf}}:file.managed:- template: jinja- source: {{ 'salt://etc/httpd/conf.d/redirect-ssl-vhost.conf') }}- user: root- group: roothttpd config bettercrypto:file.managed:- name: {{httpd.bettercrypto conf}}- template: jinja- source: {{ alt://etc/httpd/conf.d/bettercrypto.ssl') }}- user: root- group: rootwww.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.18

States: Pitfalls und BackupKleinigkeiten:Turn this on to support "requirevalid-user" rules from othermod authn * modules, anduse "require shib-session" foranonymous session-basedauthorization in mod shib.{% from "httpd/map.jinja" import httpd with context %}shibd compat valid user on:file.replace:- name: {{httpd.shibd conf}}- pattern: ShibCompatValidUser Off- repl: ShibCompatValidUser Ondownload netbackup client:archive.extracted:- name: /opt/- source: https://syncandhsare.de/NetBackup 7.7.2 CLIENTS2.tar- unless: ls /opt/NetBackup 7.7.2 CLIENTS2install netbackup:cmd.run:- cwd: /opt/NetBackup 7.7.2 CLIENTS2/- name: /opt/NetBackup 7.7.2 CLIENTS2/install- user: root- unless:- ls /usr/openv/netbackup/bin/bpwww.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.19

est/ref/states/all/salt.states.file.htmlWartbare Konfiguration: Auf Basis von Markernwarden Inhalte in Dateiengepatcht {{vhb idp entity id}} wirddurch Test- bzw. Live IdPsersetztshibboleth sp patch always aggregation:file.blockreplace:- name: {{ shibboleth2 xml }}- marker start: ' !-- MARKER START -- '- marker end: ' !-- MARKER END -- '- content: AttributeResolver type "SimpleAggregation" attributeId "schacPersonalUniqueCode"format "urn:oid:1.3.6.1.4.1.25178.1.2.14" Entity {{vhb idp entity id}} /Entity EntityReference External-Links /EntityReference saml2:Attribute xmlns:saml2 "urn:oasis:names:tc:SAML:2.0:assertion"Name "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" NameFormat riendlyName "eduPersonEntitlement" / /AttributeResolver www.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.20

ZusammenfassungAbstrakter Vorgang jenseits der TechnikDokumentationEinfacher Prozess100%Intern: Salt States und PillarsExtern: Mit Salt erstellte DokuwikiInstanzen dokumentiert wartbar delegierbar Urlaub gesichert KommunikationÜbergabe, gemeinsamer Test, etc.Automatisiertes DeploymentPillars, States und TemplatesAnforderungHostnamen, Attributsets usw www.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.21

Ausblick: IdPhttps://github.com/irtnog/shibboleth-formulaIdP Deployment: Hoch komplexeKonfigurationen kann mannur mit hoch komplexenMetakonfigurationenbeschreiben In Teilen nutzbaridp:hostname: login.example.comentity id: https://login.example.com/idp/shibbolethscope: example.comcookie secure: yeskeystore password: 'longalphanumericpassword'sealer password: 'adifferentlongalphanumericpassword'## Deploy Shibboleth IdP using the same service account as the## desired Java servlet containeruser: tomcatgroup: tomcatpackages:- java-1.8.0-openjdk-devel- bash- tomcatwww.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.22

as/tomcat-formulaTomcat Deployment: Formel basierttomcat:# The Tomcat version can be overriddenver: 7security: 'no'java opts:- 'Didp.home /opt/shibboleth-idp‘ with haveged: truehaveged enabled: truecluster:simple: trueconnectors:ajp:port: 8009address: '127.0.0.1'protocol: 'AJP/1.3'maxPostSize: 100000maxThreads: 500 www.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.23

as/tomcat-formulaTomcat Deployment: IdP wird hier in Tomcat vhostbetrieben Lohnt sich schon für Stageund Live-Systeme sowie fürClustersites:idp.vhost:name: localhostappBase: ./webapps/idpalias: {{ grains['id'] }}host parameters:unpackWARs: "true"autoDeploy: "true"deployXML: "false"path: 'idp'docBase: '/opt/shibboleth-idp/war/idp.war'unpackWAR: "true"antiResourceLocking: "true"swallowOutput: "true"privileged: "true"autoDeploy: "true"debug: 0www.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.24

Ausblick: IdPECP für O365: O365 kann nur eine Domainpro IdP Entity ID Dynamisch erzeugte ECPendpoints für virtuelle IdPsnotwendig25{% if salt['pillar.get']('idp:ecp:enabled') True %}{% set ecp domain names salt['pillar.get']('idp:ecp:domain names') %}{% for domain in ecp domain names %}Alias /domains/{{ domain }}/ECP /idp/profile/SAML2/SOAP/ECP Location /domains/{{ domain }}/ECP AuthType BasicAuthName "Shibboleth Identity Provider - {{ domain }} ECP profile"AuthBasicProvider ldapAuthLDAPRemoteUserAttribute uidAuthLDAPURL "{{ AuthLDAPURL }}?mailRoutingAddress,uid?sub?(mailAccessDomain {{ domain }})"AuthLDAPBindDN "{{ AuthLDAPBindDN }}"AuthLDAPBindPassword "{{ AuthLDAPBindPassword }}"#Require all grantedrequire valid-userProxyPreserveHost OnRequestHeader set SHIB ECP REMOTE USER %{REMOTE USER}sProxyPass xyPassReverse ajp://localhost:8009/idp/profile/SAML2/SOAP/ECP /Location {% endfor %}www.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved.

26DokumentationBeratung und SupportWeitereInformationen: aster/pillar.example https://docs.saltstack.com/en/latest/topics/best practices.htmlhttps://saltstack.com/Frei verfügbar!www.ssystems.de 2017 ssystems Harald Strack. All Rights zungSaltStack

www.ssystems.de 2017 ssystems Harald Strack. All Rights Reserved. Referenzen 3 Nachhaltige D