Forprosjektrapport Presentasjon Tittel: Oppgave: Infront SSO Utvikle en Single Sign-on løsning for Infront Periode: 8/1-2013 28/5-2013 Gruppemedlemmer: Jon Hammeren Nilsson, Anders Emil Rønning, Lars Grini og Erling Fjelstad Prosjektgruppe: Gruppe 15 Veileder: Oppdragsgiver: Kontakt v/ Infront: Norun Sanderson Infront Erling Olaussen Sammendrag Infront en bedrift som utvikler programvare for aksjehandel brukt av banker og meglerhus i store deler av Norden og Øst-Europa. Vi skal lage en innloggingsfunksjon for Infront sånn at deres program, Infront Terminal, skal bli mer brukervennlig. Om oppdragsgiver Infront ble startet i 1998 og har flere kontorer i Oslo, København og Stockholm. De har over 80 ansatte og vokser seg stadig større. Infront tilbyr markedsdata, nyheter, analyser og spesialdata som dekker over 50 børser over hele verden alt via deres program, Infront Terminal og mobile applikasjoner. Infront Connect gjør det mulig at banker og meglerhus kan tilby sine kunder kostnadseffektiv elektronisk handel gjennom Infronts programvare. Dagens situasjon Infront har i en tid ønsket å få utviklet en Single Sign-On (heretter forkortet til SSO) løsning til deres tjenester, Infront Terminal og Infront Connect. Per dags dato må kunden først logge seg inn på terminalen for å se på markedsdata, for så å logge inn på Infronts plugin (Infront Connect) - som ligger oppå bankens OMS (Order management system) - for å kjøpe og selge aksjer og valuta (Se figur 1). 1
Figur 1 Dagens løsning Mål Vi har delt inn målene i primære og sekundære mål, der de primære målene er de kritiske som må bli oppfylt, mens de sekundære målene skal gjøres hvis tiden tillater det. Primære mål Integrere SSO i dagens løsning ved hjelp av Auth 2.0, SAML og/eller OpenID. Sette opp en autorisasjonsserver hos Infront som skal ta seg av autorisasjonen av brukere og sende ut access tokens til resten av systemet, avhengig av teknologi og behov. Lage en sikker løsning med tanke på integritet for brukeren og pålitelighet for systemet. Sekundære mål Integrere innlogging via LinkedIn, Facebook, Google og eventuelt andre tredjeparter som kan gå god for brukeren. Også implementering av SSO på mobil plattform (ios og Android. Infront har ingen programvare for Windows Phone for øyeblikket). Prioriteringsliste Funksjonalitet Prioritet Implementere SSO 1 2
Sette opp en autorisasjonsserver 1 Sikker løsning 1 Implementere SSO også på mobil plattform 3 Integrere login m/ LinkedIn 4 Prioriteringsverdier: 1 Vital 2 Høy 3 Middel 4 Lav 5 Veldig lav Utfordringer Funksjonalitet Implementere en SSO-løsning Applikasjoner for spesifikke mobile plattformer Få løsningen sikker Sette opp en autorisasjonsserver Utfordringer Kode,type teknologi som skal brukes Lære programmering for de spesifikke plattformene Vurdere alle muligheter, kryptografi, integritet og pålitelighet samt sikre kvaliteten på koden. Lære seg å sette opp en autorisasjonsserver, sikker autorisering Utfordringer under planlegging og utførelse av oppgaven: Omfang Størrelsen og vanskelighetsgraden på oppgaven kan bli en utfordring, da vi ikke med sikkerthet kan si nøyaktig hvor stor og omfattende den vil bli, og ettersom vi ikke sitter inne med noen kunnskaper om SSO eller teknologiene som skal benyttes, vi må også sette oss inn i Infront sine programmer som er omfattende og avanserte. Tidsfrister Gruppas tidsfrister i forhold til egen fremdriftsplan og Innleveringer, hvis det skulle dukke opp uforutsette hendelser som sykdom,som gjør at vi må gjøre endringer på arbeidsoppgaver og avsvar for å kunne nå fristene. Samarbeid Fordeling av oppgaver og roller i gruppa må gjøres slik at alle sitter igjen med samme kunnskapsnivå fra alle nivåer av prosjektet. Dette for å maksimere læring, og samtidig gi alle like stor følelse av deltakelse. Kommunikasjon innad i gruppa er vesentlig for at alle vet hva hver enkelt skal gjøre og hvordan vi ligger an, dette løser vi ved hjelp av fremdriftsplan, der arbeidsoppgavene er oppført med beskrivelse og hvem som skal utføre den. Vi har også en gruppe på Facebook der kan diskutere og spørre om hjelp og ideer. 3
Konflikt Konflikter og uenigheter i gruppa kan oppstå og vi vil løse dette ved diskusjoner og av avstemninger om det skulle passe. Benyttede teknologier Software: Microsoft Visual Studio 2012 Microsoft Office 2010 Microsoft Visio 2010 Programmeringsspråk: C#.NET o DotNetOpenAuth-biblioteket Systemutviklingsmetode Vi har bestemt oss for å bruke Scrum som systemutviklingsmetode oss fordi det er et agilt rammerverk og vi kan jobbe iterativt, samt at det er praktisk for en liten utviklergruppe. I Scrum nås målet ved å dele opp hele prosjektet i flere små deler, i prioritert rekkefølge. Disse gåes gjennom i iterasjonene/sprintene som vil vare i 1-2 uker. Etter hver sprint evalueres resultet før vi planlegger neste sprint og eventuelt reprioriterer noen av delmålene. Scrum er en smidig utviklingsmetode som blant annet går ut på at man begynner tidlig med programmeringen for å lettere få en oversikt over hva som skal gjøres og et bedre bilde av tidsperspektivet. Løsninger/Alternativer Vi drøftet løsninger med veilederen vår hos Infront, Erling Olaussen, og kom fram til følgende alternativer: Løsning 1: Lage en SSO-løsning der vi bruker bankens innloggingssystem til å logge på, og at Infront stoler på bankens informasjon. Løsning 2: Vi lager en løsning der man logger seg først inn hos Infront og så hos banken, med den innloggingsinformasjonen vi får da, oppretter vi en ny database som all ny autorisering og autorisasjon vil bli sjekket mot. 4
Figur 2 Vår foreslåtte løsning Infront var veldig klare på at de ville benytte Microsoft sin teknologi. For at vårt produkt skal bli benyttet, må det være utviklet med dette. Konklusjon Det finnes i hovedsak to standarder vi kan benytte oss av; SAML og OAuth. Begge er tokenbasert, og begge har eksisterende mekanismer for både autentisering og autorisering. Det ser ut til at prosjektet kan løses både med Oauth og SAML, så vi har foreløpig ikke bestemt oss for hvilken standard som skal brukes. Utgangspunktet er OAuth 2.0, noe som også var foreslått av Erling Olaussen. Dette på grunn av flere punkter: Open Source det finnes ingen open source bibloteker for SAML i.net. Arbeidsgiver har foreløpig ingen planer om å bruke penger på et eget API. Populæritet OAuth brukes av bl.a Yahoo, Google, Facebook og Twitter, altså eksisterende sider der mange allerede har en konto. Sikkerhet I OAuth 2.0 som er den nye standarden foregår all utveksling av data på SSL. 5
Kilder http://goinfront.com/about_infront http://searchfinancialsecurity.techtarget.com/definition/saml http://www.dotnetopenauth.net/documentation/ Figurer Figur 1 Dagens løsning Figur 2 Våres løsning 6