• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
EZproxy a Shibboleth - Seminar v NTK 20.10.10
 

EZproxy a Shibboleth - Seminar v NTK 20.10.10

on

  • 1,306 views

 

Statistics

Views

Total Views
1,306
Views on SlideShare
1,306
Embed Views
0

Actions

Likes
0
Downloads
12
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    EZproxy a Shibboleth - Seminar v NTK 20.10.10 EZproxy a Shibboleth - Seminar v NTK 20.10.10 Presentation Transcript

    • Seminář "Shibboleth v praxi" NTK Praha, 20.10.2010 Konfigurace EZproxy pro prostředí Shibboleth Mgr. Petr Novák Univerzita Karlova, Ústav výpočetní techniky
    • Co se dozvíme
      • 1.Před implementací
        • a) certifikáty
        • b) konfigurace EZproxy - skupiny
      • 2.generování metadat
      • 3.registrace u eduID
      • 4.práce s přijatými afiliacemi - shibuser.txt
      • 5.bezpečné odhlášení – aktuální stav
    • Co je EZproxy
      • EZproxy je rewrite proxy server - middleware:
        • serverová aplikace, nevyžaduje instalaci žádného dodatečného SW na straně koncových uživatelů,
        • nevyžaduje žádné dodatečné porty ke standardním HTTP a HTTPS portům,
        • podporovány jsou všechny standardní webové prohlížeče na platformách Linux, Mac OS X i Windows,
        • vhodné a dostupné řešení počínaje menšími vědeckými knihovnami až po velké univerzity s detailní akviziční politikou,
        • transparetně integrovatelné do prostředí Shibboleth.
    • PROČ Shibboleth v EZproxy?
      • Základní výhody:
        • EZproxy zdroje může využívat více institucí zapojených v eduID
        • snadné předávání atributů a filtrování / řazení uživatelů do skupin
        • single-sign on s jinými zdroji využívajícími Shibboleth
      • Shibboleth řeší „pouze“ autentizaci a autorizaci, nikoli technický přístup k vlastním zdrojům (= komunikace klient – proxy - zdroj)!
    • Popisované nastavení EZproxy je univerzální a informace lze využít pro nastavení jiného service provideru
      • Terminologie:
        • service provider (SP) = poskytovatel služeb – zde EZproxy
        • identity provider (IdP) = poskytovatel identity – typicky serverová aplikace založená na Apachi a Tomcatu, napsaná v javě a využívající údaje o uživatelích uložených v LDAP
    • Historie Shibbolethu v EZproxy
      • 2004
        • verze 3.0e – betaverze podporující Shibboleth Service Provider
        • 3.0f – podpora Identity Provideru verze 1.1
      • 2005
        • verze 3.4a oficiálně podporuje Shibboleth autentizaci
      • 2006
        • 4.0f - podpora metadat formátu 1.2 a 1.3
      • 2008
        • 5.1a – podpora pro verze IdP 1.3/2.0
        • implementace EZproxy UK do české testovací federace czTestFed
      • 2010
        • 5.3 – podpora IdP verze 2.1
        • EZproxy UK součástí federace eduID
    • Před implementací
      • V EZproxy je nutno nakonfigurovat X.509 certifikát pro podepisování a šifrování komunikace s IdP
      • Parametry (osvědčené):
        • délka klíče 2048 bitů
        • CN=login.hostname.domain.tld
        • Organizace=jméno organizace
      • Pro vygenerování (certifikátu i žádosti) je možno použít vestavěný generátor certifikátů EZproxy dostupný z webového admin rozhraní nebo nástroj openssl, doporučuje se použít certifikát CA TERENA (více viz služby CA CESNET)
      • pozor – certifikát neslouží pro autentizaci meziserverového SSL spojení (EZproxy ↔ informační zdroj) – pro tento účel má být (ale nemusí) jiný certifikát, vystavený na CN=*.hostname.domain.tld
    •  
    • <md:EntityDescriptor xmlns:md=&quot;urn:oasis:names:tc:SAML:2.0:metadata&quot;> <md:SPSSODescriptor protocolSupportEnumeration=&quot;urn:oasis:names:tc:SAML:2.0:protocol http://schemas.xmlsoap.org/ws/2003/07/secext&quot;> <md:Extensions> <idpdisc:DiscoveryResponse Binding=&quot;urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol&quot; Location=&quot;urn:oasis:names:tc:SAML:2.0:protocol http://schemas.xmlsoap.org/ws/2003/07/secext&quot; index=&quot;1&quot; xmlns:idpdisc=&quot;urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol&quot;/> </md:Extensions> <md:KeyDescriptor> <ds:KeyInfo xmlns:ds=&quot;http://www.w3.org/2000/09/xmldsig#&quot;> <ds:X509Data> <ds:X509Certificate>MIIEhDCCA2ygAwIBAgIQA+Tm7A+sXd+JKGnXJsvwLTANBgkqhkiG9w0BAQUFADA2 MQswCQYDVQQGEwJOTDEPMA0GA1UEChMGVEVSRU5BMRYwFAYDVQQDEw1URVJFTkEg U1NMIENBMB4XDTA5MTIyMjAwMDAwMFoXDTEyMTIyMTIzNTk1OVowVzELMAkGA1UE BhMCQ1oxJTAjBgNVBAoTHENoYXJsZXMgVW5pdmVyc2l0eSBpbiBQcmFndWUxITAf BgNVBAMTGGxvZ2luLmV6cHJveHkuaXMuY3VuaS5jejCCASIwDQYJKoZIhvcNAQEB BQADggEPADCCAQoCggEBAKXw1e19JpiQeBt6S0NPMFiebt2XveiVoNPkJgfMdKbM rD91zJxuLm7kxAUIp24iYlv5B/5avGUaIXNgfXXuL2uB7O74gom2fUQuZMIXbK+r MTP0u/iXDVOdmDKfP2sxZcgDjBUwabVh0QxNERdj4AF8j/p9MyR2ifFs5ZA9Aybn AceRs3iXutc0/qxdfEIPUKqxXh8DX5hfvpzLq1z/pqjZaDJ1kD9SroxRJkTt3MOW Fv0TCu66dDpOmN5pNnpxtF5ELQHIO4nStgoktQoCi6xZ4Cw+eshyBdy/rzCuySDY SrTBAG7UUUrQvfNNGr9MmEDdb8OxuQ4ojp5lMv5Z1CUCAwEAAaOCAWswggFnMB8G A1UdIwQYMBaAFAy9k2gM896ro0lrKzdXR+qQ47ntMB0GA1UdDgQWBBQaQRwoYI9v J01LmNiWQuBEAgQ9MTAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNV HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGAYDVR0gBBEwDzANBgsrBgEEAbIx AQICHTA6BgNVHR8EMzAxMC+gLaArhilodHRwOi8vY3JsLnRjcy50ZXJlbmEub3Jn L1RFUkVOQVNTTENBLmNybDBtBggrBgEFBQcBAQRhMF8wNQYIKwYBBQUHMAKGKWh0 dHA6Ly9jcnQudGNzLnRlcmVuYS5vcmcvVEVSRU5BU1NMQ0EuY3J0MCYGCCsGAQUF BzABhhpodHRwOi8vb2NzcC50Y3MudGVyZW5hLm9yZzAjBgNVHREEHDAaghhsb2dp bi5lenByb3h5LmlzLmN1bmkuY3owDQYJKoZIhvcNAQEFBQADggEBAJnUSqvJjiny IYRggUFQP+o46sf8wf3WM7xDOncBwuS5y+RSiCvRfftIYrf9R7WnXEcnpIPmugrj vgwoPyqQhcOu/alnp69ogjkS1b1mKKSKyUkhLIUsFsw+9Sh8iLEqboeWJVDhD3v3 OBAPbfWNZCXcTcXoIxk9PsiP0fGFO6EVw3tV9vGBTBYfUApiRDKOvO3xLPkSsmJh Lyj3jXth52Fp/1wHmZ5q4pR4gw83C1fla3q5ylMvksmlr4tLaCR0NX5fZzD2fCnG gbjp6yF2aheE4G+/ouASbZy6fijs58IAHczfB36XXBe7zcUS8VnW4y88WsDCH+Jv 2Dyuki1c8zY= </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </md:KeyDescriptor> <md:AssertionConsumerService Binding=&quot;urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST&quot; Location=&quot;https://login.ezproxy.is.cuni.cz/Shibboleth.sso/SAML2/POST&quot; index=&quot;1&quot; isDefault=&quot;true&quot;/> <md:AssertionConsumerService Binding=&quot;urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact&quot; Location=&quot;https://login.ezproxy.is.cuni.cz/Shibboleth.sso/SAML2/Artifact&quot; index=&quot;2&quot;/> </md:SPSSODescriptor> </md:EntityDescriptor>
    • Metadata 1.
      • Předchozí slide ukazuje polotovar metadat generovaný EZproxy (XML formát)
      • první tag je tzv. EntityDescriptor – musíte do něj ručně doplnit entityID jako je v tomto příkladu: <md:EntityDescriptor xmlns:md=&quot;urn:oasis:names:tc:SAML:2.0:metadata&quot; entityID=&quot; https://login.ezproxy.is.cuni.cz/sp/shibboleth &quot;>
      • entityID si zvolíte – konzultujte s osobou, která provozuje IdP server ve vaší instituci – doporučuji využít příkladu
      • Hodnota entityId pro komponentu federace (identity nebo service provider) je ve tvaru URL, kde hostname část URL odpovídá hostname serveru, na kterém je komponenta umístěna. Je doporučitelné, aby URL odkazovalo na metadata komponenty. (eduID.cz)
    • Manage Shibboleth – webové rozhraní EZproxy
      • URL sdělíte administrátorovi – případně sami doplníte do metadat
      • jednoduše řečeno adresa, na které přijímá EZproxy data od IdP
      • Assertion Consumer Service URL https://login.ezproxy.is.cuni.cz/Shibboleth.sso/ SAML2/POST
    • Metadata 2. - jak vypadá metadatový soubor
      • komponenty:
        • EntityDescriptor
        • DiscoveryResponse Location – umístění pro eduID jehttps://www.eduid.cz/Shibboleth.sso/DS
        • certifikát pro podepisování
        • certifikát pro šifrování (oba vystavené pro login.ezproxy.is.cuni.cz)
        • URL pro předávání atributů
    • Metadata 3. - údaje o kontaktní osobě a organizaci
      • podívejte se na metadata sami:
      • http://www.eduid.cz/docs/eduid/metadata/eduid-metadata.xml
    • Metadatový soubor v XML...
      • Příslušný administrativní nebo technický kontakt pošle metadata v příloze emailu na adresu eduid-admin@eduid.cz.
      • Email musí být podepsán osobním digitálním certifikátem od CESNET CA.
      • Detailní popis procesu předání metadat operátorovi federace je k dispozici na URL
      • http://www.eduid.cz/wiki/eduid/admins/metadata/index
    • Provoz mimo federaci
      • Pro testovací účely není nutné zapojit EZproxy do federace
      • Metadatový soubor v tomto případě umístíme do adresáře s binárním souborem ezproxy (ezproxy.exe – Windows nebo ezproxy s atributem pro spouštění – Linux)
      • Součástí tohoto metadatového souboru musí být metadata příslušného Identity Provideru!
    • Nastavení Shibbolethu v EZproxy
      • editujte config.txt (ezproxy.cfg – v pre 5.x verzích)
      • formát konfigurace:
      • ShibbolethMetadata
      • -EntityID=EZproxyEntityID
      • -File=MetadataFile
      • -Cert=EZproxyCertNumber
      • -URL=MetadataURL
    • Příklad EZproxy UK
      • ShibbolethMetadata -EntityID= https://login.ezproxy.is.cuni.cz/sp/shibboleth -File= MetadataFile -Cert= 11 -URL= http://www.eduid.cz/docs/eduid/metadata/eduid-metadata.xml
    • Nastavení Shibbolethu jako autentizačního způsobu v EZproxy
      • soubor user.txt udržuje informace o lokálních uživatelích EZproxy +
      • definuje další autentizační mechanismy – LDAP, Active Directory, Windows doména a...
      • Shibboleth:
        • ::Shibboleth
        • If login:auth eq &quot;shibboleth&quot;; IDP20 https://cas.cuni.cz/idp/shibboleth
        • /Shibboleth
      • Popsaná konfigurace nedává možnost výběru IdP – pokud toto požadujeme, musíme upravit – doplnit URL Directory Service:
        • ::Shibboleth
        • If login:auth eq &quot;shibboleth&quot;; DS20 https://www.eduid.cz/wayf/
        • /Shibboleth
    • Úprava přihlašovací stránky EZproxy
      • <a href=&quot;/login?auth=shibboleth&url=^U&quot;>Přihlaste k EZproxy se pomocí Shibboleth </a>
      • Na příslušný link stačí kliknout – podle nastavení user.txt se
        • zobrazí přímo přihlášení k žádanému IdP
        • zobrazí se služba výběru IdP (WAYF / DS služba)
      • linkování na zdroj – odkaz si generuje EZproxy, příklad = Springerlink:
        • https://login.ezproxy.is.cuni.cz/login?auth=shibboleth&url=http://ebooks.springerlink.com
    • Skupiny v EZproxy
      • používá se pro definování přístupu dle skupin, typicky: fakulty, základní součásti, pracoviště – s rozdílným portfoliem předplacených zdrojů
      • definice příkazem Group FACULTY1
      • lze kombinovat Group FACULTY1+FACULTY2...
      • na skupiny lze namapovat afiliace předané prostřednictvím shibbolethu
      • u EZproxy k tomu slouží pravidla definovaná v souboru shibuser.txt
    • Předávaný obsah - ukázka
      • eduPersonTargetedID – jednoznačný identifikátor uživatele bez významu – z bezp.důvodů se nepředává číslo studenta ani RČ apod.
      • eduPersonAffiliation – základní skupiny
      • eduPersonEntitlement – vazba na studijní programy UK
      • eduPersonOrgUnitDN – fakulty
      • co je to eduPerson? objektová třída popisující význam předávaných atributů
      • viz http://www.eduid.cz/wiki/eduid/admins/specs/eduperson/index
    • Afiliace – co se získává od IdP
    • eduPersonAffiliation
    • eduPersonEntitlement
    • Obsah shibuser.txt
      • MsgAuth – ukládá autentizační hlášky do messages.txt, po odladění možno vypnout
      • Set login:loguser=auth:eduPersonTargetedID stanoví, že EZproxy definuje předané eduPersonTargetedID jako přihlašovací jméno
      • dále: otestujeme, zda uživatel přichází od požadovaného IdP, zahodíme ostatní
      • vynulujeme skupiny
      • otestujeme základní skupiny uživatelů (staff, student)
    • Shibuser.txt - pokračování
      • pokud nejsou přidělené skupiny uživatelů, zamítneme přístup (ten je možný jen pro studenty a akademické zaměstnance)
      • zakážeme přístup absolventům či externím uživatelům
      • definujeme skupinu CUNI všem, kdo prošli až sem
      • definujeme přístup pro studenty / zaměstnance jednotlivých fakult a základních součástí
        • dle číselníků kateder, studijních programů, oborů a dalších atributů
      • přístup lze definovat až na úroveň jedince
    • Závěr
      • EZproxy prozatím nepodporuje Single Log Out funkci
      • Single Log Out
        • jejím cílem je skutečně nejen vymazání cookies na straně prohlížeče (uživatel docílí uzavřením prohlížeče)
        • vymaže session na IdP serveru – není možné následné přihlášení k jinému zdroji
      • Dotazy?
        • Díky za pozornost!
        • [email_address]