Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

EZproxy a Shibboleth - Seminar v NTK 20.10.10

1,453 views

Published on

Published in: Education, Technology, Design
  • Be the first to comment

  • Be the first to like this

EZproxy a Shibboleth - Seminar v NTK 20.10.10

  1. 1. 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
  2. 2. Co se dozvíme <ul><li>1.Před implementací </li><ul><li>a) certifikáty
  3. 3. b) konfigurace EZproxy - skupiny </li></ul><li>2.generování metadat
  4. 4. 3.registrace u eduID
  5. 5. 4.práce s přijatými afiliacemi - shibuser.txt
  6. 6. 5.bezpečné odhlášení – aktuální stav </li></ul>
  7. 7. Co je EZproxy <ul><li>EZproxy je rewrite proxy server - middleware: </li><ul><li>serverová aplikace, nevyžaduje instalaci žádného dodatečného SW na straně koncových uživatelů,
  8. 8. nevyžaduje žádné dodatečné porty ke standardním HTTP a HTTPS portům,
  9. 9. podporovány jsou všechny standardní webové prohlížeče na platformách Linux, Mac OS X i Windows,
  10. 10. vhodné a dostupné řešení počínaje menšími vědeckými knihovnami až po velké univerzity s detailní akviziční politikou,
  11. 11. transparetně integrovatelné do prostředí Shibboleth. </li></ul></ul>
  12. 12. PROČ Shibboleth v EZproxy? <ul><li>Základní výhody: </li><ul><li>EZproxy zdroje může využívat více institucí zapojených v eduID
  13. 13. snadné předávání atributů a filtrování / řazení uživatelů do skupin
  14. 14. single-sign on s jinými zdroji využívajícími Shibboleth </li></ul><li>Shibboleth řeší „pouze“ autentizaci a autorizaci, nikoli technický přístup k vlastním zdrojům (= komunikace klient – proxy - zdroj)! </li></ul>
  15. 15. Popisované nastavení EZproxy je univerzální a informace lze využít pro nastavení jiného service provideru <ul><li>Terminologie: </li><ul><li>service provider (SP) = poskytovatel služeb – zde EZproxy
  16. 16. 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 </li></ul></ul>
  17. 17. Historie Shibbolethu v EZproxy <ul><li>2004 </li><ul><li>verze 3.0e – betaverze podporující Shibboleth Service Provider
  18. 18. 3.0f – podpora Identity Provideru verze 1.1 </li></ul><li>2005 </li><ul><li>verze 3.4a oficiálně podporuje Shibboleth autentizaci </li></ul><li>2006 </li><ul><li>4.0f - podpora metadat formátu 1.2 a 1.3 </li></ul><li>2008 </li><ul><li>5.1a – podpora pro verze IdP 1.3/2.0
  19. 19. implementace EZproxy UK do české testovací federace czTestFed </li></ul><li>2010 </li><ul><li>5.3 – podpora IdP verze 2.1
  20. 20. EZproxy UK součástí federace eduID </li></ul></ul>
  21. 21. Před implementací <ul><li>V EZproxy je nutno nakonfigurovat X.509 certifikát pro podepisování a šifrování komunikace s IdP
  22. 22. Parametry (osvědčené): </li><ul><li>délka klíče 2048 bitů
  23. 23. CN=login.hostname.domain.tld
  24. 24. Organizace=jméno organizace </li></ul><li>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)
  25. 25. 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 </li></ul>
  26. 27. <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>
  27. 28. Metadata 1. <ul><li>Předchozí slide ukazuje polotovar metadat generovaný EZproxy (XML formát)
  28. 29. 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;>
  29. 30. entityID si zvolíte – konzultujte s osobou, která provozuje IdP server ve vaší instituci – doporučuji využít příkladu
  30. 31. 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) </li></ul>
  31. 32. Manage Shibboleth – webové rozhraní EZproxy <ul><li>URL sdělíte administrátorovi – případně sami doplníte do metadat
  32. 33. jednoduše řečeno adresa, na které přijímá EZproxy data od IdP
  33. 34. Assertion Consumer Service URL https://login.ezproxy.is.cuni.cz/Shibboleth.sso/ SAML2/POST </li></ul>
  34. 35. Metadata 2. - jak vypadá metadatový soubor <ul><li>komponenty: </li><ul><li>EntityDescriptor
  35. 36. DiscoveryResponse Location – umístění pro eduID jehttps://www.eduid.cz/Shibboleth.sso/DS
  36. 37. certifikát pro podepisování
  37. 38. certifikát pro šifrování (oba vystavené pro login.ezproxy.is.cuni.cz)
  38. 39. URL pro předávání atributů </li></ul></ul>
  39. 40. Metadata 3. - údaje o kontaktní osobě a organizaci <ul><li>podívejte se na metadata sami:
  40. 41. http://www.eduid.cz/docs/eduid/metadata/eduid-metadata.xml </li></ul>
  41. 42. Metadatový soubor v XML... <ul><li>Příslušný administrativní nebo technický kontakt pošle metadata v příloze emailu na adresu eduid-admin@eduid.cz.
  42. 43. Email musí být podepsán osobním digitálním certifikátem od CESNET CA.
  43. 44. Detailní popis procesu předání metadat operátorovi federace je k dispozici na URL
  44. 45. http://www.eduid.cz/wiki/eduid/admins/metadata/index </li></ul>
  45. 46. Provoz mimo federaci <ul><li>Pro testovací účely není nutné zapojit EZproxy do federace
  46. 47. 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)
  47. 48. Součástí tohoto metadatového souboru musí být metadata příslušného Identity Provideru! </li></ul>
  48. 49. Nastavení Shibbolethu v EZproxy <ul><li>editujte config.txt (ezproxy.cfg – v pre 5.x verzích)
  49. 50. formát konfigurace:
  50. 51. ShibbolethMetadata
  51. 52. -EntityID=EZproxyEntityID
  52. 53. -File=MetadataFile
  53. 54. -Cert=EZproxyCertNumber
  54. 55. -URL=MetadataURL </li></ul>
  55. 56. Příklad EZproxy UK <ul><li>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 </li></ul>
  56. 57. Nastavení Shibbolethu jako autentizačního způsobu v EZproxy <ul><li>soubor user.txt udržuje informace o lokálních uživatelích EZproxy +
  57. 58. definuje další autentizační mechanismy – LDAP, Active Directory, Windows doména a...
  58. 59. Shibboleth: </li><ul><li>::Shibboleth
  59. 60. If login:auth eq &quot;shibboleth&quot;; IDP20 https://cas.cuni.cz/idp/shibboleth
  60. 61. /Shibboleth </li></ul><li>Popsaná konfigurace nedává možnost výběru IdP – pokud toto požadujeme, musíme upravit – doplnit URL Directory Service: </li><ul><li>::Shibboleth
  61. 62. If login:auth eq &quot;shibboleth&quot;; DS20 https://www.eduid.cz/wayf/
  62. 63. /Shibboleth </li></ul></ul>
  63. 64. Úprava přihlašovací stránky EZproxy <ul><li><a href=&quot;/login?auth=shibboleth&url=^U&quot;>Přihlaste k EZproxy se pomocí Shibboleth </a>
  64. 65. Na příslušný link stačí kliknout – podle nastavení user.txt se </li><ul><li>zobrazí přímo přihlášení k žádanému IdP
  65. 66. zobrazí se služba výběru IdP (WAYF / DS služba) </li></ul><li>linkování na zdroj – odkaz si generuje EZproxy, příklad = Springerlink: </li><ul><li>https://login.ezproxy.is.cuni.cz/login?auth=shibboleth&url=http://ebooks.springerlink.com </li></ul></ul>
  66. 67. Skupiny v EZproxy <ul><li>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ů
  67. 68. definice příkazem Group FACULTY1
  68. 69. lze kombinovat Group FACULTY1+FACULTY2...
  69. 70. na skupiny lze namapovat afiliace předané prostřednictvím shibbolethu
  70. 71. u EZproxy k tomu slouží pravidla definovaná v souboru shibuser.txt </li></ul>
  71. 72. Předávaný obsah - ukázka <ul><li>eduPersonTargetedID – jednoznačný identifikátor uživatele bez významu – z bezp.důvodů se nepředává číslo studenta ani RČ apod.
  72. 73. eduPersonAffiliation – základní skupiny
  73. 74. eduPersonEntitlement – vazba na studijní programy UK
  74. 75. eduPersonOrgUnitDN – fakulty
  75. 76. co je to eduPerson? objektová třída popisující význam předávaných atributů
  76. 77. viz http://www.eduid.cz/wiki/eduid/admins/specs/eduperson/index </li></ul>
  77. 78. Afiliace – co se získává od IdP
  78. 79. eduPersonAffiliation
  79. 80. eduPersonEntitlement
  80. 81. Obsah shibuser.txt <ul><li>MsgAuth – ukládá autentizační hlášky do messages.txt, po odladění možno vypnout
  81. 82. Set login:loguser=auth:eduPersonTargetedID stanoví, že EZproxy definuje předané eduPersonTargetedID jako přihlašovací jméno
  82. 83. dále: otestujeme, zda uživatel přichází od požadovaného IdP, zahodíme ostatní
  83. 84. vynulujeme skupiny
  84. 85. otestujeme základní skupiny uživatelů (staff, student) </li></ul>
  85. 86. Shibuser.txt - pokračování <ul><li>pokud nejsou přidělené skupiny uživatelů, zamítneme přístup (ten je možný jen pro studenty a akademické zaměstnance)
  86. 87. zakážeme přístup absolventům či externím uživatelům
  87. 88. definujeme skupinu CUNI všem, kdo prošli až sem
  88. 89. definujeme přístup pro studenty / zaměstnance jednotlivých fakult a základních součástí </li><ul><li>dle číselníků kateder, studijních programů, oborů a dalších atributů </li></ul><li>přístup lze definovat až na úroveň jedince </li></ul>
  89. 90. Závěr <ul><li>EZproxy prozatím nepodporuje Single Log Out funkci
  90. 91. Single Log Out </li><ul><li>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)
  91. 92. vymaže session na IdP serveru – není možné následné přihlášení k jinému zdroji </li></ul></ul>
  92. 93. <ul><li>Dotazy? </li><ul><li>Díky za pozornost!
  93. 94. [email_address] </li></ul></ul>

×