====== Integrace se službami Google ======
**Budete-li postupovat podle tohoto návodu, měli byste velice dobře rozumět tomu, co přesně ve kterém kroku děláte a jaké to má následky. __Musíte totiž vypnout šifrování XML assertion.__**
**Chápete-li, co to z bezpečnostního hlediska znamená a jste-li ochotni tuto skutečnost akceptovat, můžete se pustit do nastavování. V opačném případě si prostudujte dokumentaci projektu Shibboleth, abyste mohli zhodnotit, zda takovou konfiguraci akceptujete či nikoliv.**
**Toto nastavení nijak nesouvisí se službami české akademické federace identit eduID.cz. Nastavení zde uvedené je udržováno členy federace.**
**Sdružení CESNET jakožto operátor a provozovatel federace eduID.cz za toto nastavení nenese žádnou zodpovědnost.**
Vše na co jste se báli zeptat, a co musíte udělat, předtím než se pustíte do nastavování SSO s pomocí Shibbolethu. A to v jednom souboru :-)
G Suite for Education: Deployment Guide [[https://docs.google.com/document/d/1ixVHcT85nhaU8yYUzi4SEaEMocqkRSSC_Y5GpUtUCVI/edit]]
===== Shibboleth IdP3 =====
==== Metadata ====
# Úpravy konfiguračního souboru metadata-providers.xml
vim /opt/shibboleth-idp/conf/metadata-providers.xml
# Vytvoření konfiguračního souboru google-metadata.xml
vim /opt/shibboleth-idp/metadata/google-metadata.xml
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
==== relying-party.xml ====
# Úpravy konfiguračního souboru relying-party.xml
vim /opt/shibboleth-idp/conf/relying-party.xml
Celý soubor ''relying-party.xml'' je k náhlédnutí [[cs:tech:idp:shibboleth:google:relying-party.xml|zde]]
==== attribute-resolver.xml ====
Definice atributu - v našem případě jsme zvolili id //Gprincipal// (simple attribute definition) bez použití **attribute encoder** - dle vzoru z [[http://shibboleth.1660669.n2.nabble.com/Google-Apps-with-IdPv3-td7612963.html]].
Nezapomeňte nastavit sourceAttributeID podle vašich potřeb!
# Úpravy konfiguračního souboru attribute-resolver.xml
vim /opt/shibboleth-idp/conf/attribute-resolver.xml
==== saml-nameid.xml ====
Úpravy souboru ''saml-nameid.xml'' resp. vložení bean do SAML 2 NameID Generation
# Úpravy konfiguračního souboru saml-nameid.xml
vim /opt/shibboleth-idp/conf/saml-nameid.xml
Celý soubor ''saml-nameid.xml'' je k náhlédnutí [[cs:tech:idp:shibboleth:google:saml-nameid.xml|zde]]
==== attribute-filter.xml ====
Je třeba posílat pouze Gprincipal, proto je nutné všechny ostatní atributy odfiltrovat, zde najdete pouze návrh jak to lze udělat. (Toto platí pouze za předpokladu, že posíláte vybrané atributy všem). Pokud budete posílat více atributů než Gprincipal, nepůjde se přihlásit!
# Úpravy konfiguračního souboru attribute-filter.xml
vim /opt/shibboleth-idp/conf/attribute-filter.xml
==== idp.properties ====
Tady opravdu nevím - doporučení dle [[https://community.servicenow.com/thread/232967]] je použít hodnotu //true//, tuto jsem nastavil a přihlašování začalo fungovat, nicméně jsem řádek opět zakomentoval a vše dále bez problémů (i přes restart serveru) funguje.
# Úpravy konfiguračního souboru idp.properties
vim /opt/shibboleth-idp/conf/idp.properties
### -B- 20170318 kvuli GoogleApps
# ref: https://community.servicenow.com/thread/232967
# idp.encryption.optional = true
===== GoogleSync =====
* LDAP Configuration → Authorized User musí obsahovat kompletní **dn** účtu
* pri importu neumí sám vytvořit OrgUnit
* OrgUnit „example.cz“ odpovídá '/' → pravidlo '/IMPORT' umístí uživatele to example.cz → IMPORT
* '/' funguje jako oddelovac → pravidlo '/IMPORT/X' umístí uživatele do example.cz → IMPORT → X
* pravidla pro ignorování účtů na straně GC při synchronizaci: Google Domain Configuration → Exclusion rules
* pokus o import uživatele, který existuje a přitom je vyloučen některým z pravidel skončí chybou.
Pokud používate vlastní CA, nebo CA která není v KeyStore (pozor GoogleSync používá vlastní!) najdete řešením na těchto stránkách [[https://support.google.com/a/answer/3075991?hl=en]]
===== Možné problémy a řešení =====
* Pro ladění a informace toho co se skutečně Googlu posílá doporučuji plugin do Firefoxu **SAML tracer** [[https://github.com/UNINETT/SAML-tracer/]]
* Implicitně jsme měli povoleno pouze 2000 účtů, bylo třeba kontaktovat Google pomocí Admin -> Support a počet účtů nám byl bez problému okamžitě navýšen.
* Vyskytl se problém s Classroom. Zakládat třídy bylo povoleno pouze pedagogům, ti se musí přidat do skupiny teachers@tul.cz (která byla založena automaticky při povolení služby). Bohužel ne vždy to fungovalo. Po zakázání a znovou povolení služby Classroom, se vytvořila odlišná skupina ucitele_ucebny@tul.cz. I zde nešli přidávat uživatelé. Problém byl způsoben tím, že Groups for Business (Apps -> G Suite) bylo povoleno pouze pro část organizace!
* Pokud není povolen Gmail, je také třeba zakázal Hangout
* Problémem je odhlášení, G Suite nepodporuje globální odhlášení od IdP. Je třeba otestovat!