Project

General

Profile

AC Login - instalace a konfigurace

Požadavky

  • Shibboleth Service Provider 2.x (site)
  • Apache web server s podporou SSL a PHP
  • AC API - knihovna pro přístup k API Adobe Connect (zdrojáky)
  • AC Login (zdrojáky)

Instalace potřebných PHP knihoven

Zend Framework

Stáhněte si poslední verzi a rozbalte ji na cílovém systému v adresáři dle vlastního uvážení. A to je všechno.

AC API

Tato knihovna implementuje komunikaci s Adobe Connect serverem. Stáhněte si aktuální verzi do adresáře dle vlastního uvážení, například /var/lib/php/.

git clone https://homeproj.cesnet.cz/git/acapi.git

Instalace a konfigurace aplikace

Stáhněte si poslední verzi a rozbalte ji někde na svém systému. Na adresář s aplikaci se budeme odkazovat dale jako ACLOGIN_HOME.

git clone https://homeproj.cesnet.cz/git/aclogin.git

Konfigurace Apache

V Apache je potřeba nastavit přístup k adresáři ACLOGIN_HOME/www:

Alias /aclogin ACLOGIN_HOME/www

Dále je potřeba zařídit, aby tenti adresář byl chráněn Shibbolethem:

<Directory ACLOGIN_HOME/www>
  AuthType shibboleth   
  ShibRequireSession On
  require valid-user
</Directory>

Konfigurace Shibbolethu

Je potřeba nastavit (pokud tomu tak není) mapovaní pro atributy (attribute-map.xml), obsahující informace u uživateli, konkrétně:

  • UID (uživatelské jméno nebo jiný druh identifikátoru) - obvykle je to některý z atributů eduPersonPrincipalName, eduPersonTargetedId aj.
  • email - obvykle je to atribut mail
  • jméno - obvykle je to atribut givenName
  • příjmení - obvykle je to atribut sn

Ještě poznámka k UID - v konfiguračním souboru shibboleth2.xml je v elementu ApplicationDefaults nastaven atribut REMOTE_USER, obvykle takto:

    <ApplicationDefaults id="default" policyId="default" 
        entityID="https://sp.example.org/shibboleth" 
        homeURL="https://sp.example.org/index.html" 
        REMOTE_USER="eppn persistent-id targeted-id" 
        signing="false" encryption="false">

Hodnota atributu REMOTE_USER je sestavena z názvů několika atributů oddělených mezerou. Znamená to, že pro nastavení proměnné prostředí REMOTE_USER budou použity tyto atributy a to tak, že se vezme první nastavená hodnota, tj. pokud neni nastaven atribut eppn, použije se atribut persistent-id atd.

Konfigurace Adobe Connect

Aplikace se připojuje k Adobe Connect serveru pomocí vzdáleného API a provádí operace, které vyžadují administrátorská práva (vytváření uživatelů, řazení uživatelů do skupin apod.). Proto je potřeba v systému Adobe Connect založit systémového uživatele s administrátorskými právy.

(!) V konfiguraci Adobe Connect je potřeba zrušit nastavení, že jako uživatelské jméno se používá email uživatele. Nastavení najdete v sekci Administration --> Users and Groups --> Edit Login and Password Policies.

Konfigurace aplikace

V souboru ACLOGIN_HOME/init.php se inicializují externí knihovny. Ujistěte se, že máte správně nastavené cesty k nim:

// The Zend framework directory
define('ZEND_FW_DIR', '/var/lib/php/zend/');

// The directory, where the AC PHP API is installed
define('ACAPI_LIB_DIR', '/var/lib/php/acapi/');

Konfigurace je uložena v konfiguračním souboru ACLOGIN_HOME/config/aclogin.ini. Jde o klasický INI soubor, obsahující sekce a páry "klíč = hodnota". Komentáře začínají středníkem. Každá položka je patříčně okomentovaná. Důležitější položky jsou popsány níže:

[general]

  • admin_emai* - email administrátora aplikace
  • entity_id - hodnota entityId daného service providera

[account]

  • default_group - pokud je nastaveno, nové uživatele budou automaticky zařazeni do této skupiny. Skupina musí existovat na Adobe Connect serveru.
  • password_salt - náhodný řetězec pro generování hesel uživatelů
  • redirect_uri - URL, kam přesměrovat uživatele po úspěšné autentizace (URL, na kterém je dostupný Adobe Connect)

[shibboleth]

  • uid_field nebo remote_user_field - aplikace zjišťuje informace o uživateli z proměnných prostředí, které nastavuje Shibboleth. Uživatelské jméno je možné získat dvěma způsoby:
    1. přímo z proměnné beze změn - je potřeba do uid_field nastavit jméno proměnné, jejiž hodnota beze změn pak bude použita jako uživatelské jméno
    2. vzhledem k tomu, že ve federovaném prostředí se vyskytují uživatelská jména a identifikátory v odlišných formátech, je možné generovat jakýsi "normalizovaný" tvar pro použití v Adobe Connect. Do remote_user_field je potřeba nastavit název proměnné, která bude použita jako základ pro tento normalizovaný tvar, obvykle je to REMOTE_USER a její hodnotu lze dodatečně ovlivnit v konfiguraci Shibboleth (( V shibboleth2.xml, v elementu ApplicationDefaults.)). Pokud si nejste jisti, použijte výchozí nastavení (remote_user_field = REMOTE_USER) a hodnotu uid_field ponechte prázdnou.
  • mail_field, givenName_field, sn_field - názvý proměnných, které obsahují údaje o resp. emailu, jména a příjmení (obvykle odpovídají atributům mail, givenName a sn)

[acapi]

  • uri - URL, na kterém je k dispozici Adobe Connect remote XML API, obvykle je to https://ac.server.cz/api/xml
  • username, password - přihlašovací údaje systémového účtu na serveru Adobe Connect

Instance

Z jedné instalace AC Login je možné obsluhovat více instancí Adobe Connect. Každá instance je pojmenovaná a má vlastní konfigurační soubor, který je svou strukturou i obsahem identický se standardním konfiguračním souborem. Mapování jména instance na konkrétní konfigurační soubor je uloženo v config/instances.php (po instalaci je potřeba ho vytvořit z přiloženého instances.php.dist).

Konkrétní instance je v procesu přihlášení vyvolaná pomocí GET parametru instance, například AC Login zavolaný pomocí následujícího URL použije konfiguraci pro instanci "connect":

https://example.com/aclogin/?instance=connect

Testování instalace

Přihlášení vyzkoušíme zadáním URL https://HOSTNAME/aclogin/ (HOSTNAME je adresa serveru, na kterém jsme instalovali přihlašovací aplikaci) do prohlížeče. Pokud je vše v pořádku, proběhne běžný process federativního přihlášení (přesměrování na WAYF a poté autentizace u domovského IdP). Poté budemě přesměrováni do samotné aplikace.

Další úpravy

Po zavedení federovaného přihlášení je vhodné z přihlašovací stránky ostranit přihlašovací formulář a nahradit ho odkazem nebo tlačítkem, které přesměruje uživatele k Adobe Connect Login aplikaci (https://HOSTNAME/aclogin/). Uživatelské rozhraní Adobe Connect je realizováno pomocí XSL souborů. Konkrétně přihlašovací formulář lze najit v souboru BREEZE_HOME\appserv\apps\system\login.xsl.