Teknisk Proof of Concept for Den fællesoffentlige integrationsmodel for borgerportalen og virksomhedsportalen
Offentlig Erfaringsrapport
Borger.dk portalsiden: Oracle portal
Som udgangspunkt er benyttet samme standard-software til
PoC’en, som i borger.dk produktionsmiljøet, nemlig Oracle Application Server 10g (Oracle AS).
For at kunne gennemføre projektet og herunder afprøvning af de valgte standarder, er der installeret yderligere software-komponenter og andre komponenter er blevet opgraderet for at understøtte de valgte standarder i de korrekte versioner. Dette er beskrevet særskilt under afsnittene om hhv. WSRP/JSR168 og
IdP.
Borger.dk produktions-miljøet afvikles i et tre-tier server-setup med hhv. database, identity management og portal/web-server på hver sin server, og med separate netværk adskilt af firewalls til hvert tier. Dette viste under opstarten af projektet ikke at være hensigtsmæs-sigt, hvorfor
PoC miljøet er afviklet på to virtuelle servere: en til identity management og database samt en til portal/web-serveren. Begge servere ligger i samme netværkssegment og har været placeret i en DMZ for at minimere problemer med netværksadgang til og fra serverne.
Borger.dk WSRP/JSR168 setup
Oracle AS understøtter flere portlet-teknologier, herunder Oracles egen PDK Java specifi-cation og standarderne WSRP og JSR168 (også kendt som Java Portlet Specification, JPS). JSR understøttes dog ikke direkte, men via ”indpakning”, hvorefter de afvikles som WSRP portlets, hvor Oracle Portalen både er producer og consumer.
Ved afvikling af WSRP portlets forbindes til en ekstern portlet producer. De to elementer “WSRP Adapter” og “JPS Portlet Container” er altså placeret hos portlet producer (andre steder omtalt provider) og Oracle Portal kommunikerer direkte med den eksterne producer via HTTP.
Afvikling af JSR168 portlets foregår i Oracle AS ved at deploye portlets i en lokal portlet container, med en tilhørende WSRP Adapter. Oracle Portal afvikler dermed JSR168 port-lets på samme måde som WSRP portlets, blot med den forskel at portlet producer er placeret lokalt.
Benyttet software:
Oracle Application Server 10g version 10.1.2 (som borger.dk):
- Oracle Portal 10g version 10.1.4 (som borger.dk)
- Oracle Containers for Java (OC4J) 10g version 10.1.2 (som borger.dk)
- OracleAS Java Portlet Container version 10.1.4 (ny installation/opgradering til OC4J)
Borger.dk IdP setup
Borger.dk produktions-miljøet benytter sig af Oracle Identity Management til håndtering af autentifikation og administration af brugere og roller. Autentifikation varetages af Oracle Single-Sign-On (SSO) mens brugere og roller administreres af Oracle Internet Directory, der bl.a. består af Oracles LDAP-server.
Oracle Identity Federation (OIF) er Oracles federation server, der bl.a. supporterer SAML 2.0 og kan optræder som både Service Provider (SP) og Identity Provider (
IdP). Da OIF ikke benyttes af borger.dk, har det været nødvendigt at installere OIF og i den forbindelse skulle Oracle Identity Management også opgraderes til en nyere version.
1.Brugeren requester en borger.dk side, der er beskyttet af mod_osso.
2.Oracle SSO er konfigureret til at bruge Oracle Identity Federation (OIF) Service Pro-vider (SP) til autentifikation.
3.OIF SP laver SAML SSO med Identity Provider, der prompter brugeren for bruger-navn/password.
4.OIF SP mapper SAML assertion til en lokal bruger og opretter en Oracle SSO session.
5.Der bliver givet adgang til siden af mod_osso.
Benyttet software:
Oracle Application Server 10g version 10.1.2 (som borger.dk):
- Oracle Portal 10g version 10.1.4 (som borger.dk)
- Oracle Identity Management 10g version 10.1.4 (opgraderet fra 10.1.2)
- Oracle Identity Federation 10g version 10.1.4 (ny installation)
Sundhed.dk: BMI selv-service
Integrationsform
Integrationsformen der er anvendt er Remote Portlet. Løsningen er baseret på WSRP 1.0 standarden.
Case
På sundhedsportalen sundhed.dk stilles en række sundshedsrelevante tjenester til rådghed for brugerne gennem en portletbaseret brugersnitflade. Portalen betjener både professionelle indenfor sundhedssektoren og borgere. De sidste kan f.eks. få adgang til oplysninger om indlæggelser og medicinering via recepter.
Til anvendelse i POC blev en selv-service Body Mass Index (BMI) portlet applikation valgt. Denne eksponeres på borger.dk via WSRP protokollen.
Overordnet arkitektur
Sundhed.dk afvikles på IBM
WebSphere Portal Server. Til POC-afprøvningen blev der opsat en test
WebShere Portal Server i et et WM-Ware image, som BMI portletapplikationen blev installeret på.
BMI portlet applikationen trækker ikke på data udefra, men ”medbringer” pakket ind i portlet web-applikationen et rammeværk, som anvendes af mange portlets på sundhed.dk.
Som tegningen indikerer er der tale om en punk-til-punkt integration mellem en WSRP web service consumer og en WSRP web service WSRP provider.
Ved opsætning af WSRP forbindelsen sker følgende:
- På WSRP producer siden – sundhed.dk - konfigureres BMI portletten til at være en WSRP producer. Konfiguration foregår i en administrativ portlet via 2-3 museklik.
- Herved generes en udefra tilgængelig wsdl hvor de portlets, der er registrerede som producers, indgår (publish).
- På WSRP consumer siden – borger.dk - konfigureres en WSRP consumer portlet.
- Link addressen til BMI producer wsdl dokumentet indsættes (find og bind).
Benyttet software:
WebSphere Portal Server Version 6
Bemærkninger
Der var ingen problemer med WSRP consumer portletten på borger.dk. På BMI portletten viste det sig, at den anvendte et internt objekt i stedet for portlet standard API. Dette gav en fejl under WSRP sessionen. Det blev rettet og herefter kørte portletten via WSRP, som den skulle.
Færdselsstyrelsen: Vognmandstilladelse
Integrationsform
Integrationsformen der er anvendt er Remote Portlet. Løsningen er baseret på WSRP 1.0 standarden.
Denne case er en slags composite application, men ikke som i rapporten ”Arkitekturen på en borgerportal” en composite, der baseres på installeret JSR168. Applikationen afvikles hos myndigheden og vises via Remote Portlets.
Case
Færdselsstyrelsen er en composite application, der samler en række myndighedsservices i en sammenhængende proces, hvor man kan søge om en vognmandstilladelse. Det involverer bla. servicekald til CPR/CVR, politiet, skat. For brugeren er der tale om én sammenhængende service.
Overordnet arkitektur
FSTYR POC afvikles på IBM
WebSphere Portal Serve samt en
WebSphere Process Server. Til POC-afprøvningen blev der opsat en test
WebShere Portal Server og Process Server i et et WM-Ware image. Vognmands-portletapplikationen blev installeret på Portal serveren og forretningsprocessen (BPEL) blev installeret på Process Server.
Portlet applikationen spiller sammen med BPEL processen på den måde at den dels initierer en BPEL proces instans og dels deltager i nogle af BPEL processens manuelle aktivieter. Disse opleves af brugeren som en sekvens af skærmbilleder i portlet applikationen.
BPEL processen henter oplsyninger fra andre offentlige organisationer (CPR, CVR og Skat). Endelig afsluttes BPEL processen med, at der via et webservice-kald oprettes en sag i et ESDH test system (Scanjour Captia).
Ved opsætning af WSRP forbindelsen sker følgende:
- På WSRP producer siden – FSTYRPOC.dk - konfigureres Vognmandsportlet portletten til at være en WSRP producer.
- Herved generes en udefra tilgængelig wsdl hvor de portlets, der er registrerede som producers, indgår (publish).
- På WSRP consumer siden – borger.dk - konfigureres en WSRP consumer portlet.
- Link addressen til portlet producer wsdl dokumentet indsættes (find og bind).
Testen er i denne case kompleks, fordi den samlede applikation er distribueret over en række lag, systemer og organisatoriske domæner: To portaler, en proces server og en række eksterne services.
Benyttet software:
- WebSphere Portal Server Version 5.1
- WebSphere Proces Server Version 6.0
- IBM DB2 UDB Version 8.1
- WebSphere Business Modeler Version 6 (proces modellering, analyse og optimering)
- WebSphere Integration Developer Version 6 (BPEL programmering og service integration)
Bemærkninger
Da sikkerhed ikke indgik i POCen var det ikke muligt at identificere ansøgeren. Applikationen har brug for oplysninger om ansøgerens CPR og CVR nummer. Processen der bearbejder og kontrollerer ansøgningen har brug for CPR og CVR numrene for at kalde de underlæggende services fra CPR, CVR og Skat.
I forbindelse med web service sikkerhed på transport niveauet (OWSA Web Service Security Model T), hvor der anvendes SSL til kryptering, kan man evt. vælge at anvende det User objekt der er defineret i WSRP standarden. Dette objekt rummer en række standard brugerinformationer som navn og adresse. For at anvende det, skulle det udvides (er ifølge WSRP tilladt) med CPRNummer og CVRNummer information.
Der var ingen problemer med WSRP consumer portletten på borger.dk.
Service provider applikationen får CVR og CVR nummeret via brugerens login. Hentning af brugerinformation via WSRP web service kaldet kræver derfor en programændring i applikationen. I stedet blev der af hensyn til at kunne gennemføre testen i POCen lavet en stubløsning, som oprettede et test bruger CPR og CVR nummer.
KMD: Mit budget
Integrationsform
Integrationsformen der er anvendt er Remote Portlet. Løsningen er baseret på WSRP 1.0 standarden.
WSRP dannes fra providersiden ved brug af
NetUnity som muliggør at Microsoft .NET løsninger udstilles som Remote Portlets. Denne case er altså et væsentligt supplement til de java-orienterede WSRP afprøvninger for at sikre, at WSRP som standard ikke udelukker den store del af markedet, der er Microsoft-orienteret.
Case
Casen tager udgangspunkt i et løsningen ”Mit Budget”, som KMD har udviklet og integreret med Ældresagens hjemmeside. (Ældredagen anvender ikke længere produktet). For at kunne integrere med Ældresagens hjemmeside eller for den sags skyld en kommunes hjemmeside anvendes en KMD fælleskomponent ”Grafisk udrulning”. Denne komponent anvendes af alle KMD’s borgserviceløsninger, så derfor skal det forsøges at kombinere WSRP med denne komponent. Antagelsen er at hvis dette kan lade sig gøre vil det minimere omkostningerne ved at få KMD’s borgerserviceløsninger til at ”tale” WSRP og dermed at kunne integrere på borger.dk.
Den oprindelige løsning kan nås på vedlagte link
http://budgetmodul.netborger.dk/budget/default.aspx?p=bs∞
For at skifte design ændres p-parameteren til noget, der identificerer et layout. Kan eksempelvis prøves med (p=borgerdk, p=aeldresagen eller p=aarhus).
Overordnet arkitektur
Som det fremgår af case-beskrivelsen er det egentlig ikke ”Mit Budget” der skal testes men der imod komponenten ”Grafisk Udrulning”. ”Mit Budget” er valgt da den ikke har bindinger til fagsystemer hvilket bare ville medføre besvær i en testsituation. Som back-end er der dermed kun en MS SQL database som tilgås med ODBC.
Setup’et ser således ud.
Diagram over den oprindelige løsning og WSRP løsningen
WSRP løsningen udstiller en provider på URL’en
http://minside.test.dk/wsrp/producer1.asmx?Operation=WSDL∞
Servicen er placeret hos KMD og den tilgås via SOAP/HTTP.
IBM: CVR service
Integrationsform
Integrationsformen der er anvendt er Portlets. Løsningen er baseret på JSR168 Portlet.
Der er forsøgt afprøvet en composite application, men erfaringer er primært baseret mere simple applikationer.
Case
Der var oprindeligt tænkt en composite application ved brug af JSR udgave af Færdselsstyrelsen. Det var ikke muligt, da der er anvendt portal-teknologi udover JSR168 standarden i denne implementering.
Derfor blev der i stedet installeret og afprøvet en alternativ portlet, som henter oplysninger om en virksomhed. Portlet applikation er en lille hjælpeservice, hvor man kan søge efter oplysninger om en virksomhed ud fra dens CVR nummer. Det sker med et vist genbrug af løsningsarkitekturen fra Færdselsstyrelsen case’en.
Erfaringer er desuden baseret på en helt simpel JSR168 installation, hvor deployment udfordringer og andet gjorde det umuligt at foretage fuld afprøvning og drage konklusioner på de øvrige nævnte services.
Overordnet arkitektur
Der er udviklet en Portlet efter JSR168 standarden på IBMs Web Sphere platform. Denne portlet er herefter deployet til Oracle Portal, hvor koden afvikles.
Der er altså tale om afvikling på samme server som portalen og ikke som ved brug af WSRP en remote portlet i et distribueret miljø.
Ved overførsel af en JSR168 potlet sker følgende:
- JSR168 portlet applikationen blev lavet med IBM WebSphere Portel Factory ud fra cvr.wsdl dokumentet, udstillet af Krak.dk
- Portlet Factory samler portlet applikationen i en arkivfil i henhold til J2EE standardens regler for pakning af web applikationer i web archieve files (war).
- Portlet war filen blev deployed, installeret og testet på WebSphere Portal server
- Herfter blev portlet war filen sendt til borger.dk udviklingsmiljøet med e-mail.
- Portlet war filen blev herefter lagt in på Oracle Portal Server
- JSR168 portlet applikationen afvikles som en WSRP portlet, da Oracle portalen foretager indpakning og optræder som både producer og consumer (JSR168 understøttes ikke direkte).
Benyttet software:
- IBM WebSphere Portal Server Version 6
- IBM WebSpere Portal Factory Version 6 (udvikling af portlet)
Bemærkninger
Det viste sig af Oracle Portal ikke har sin egen JSR168 container. Man er derfor nødt til at pakke den ind som en WSRP provider, før den kan anvendes på Oracle Portal, med den øgede kompleksitet og det performance overhead, som dette medfører.
Testen fejlede fordi
WebSphere Portal bruger en open source xerces xml parser fra Apache mens Oracle Portal anvender sin egen xml parser. Begge plaftforme understøtter XML og Web Services, som de skal for at overholde J2EE standarden, men Oracle og IBM har valgte forskellige implementeringer af deres XMl og Web Service runtime miljøer.
Løsningen på dette er at tage eventuelle runtime-platform forskelle med i portlet WAR arkivet. I dette tilfælde xerces bilblioteket fra Apache. Dette kan lade sig gøre, men gør dels web applikationen større, øger kompleksiteten og introducerer nye fejlmuligheder.
Rødovre Kommune: e-posthus.dk
Integrationsform
Integrationsformen der er anvendt er Link og iFrame m/Single Sign-on (SSO).
Link og iFrame er under
PoC afprøvet samlet, da det teknisk set har de samme udfordringer. Set med informationsarkitekturøjne kan disse være meget forskellige integrationsformer, men det giver ikke mening at afprøve og erfaringsopsamle som om disse var vidt forskellige udfordringer set i forhold til de standarder, der skal afprøves på tværs af tekniske platforme.
Case
e-posthus.dk er en post og kalender portalløsning hos Rødovre Kommune, der med tiden kommer til at favne en række services - såvel kommunale som andre.
Det bør være således at borgeren ikke møder flere logins, når han/hun bevæger sig mellem en Borgerportal og Rødovres e-posthus.dk løsning - uanset hvilken portal denne vælger (først).
Rødovre ønsker en løsning som her og nu giver single sign-on til kommunens interne tjenester, og kan anvendes med eksisterende login metoder som brugernavn/kodeord, borgerens OCES certifikat, og samtid være forberedt til den fremtidige fælles offentlige login service med anvendelse af SAML 2 tokens.
Der blev således testet en række scenarier med kommunens Epost løsning som eksempel på en service provider:
- Kommunal single sign-on med brugernavn og kodeord til kommunens e-posthus.dk.
- Kommunal singlesign-on med borgerens OCES certifikat til kommunens e-posthus.dk.
- Fælles offentlig single sign-on med OCES certifikat via den fælles offentlige loginservice (IDProvider) til kommunens e-posthus.dk med link videre til borger.dk
- Fælles offentlig single sign-on med OCES certifikat via den fælles offentlige loginservice (IDProvider) til borger.dk med link videre til kommunens e-posthus.dk
SSO scenarie 4 - detaljeret:
- Borgeren kommer til Borgerportalen
Borgeren anvender en ressource/service, der kræver login
- Login rettes mod IDProvideren
- ID Provideren returnerer et SAML token til login på Portalen
Borgeren vises den ønskede (adgangsbegrænsede) side på Borgerportalen
- Borgeren klikker på link til Rødovres e-posthus.dk
- Sikkerhedskomponenten (TFIM) checker SAML token op mod IDProvideren
- Accepten returneres fra IDProvideren
- Brugeren får adgang til Rødovres e-posthus.dk
I virkeligheden var der ikke den store forskel på de to fælles offentlige single sign-on scenarier (3 og 4) da borger.dk og Rødovre site principielt har den samme rolle som service provider. Links begge veje lykkedes da af samme grund også.
Overordnet arkitektur
I de to scenarier med fællesoffentlig single sign-on indgik således tre hovedaktøren:
- IdProvideren, som i POC var en Ping Identity installation hos ITST
- Borger.dk portalen og dens sikkerhedskomponenter til håndtering af SAML login
- Rødovres testinstallation med e-posthuses og kommunens sikkerhedsløsning til håndtering af de ovennævnte login metoder (lokal login med brugernavn/kodeord og OCES certifikat samt fællesoffentlig login med SAML token).
Arkitekturen i Rødovre Kommune:
Det følgende diagram viser sikkerhedsarkitekturen, som den blev afprøvet i denne
PoC:
De kommunale services er illustreret med Epost og Bibliotek. ePost indgik i afprøvningen. e-posthus.dk er en Domino Mail Server, som tilgås via http med Domino Web Access.
RK er et LDAP brugerkatalog over Kommunens borgere og personer, som kan tilgå kommunens systemer.
Scenarie 1 og 2 med lokalt login med single sign-on og support for Brugerid/kodeord og OCES certifikat understøttes af IBM Tivoli Access Manager(TAM) med IBM cbt til understøttelse af OCES certifikathåndteringen. I TAM konfigurer man såkaldte “junctions, som sørger for at brugerens login transformeres videre på en for de bagvedliggende systemer forståelig måde.
I scenarie 3 og 4 tilgås de kommunale systemer via en fælles offentlig login service (illustreret med IDProvider) er det IBM Tivoli Federeated Idendity Management (TFIM), der kan modtage det afsendte SAML-token og sammen med TAM omsætte det gennem en junction til et forståeligt login for de bagvedliggende systemer som f.eks. ePost.
Anvendt Software:
- IBM Tivoli Federeated Identity Management Version 6.1
- IBM Tivoli Access Manager Version 6.0 inklusiv
- IBM DB2
- Tivoli Directory Server
- IBM cbt (åndtering af OCES certifikater)
Bemærkninger
Det lykkedes at konfigure og teste alle de fire nævnte scenarier med succes.
Der er en kommentar til denne side. [Vis kommentar]