Postup instalace Workplace Services Express 2.0

Zde je postup, jak nainstalovat WSE 2.0, připojit jej na LDAP Domina a zprovoznit single sign-on. Je to postup, jak instaluji Workplace já, poskládaný z různých zdrojů a vyzkoušený. Můžete jej použít jako inspiraci při vlastních pokusech s WSE. Pokud jste WSE ješttě neinstalovali, doporučuji si to určite zkusit nanečisto na nějakém testovacím stroji. Během června by měla vyjít nová verze WSE 2.5, u které by měla být konfigurace jednodušší.
Upozornění: tento text budu ještě nějakou dobu doplňovat o screenshoty, možná přidám i nějaká podrobnější vysvětlení.

Příprava

  1. Na vhodný HW (alespoň 2 GB RAM) instaluji Windows 2000 Server, poslední servicepack, aktualizuji Internet Explorer a stahuji potřebné záplaty. Doménové jméno serveru je lwp.csdevelopment.cz.
  2. Všechny další operace dělám po přihlášení jako Administrator.
  3. Instaluji Lotus Domino Server 6.5.4 do adresářů C:\Lotus\Domino a C:\Lotus\Domino\Data (plná defaultní instalace).
     
  4. Nastavím Domino aby běželo jako služba po spuštění, pod systémovým účtem.
     
  5. Domino server pojmenuji Workplace/WSE, notesová doména je WSE, administrátor se jmenuje Super Admin/WSE. Všechna hesla jsou password - v testovacím prostředí si to mohu dovolit.
  6. Nastavuji spouštění tasku LDAP po startu Domina.
     
  7. Nedávám na všechny databáze No access pro Anonymous.
     
  8. Spustím poprvé server a nechám dokončit všechni inicializační procedury (mail.box, events4.nsf, ...).

LDAP na Dominu

WSE má pod sebou WebSphere Portal, který ke správě účtů používá WMM. Díky němu mohou komponenty sdílet profily uživatelů a skupin. Uživatele a skupiny lze registrovat přímo do databáze WSE, nebo využít již existující LDAP server. V takovém případě potřebujeme, aby položky v LDAPu obsahovaly unikátní atribut (na tento atribut se potom mapuje extID v WMM. V Dominu zatím takový atribut není, je na něj jen částečně připraveno schema LDAPu. Musíme jej tedy přidat ručně. Zajímají nás dokumenty založené na formulářích Person, Group, Certifier
Proslýchá se, že v příští verzi by to mohl za nás dělat nějaký skript automaticky, pokud se rozhodneme používát LDAP Domina.
  1. Zazálohuji si celou Domino Directory
  2. Spouším Notes Designera a otevírám v něm Domino Directory (names.nsf).
  3. Otevírám formulář Person. Přidávám do něj nahoru, do skryté části, pole dominoUNID, typ Text, Computed when Composed a jako hodnotu vyplňuji @If(dominoUNID != ""; dominoUNID; @Text(@DocumentUniqueID));
     
  4. Ve vlastnostech prvku návrhu nastavuji Prohibit design refresh, aby se mi nastaveni nepřepsalo zpět při prvním běhu designera.
  5. Stejným způsobem přidám toto pole do formulářů Group a Server\Certifier. Mohu použít copy - paste.
  6. Pro Domino Directory zakládám full-text (kvůli rychlejšímu vyhledávání).
  7. Do notes.ini přidávám parametr pro podrobné logování aktivity LDAP tasku set conf ldapdebug=7
  8. Právě vytvořené pole dominoUNID ale nedostanou dokumenty automaticky, ale jenom ty, které od teď vzniknou nebo se budou upravovat (dojde u nich k edit - save). Pokud bych připojoval WSE na produkční Domino server, musel bych agentem projet všechny dokumenty, které vznikly podle těchto tří formulářů a doplnit do nich pole dominoUNID. Lze to udělat například takto:
    • Vytvořím agenta Insert dominoUNID, sdílený, typ spouštění On event, Action menu selection, All selected documents.
    • Jako akci vyberu Formula a vyplním FIELD dominoUNID := @If(dominoUNID != ""; dominoUNID; @Text(@DocumentUniqueID));
       
    • Vlevo kliknu na Document selection a tlačítkem Add condition... přidám filtr dle formuláře: Condition = By form a vyberu Group, Person, Server\Certifier. Agenta uložím.
       
    • Zpět v klientu se v Domino Directory přesunu do pohledu People, vyberu vše a spustím agenta Action - insert dominoUNID.
    • Totéž provedu v pohledech Groups a Configuration/Certificates. Ověřím, jestli je pole opravdu přidáno, přes vlastnosti dokumentu.
       
  9. Nyní upravím schema LDAPu v Dominu: přidám tam atributy, které potřebuje WMM. V Domino Directory založím (pokud ještě neexistuje) konfigurační dokument pro celou doménu (*, má zaškrtnuto use these settings as default settings for all users) - jedině ten má v sobě záložku LDAP.
  10. V ní je vidět seznam atributů, které jsou nyní přistupné přes LDAP dotazy. Další tam přidám tlačítkem Select Attribute Types. Jako Object classes zvolím * a stisknu Display Attributes. Vlevo vyberu HTTP-HostName, MailFile, MailServer, NetAddress, Sametime, dominoUNID a tlačítkem Add je přídám na pravou stranu.
     
  11. Povolím LDAP users write access (lze to udělat i read-only, ale potom je náročnější konfigurace na staně Portalu. Pro testování to stačí. Read-only variantu lze najít v různých dokumentacích, možná ji časem přidám i sem). Dokument uložím.
  12. Přeindexuji databázi a pustím na konzoli Domina příkaz tell LDAP reloadschema, kterým přegeneruji schema LDAPu.
  13. V notesech zaregistruji 2 uživatele: wpsadmin/WSE (administrátor Portalu a WSE) a wpsbind/WSE (pro přístup k LDAPu Domina). Oběma dám internetové heslo "password". Není nutno podniknout celou registraci i s vygenerováním ID souboru, stačí jenom vytvořit Person dokument.
     
  14. Vytvořím skupinu wpsadmins a dám do ní oba právě vytvořené uživatele. Tuto skupinu přidám do ACL Domino Directory, právo Editor se zapnutými rolemi Group Creator, Group Modifier, User Creator, User Modifier. Je to kvůli tomu, aby uživatelé WSE mohli prostřednictvím účtu wpsbind/WSE měnit své profily (např. hesla) v LDAP adresáři (kterým je v případě Domina právě Domino Directory.
  15. Vyzkouším, jestli LDAP server odpovídá na dotazy. Použiji notesovou utilitku ldapsearch, která je v každé instalaci klienta či serveru. ldapsearch -h lwp.csdevelopment.cz cn=wpsadmin Všimnu si zejména atributu dominoUNID, který jsme do schematu přidávali ručně.
     
  16. Shrnutí: Teď mám připraven LDAP server pro připojení k WSE a založeny uživatele, které budu potřebovat při konfiguraci WSE.

Instalace WSE

Samotná instalace WSE není nic složitého, v podstatě se jenom odkliká.
  1. Připravím si instalační sadu. Buď ve formě tří CD, nebo ji stáhnu z webu a rozbalím do adresářů, které pojmenuji cd1-1, cd1-2, cd1-3. Server Domino může běžet dál.
  2. Na prvním CD spustím soubor install.bat. V Java installeru vyberu pro instalaci jazyk English. Nabízí se i Czech, ale já raději angličtinu, tam člověk ví, na čem je a co po něm instalační dialog požaduje.
     
  3. Přejdeme info i License agreement a vybereme cestu, kam WSE nainstalovat. Doporučuje se nepoužívat v ní mezery, takže já volím C:\IBM\WorkplaceServiceExpress.
     
  4. Jako hostname nechávám doménové jméno, které si instalátor vezme z Windows: lwp.csdevelopment.cz
     
  5. V dalším dialogu vyplním jméno administrátora WSE. Pozor, toto není ten účet, který jsme vytvářeli v Dominu. Toto je jakýsi výchozí administrátor, který musí být založen, abychom se k čerstvě nainstalované WSE vůbec přihlásili. Je uložen přímo v databázi WSE a ne na LDAP serveru. Nemá tedy ani žádnou spojitost s účty ve Windows. Až budeme převádět WSE na LDAP Domina, přestane tento účet platit a začnou se používat účty z Domino Directory (např. wpsadmin/WSE).
    Teď vyplňuji jako User ID wpsadmin a heslo password.
     
  6. Poté už jenom odklepnu shrnutí parametrů a nechám instalátor nakopírovat soubory. Může to trvat několik desítek minut.
     
  7. Důležité! Pokud chci použít k autentizaci uživatelů WSE použít cizí LDAP server, v dalším dialogu nesmím zatrhnout políčko Start IBM Workplace Services Express! Před prvním spuštěním musím udělat úpravy v konfiguraci WSE a teprve potom mohu servery spustit.
     
    Nebudu chtít spustit ani First steps, instalaci ukončím tlačítkem Finish.
     
  8. Shrnutí: mám nainstalováno WSE, které se skládá celkem ze tří serverů: WebSphere Application Server (adresář AppServer), WebSphere Portal Server (adresář PortalServer) a Workplace Server (adresář Workplace).

Připojení na LDAP Domina

Tento krok vyžaduje určitou pečlivost a přesnost, důkladně sledování změn a ruční zálohování každého souboru, který se bude měnit. Předpokládá se, že právě tento krok bude v příští verzi WSE zjednodušen a zautomatizován.
  1. Mám spuštěn Lotus Domino Server s běžícím LDAP taskem.
  2. Nastavím typ externího LDAPu. Edituji soubor PortalServer\config\templates\wmm\wmm_LDAP.xml.DOMINO502.3.wmm. Protože mám Domino verze 6, změním nastavení parametru adapterClassName (vlastně přidám jenom šestku): <ldapRepository name="wmmLDAP"
    UUID="LDAP1"
    adapterClassName="com.ibm.ws.wmm.ldap.domino. Domino6LdapAdapterImpl"
    supportDynamicAttributes="false"
  3. Namapuji WMM na atribut dominoUNID v LDAPu. Otevřu soubor PortalServer\config\templates\wmm\wmmLDAPAttributes_DOMINO 502.xml a zkontroluji, jestli se parametr extId správně mapuje na dominoUNID (mělo by to už být nastaveno): <attributeMap wmmAttributeName="extId"
    applicableMemberTypes="Person;Group;Organization; OrganizationalUnit"
    pluginAttributeName="dominoUNID"
    dataType="String"
    multiValued="false"
    readOnly="true"/>
  4. Nastavím parametry v tzv. helper file, což je typ souboru, z nějž se načítají parametry do grafického wizardu, který budu spouštět za chvíli. Je tedy jedno, zda udělám změnu nyní, v souboru, nebo později, v okéncích wizardu. Úpravy v souboru lze ale použít opakovaně, při každém spuštění wizardu, takže je nebudu muset vždy znovu a znovu přepisovat, což se při ladění, kdy se opakovaně zapíná a vypíná bezpečnost, může hodit.
    Nejdříve změním parametry pro vypnutí bezpečnosti Portalu. Edituji soubor PortalServer\config\helpers\security_disable.properties a změním heslo PortalAdminPwd. Jinak mohu nechat defaultní nastavení. Vypnutí bezpečnosti uvede Portal server do stavu, v jakém by byl, kdybych jej instalovali samostatně a ne jako součást balíku WSE. Klidně tedy nechám o=default organization. # PortalAdminId: The user ID for the WebSphere Portal Administrator
    # DEV (No security):PortalAdminId=uid=wpsadmin,o=default organization
    PortalAdminId=uid=wpsadmin,o=default organization

    # PortalAdminIdShort: The short WebSphere Portal admin ID
    PortalAdminIdShort=wpsadmin

    # PortalAdminPwd: The password for the WebSphere Portal Administrator
    PortalAdminPwd=password

    # PortalAdminGroupId: The group ID for the WebSphere Portal Administrator group
    # DEV (No security):PortalAdminGroupId=cn=wpsadmins,o=default organization
    PortalAdminGroupId=cn=wpsadmins,o=default organization
  5. Teď změním parametry pro zapnutí bezpečnosti a přesměrování la look-aside LDAP Domina. Edituji soubor PortalServer\config\helpers\security_domino.properties a nastavuji hodnoty takto: # WebSphere Application Server Properties - BEGIN
    WasUserid=cn=wpsadmin,o=WSE
    WasPassword=password
    WpsHostName=lwp.csdevelopment.cz

    # Portal Config Properties - BEGIN
    PortalAdminId=cn=wpsadmin,o=WSE
    PortalAdminIdShort=wpsadmin
    PortalAdminPwd=password
    PortalAdminGroupId=cn=wpsadmins
    PortalAdminGroupIdShort=wpsadmins

    # WebSphere Portal Security LTPA and SSO configuration
    LTPAPassword=password
    SSOEnabled=true
    SSORequiresSSL=false
    SSODomainName=csdevelopment.cz

    # LDAP Properties Configuration - BEGIN
    LookAside=true
    LDAPHostName=lwp.csdevelopment.cz
    LDAPAdminUId=cn=wpsadmin,o=WSE
    LDAPAdminPwd=password
    LDAPBindID=cn=wpsbind,o=WSE
    LDAPBindPassword=password

    # Advanced LDAP Configuration - BEGIN
    LDAPSuffix=
    LdapUserPrefix=cn
    LDAPUserSuffix=
    LdapGroupPrefix=cn
    LDAPGroupSuffix=
    LDAPUserObjectClass=dominoPerson
    LDAPGroupObjectClass=dominoGroup
    LDAPGroupMember=member
    LDAPUserFilter=(&(|(cn=%v)(uid=%v))(objectclass=inetOrgPerson))
    LDAPGroupFilter=(&(cn=%v)(objectclass=groupOfNames))
  6. Parametry máme změněny, ale před spuštěním wizarda ještu upravíme timeout pro SOAP. Tento krok nebyl dlouhou dobu zdokumentovaný a krátký limit způsobil, že při vypínání bezpečnosti Portalu to spadlo a nevědělo se proč. Edituji soubor AppServer\properties\soap.client.props a měním com.ibm.SOAP.requestTimeout=6000
  7. V souboru PortalServer\shares\app\config\services\PumaService.properties odkomentuji a nastavím tento řádek: user.sync.remove.attributes=cn
  8. Pokud máte náhodou slabší server, na kterém instalaci testujete (zejména velikost RAM), zvyšte aspoň velikost swapu ve Windows tak na 2-3 GB. Config Wizard je totiž první "javový bumbrlíček", který si ukousne velký kus RAMky. Pokud ji má nedostatek, může skončit chybou, kterou budete marně odstraňovat nastavením konfiguračních souborů...
  9. V tuto chvíli mi neběží žádný z "webspherových" serverů. Spustím proto Network Server a server1: subtasks\startNetworkServer.bat
    Appserver\bin\startServer.bat server1
    Výpis musí končit řádkou Server server1 open for e-business... Pokud servery nespustím ručně, měl by si je samy spustit skripty vyvoláváné wizardem.
     
  10. A konečně se dostanu ke spuštění konfiguračního wizardu, startuji PortalServer\config\wizard\configwizard.bat.
    • Jako instalační jazyk vybírám opět English, odklepávám Welcome.
       
    • V další obrazovce vybírám Disable security jako configuration task.
       
    • Přihlašovací údaje: User - wpsadmin, Password - password
       
    • V následujícím okně je výběr helper file, defaultně je vybrán ten, co jsem upravoval (security_disable.properties), takže jej tak nechám...
       
    • ... a v další obrazovce vidím, jak z něj krásně načte upravené hodnoty.
    • V posledním souhrnném okně jenom kliknu Next a počkám, až konfigurace doběhne.
       
  11. Zabezpečení Portalu je nyní vypnuto, musím jej znovu zapnout. Proto stisknu tlačítko Run Wizard Again.
     
    • Tentokrát vyberu Enable LDAP Security.
       
    • Přihlašovací údaje už to nyní nechce, protože v předchozím kroku jsem jej vypnul.
    • Jako LDAP type vyberu Lotus Domino Enterprise Server.
       
    • Helper file to také najde správně (security_domino.properties)...
       
    • ... a správně z něj přečte hodnoty, které zobrazuje v několika následujících formulářích. Menit bych teď neměl nic, to jsem už udělal v předchozích krocích, když jsem měnil konfigurační soubor. Jenom kontroluji, jestli není někde nejaký překlep. Pokud wizard nahlásí chybu Invalid or insufficient authorization privileges, nepovedlo se mu přihlásit na LDAP server - ověřte si, zda máte správně zadané jméno a heslo v Dominu i v helper souboru.
       
       
       
       
       
       
       
       
       
       
    • Závěrečné Next začne konfigurovat Portal Server, po chvíli stisknu v okně Finish.
       

První spuštění WSE

Bezpečnost je nastavena, teď už můžu konečně spustit WSE.
  1. Ukončím všechny servery příkazy AppServer\bin\stopServer.bat server1
    subtasks\stopNetworkServer.bat
    Někdy jsou oba servery samy shozeny po korektním doběhnutí Enable security ve Wizardu.
  2. Spustím všechny servery příkazem startWorkplaceServices.bat. Ten nastartuje Cloudscape Network Server, Portal Server, Workplace Server.
  3. Do internetového prohlížeče zadám adresu http://lwp.csdevelopment.cz:9081/lwp/workplace
     
  4. Přihlásím se jako administrátor portálu, tj wpsadmin, password.
     
    V tuto chvíli se zadané jméno a heslo ověřuje vůči LDAPu na Domino serveru. Pokud jsou v Domino Direcotry i nějací další uživatelé, zkuste se přihlásit i pod jejich účty.
  5. Administrační přístup k WebSphere Application Serveru je přes URL http://lwp.csdevelopment.cz:9091/admin Používá se ke konfiguraci Portálu a WAS.
     
  6. Shrnutí: V tuto chvíli mám běžící Workplace Services Express s přihlašováním přes účty v Dominu. Administrační přístup k WSE je pod uživatelem wpsadmin, heslo password.

Nastavení Single Sign-On

Do WSE se můžeme hlásit přes jména a hesla, která máme v Dominu. To nám ale vystačí jen do té doby, než budeme chtít umístit do Portalu nejaké portlety, které přistupují k databázím na Dominu (například do poštovní schránky, firemní databáze apod.). V takovém případě se budeme muset nejprve přihlásit do WSE a potom stejným jménem a heslem (sic!) i do webové aplikace na Dominu. Řešení samozřejmě existuje a jmenuje se Single Sign-On, tedy jednorázové přihlášení do všech služeb, které jsou propojeny s Portal serverem (tuto službu pro WSE zajišťuje právě komponenta WebSphere Portal Server). Používá se k tomu LTPA klíč (token), který se vygeneruje v Portal serveru a naimportuje se do Domino Directory (opačný postup - vygenerovat v Dominu a naimportovat do WPS není v tuto chvíli možný).
  1. Musí běžet aspoň server1 server (skript startWorkplaceServices.bat).
  2. Připojím se na Administrative console přes URL http://lwp.csdevelopment.cz:9091/admin Přihlásím se jako wpsadmin, heslo password.
     
  3. V menu na levé straně okna vyberu Security - User Registries - Custom - Custom Properties.
     
    Kliknu na New a nastavím parametry pro novou hodnotu (cesta na LDAP server): Name = userRegistryRealm, Value = lwp.csdevelopment.cz:389. Pozor! Tento krok není uveden v oficiálním Info Centru!
     
  4. Teď exportuji token. Ten se automaticky vytvoří po instalaci Portalu (ale lze si později nechat vygenerovat nový, jiný). V menu vlevo vyberu Security - Authentication Mechanism - LTPA. V poli Key File Name nastavím cestu k exportnímu souboru - C:\domwas.key například. nahoře kliknu na tlačítko Export Keys a potom na Save.
     
    Podívám se, jestli se token skutečně uložil do zadaného souboru. Odhlásím se z Administrative console.
  5. Ukončím všechny servery: stopWorkplaceServices.bat -user wpsadmin -password password
  6. Spustím klienta Lotus Notes, otevřu Domino Directory, jdu do pohledu All Server Documents. Otevřu příslušný serverový dokument. Na první záložce musí být Load Internet configurations from Server\Internet Sites documents = Disabled. Nahoře v liště stisknu Create Web - SSO Configuration.
  7. Nahoře stisknu Keys - Import WebSphere LTPA Keys a do okénka zadám cestu C:\domwas.key.
     
    Heslo ke klíči je password.
     
     
    Dále vyplním pole takto: Domino Server Name = Workplace/WSE, DNS Domain = .csdevelopment.cz (na začátku je tečka!). Upravím LDAP Realm = lwp.csdevelopment.cz\:389 (přidávám zpětné lomítko před tečku). Dokument uložím.
     
  8. V serverovém dokumentu jdu na záložku Internet Protocols - Domino Web Engine a Session Authentication měním na Multiple Servers (SSO). Nově objevivší pole Web SSO Configuration nastavuji na LtpaToken Uložím, přeindexuji Domino Directory a zrestartuji Domino server.
     
  9. Spustím WSE: startWorkplaceServices.bat.
  10. Otestuji Single Sign-On. Spustím internetový prohlížeč a zadám adresu http://lwp.csdevelopment.cz:9081/lwp/workplace Přihlásím se jako wpsadmin, password. Hned po přihlášení ve stejném okně vyťukám URL http://lwp.csdevelopment.cz/names.nsf Pokud je vše nastaveno dobře, tak se mi ukáže Domino Directory bez dalšího přihlašování. Pokud ne, tak mi vyskočí přihlašovací dialog k Domino serveru.
  11. Shrnutí: Propojil jsem Portal server ve WSE a Domino server přes LTPA token a SSO, takže po přihlášení do WSE už nemusím podruhé zadávat heslo do Domina.

Předchozí: Prohledávání LDD v Opeře
Následující: Lotus Symposium 2005