OIOSAML.NET og Umbraco ved Thomas Ravnholt silverbullet.dk

Slides:



Advertisements
Lignende præsentationer
Hej.
Advertisements

Mapning af 1 til mange forbindelser
Mapning af klasser til relationer
Velkommen til Softwarekonstruktion
Introduktion til ASP.NET 2 Michell Cronberg Microsoft MVP, MCAD TechTalks hos Microsoft.
Masterpages/Otto Knudsen 1 Master Pages  Master Pages i ASP.NET 2.0.
07 – Kort om OO Introduktion.
Sikkerhed/Otto Knudsen 1 Sikkerhed  Sikkerhed i ASP.NET  Autentifikation (Authentication)  Autorisation (Authorization)
Sikkerhed/Otto Knudsen 1 Diagnostics  Debug af web-applikationer.
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
SkoleIntra i fremtiden – hvordan kan det integreres med andre tjenester og systemer Ole Windeløv, UNI-C.
Tietgen Skolen Trick med facadeklasse og serialisering ”Trick” – model ”samles” til eet overordnet objekt Alle klasser i model skal have attriutten [Serializable]
Mapning af 1 til mange forbindelser
ASP.NET Cache, State DataGrid og Diagnostics. Agenda – ASP.NET Cache, State og Cookies ( 1 del ) –Cache –Static member –Application State –Session State.
Mød Microsoft – for udviklere & arkitekter Introduktion til ASP.NET 2.0 Jeppe Rørbæk Rambøll Informatik
Masterpages/Otto Knudsen 1 Master Pages Master Pages i ASP.NET 2.0.
Introduktion/Otto Knudsen 1 Overblik WebForms ASP.NET.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Beskrivelses- og analyse-teknikker understøttet af Oracle Designer
Portalanalyse Udfordringer ved iFrame integrationsformen i forbindelse med FOBS løsningen.
Portalintegrationsprojektet Nyt fra brugerstyring ERFA møde 6. februar 2008 Thomas Gundel.
2010.  ¤Opslagssider:  Find denne adresse:   Det officielle Danmarks hjemmeside - Statens Information - især med statistik. Oversigt over alle myndigheder.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Session Når man hoster en WCF Service på ASP.NET website, kan man bruge ASP.NET’s Session.
Kontor for It-infrastruktur og implementering IT og Telestyrelsen IT Arkitekt Søren Peter Nielsen - OISAML Workshop DEL 2 Århus 31. marts 2009.
1 HMAK XMLRelationel model og XMLNOEA / PQC 2005 SQLServer og XML Hent data via URL Generering af xml –Raw –Auto –Explicit Hent data via template Evt.
1/11/2015 1:16:14 AM _Teamwork FOBS POC 2 PIP erfa møde Onsdag d. 5. marts 2008.
Stig Irming-Pedersen ASP.NET MVC Partner Copenhagen Software.
OISAML Workshop Århus 31. marts 2009
Hvad er Liferay? Leading open source portal platfom Udvikles af Liferay.com og sponsorer Releases hver 8 md Stort community omkring Liferay Ca. 4 mio downloads.
Lektion 7 Læsestof: Kopier fra Caranno
8.7 Security: Grant and revoke1 Sikkerhed 8.7 Security and User Authorization in SQL.
Mønstre En lille introduktion. Singleton Tilgå et objekt igennem klassereference i stedet for objektreference.  Overflødiggør referencer til objektet.
INSPIRE samarbejdsmodel v/ Niels H. Broge. Programpunkter Baggrund Videregivelse af data – Rammer og principper Roller og spillere Aftaler om gensidig.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Masterpages/Otto Knudsen 1 Navigation på webstedet Kontroller til navigation mellem siderne på webstedet.
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
Repetition: Introduktion til OOP med C# og .NET
Tina Ratzer Hendes hjemmeside skal indeholde: Kontakt Forhandlerliste
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
Installation af SimpleSAML PHP Identity Provider.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
ADO.NET Databaser SQL Client (SQL server 7 og senere) OleDb (en række incl. jet) ODBC MySql (ekstra driver skal instaleres) Oracle (XML dataset) Samme.
Produkt præsentation Christian Cletus Bjørn Eilertsen.
Portalintegrationsprojektet Nyt fra brugerstyring ERFA møde 5. marts 2008 Thomas Gundel.
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
OPERATIONEL ANALYSE AF WEBADFÆRD OAW – LEKTIONSGANG 8.
Masterpages/Otto Knudsen 1 Temaer (Themes) Stylesheets til ASP.NET web-applikationer.
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
ANALYSE AF WEBADFÆRD - OAW OAW – LEKTIONSGANG 4. ANALYSE AF WEBADFÆRD - OAW SUMMARY, LECTURE 3 (Extended) Common Log File Format Host, Ident, Authuser,
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Fællesoffentlig brugerstyring Brugerstyringssekretariatet i Økonomistyrelsen v/ Ellen Syberg.
Database Some walk through lv/ Figures & some text from: © Pearson Education Limited 1995,
Solution Makers A/S – Gruppe 4 Lars Wolter Nils Martinsen Rasmus Seye Tobias Kjeldsen 1.
WebApi service part 2 Routning og Action Simpel test-client (javascript) Session og Application data.
Identity provider Klar til produktion.
WebApi service x.
Simpel test-client (javascript) Session og Application data
Intern tidsmæssig omkostning
MySQL dat2sem2018Fall Modul 2 – uge 2.
Dat2sem2019 Bornholm Modul 2 – uge 2
Præsentationens transcript:

OIOSAML.NET og Umbraco ved Thomas Ravnholt ravnholt @ silverbullet.dk

Silverbullet A/S Silverbullet, stiftet 2003 IT- rådgivning, projektledelse og implementering Officiel SKI-leverandør Kontorer i Århus og København Thomas Ravnholt I Silverbullet siden firmaets start Tidligere i bl.a. Trapeze, TDC, Mobilethink Kodekarl og teknisk projektleder TR 2

Agenda Umbraco og OIOSAML.NET Udfordringer Realisering Konklusion og spørgsmål TR 3

www.umbraco.org The friendly CMS - ”Our moms can use it” Dansk inititativ Mere 55.000 installationer Web-admin-brugergrænseflade Kodet i .NET Nem at udvide (.NET User Controls, XLST m.m.) - OIOSAML kræver vist ingen introduktion TR 4 4

Mål Autentifikation på Umbraco-site via OIOSAML Autorisation af brugere via OIOSAML Skal kunne kobles på et eksisterende site! Eksistrende site dvs. vi har allerede en flok brugere med brugernavne og med roller TR 5 5

Login scenarie Umbraco site Identity Provider Login Startside Vælg cert Brugeren vælger login Dirigeres til IdP’en og logger ind Sendes tilbage til Umbraco-sitet Min startside TR 6 6

Udfordringer Brugermapning fra OIOSAML til Umbraco/SP Undgå SPAM af Umbraco user-DB Håndtering af ukendte Umbraco-brugere Ingen kontrol over roller fra IdP Sikkerhedsmodel i Umbraco var ændret for nyligt Mapning - OIOSAML-bruger med Umbraco-bruger Umbraco-roller med OIOSAML-xxx Skal fungere for et eksisterende Umbraco-site med masser af bruger SPAM af user-DB Potentielt flere 100.000 brugere - Bevare en lille Umbraco user database Identity Provider (eller IdP) kan have egen rollemodel Umbraco dok - ingen dokumentation, ingen google, kun source code TR 7 7

ASP .NET model ASP .NET 2.0 Membership Abstraktion over brugere og roller Bl.a. API til at logge brugere ind og holde styr på bruger sessioner Anvender MembershipProvider og RoleProvider Custom impl. mulig Mapning - OIOSAML-bruger med Umbraco-bruger Umbraco-roller med OIOSAML-xxx Skal fungere for et eksisterende Umbraco-site med masser af bruger SPAM af user-DB Potentielt flere 100.000 brugere - Bevare en lille Umbraco user database Identity Provider (eller IdP) kan have egen rollemodel Umbraco dok - ingen dokumentation, ingen google, kun source code TR 8 8

Identitetsmapning OIOSAML/IdP Umbraco Hvilken nøgle er bedst Leverer brugeridentiteten (navn, email m.m.) Umbraco Har Members (navn, email) Hvilken nøgle er bedst Ingen fælles unik super ID Ingen fælles User id Cert-email -> Umbraco Member-email Member modellerer en slutbruger IdP navngivning og Umbraco navngivning er oprettet uafhængigt af hinanden Ingen cert-information i Umbraco der evt. kunne bruges TR 9 9

Rollemapning Umbraco har Member Groups OIOSAML (IdP’en) har attributter fra LDAP eller lignende Specifik SAML-attribut mappes til Member Group OIOSAML leverer ikke ekstra attributter når der autentificeres – Query nødvendig Member group modellerer et tilhørsforhold TR 10 10

Autentifikation + autorisation Custom .NET Membership and Role Provider Umbraco Site OIOSAML Velkommen side Membership Provider IdP Vælg cert Email m.m. Membership Provider Attributnavn IdP Attr Query Role Provider Min startside Role Provider Rolle TR 11

Brugere og roller - resume User mapning (autentifikation) email identificerer Umbraco-bruger findes brugeren ikke, oprettes en midlertidig ikke-persisteret bruger findes brugeren, benyttes den eksisterende bruger Rolletildeling (autorisation) En OIOSAML-autentificeret bruger får altid adgang (rollen definerer ”til hvor meget”) Er der ingen roller defineret i IdP gives default Member Group TR 12

Implementering af løsning Custom ASP .NET MembershipProvider Custom ASP .NET RoleProvider Konfiguration i web.config 3 sample User Controls Vis SAML-brugerattributter Vis Umbraco User-attributter Vis Umbraco Member Group TR 13 13

web.config Umbraco .NET providers <roleManager enabled="true" defaultProvider="SamlRoleProvider">…. <membership defaultProvider="SamlMembershipProvider“ >…… Default Member Group <setting name="DefaultMemberGroup" serializeAs="String“> <value>Partner</value> </setting> IdP rolleattribut <setting name="SamlRole" serializeAs="String“> <value>urn:oid:2.5.4.5</value> </setting> Konfigurering sker via web-config Umbraco RoleProvider og MembershipProvider er konfigureret via Umbraco Erstattes af SamlRoleProvider og SamlMembershipProvider Den MemberGroup/Rolle brugere default skal have defineres Den attribut i SAML-tokenet der skal anvedes til rollemapning er angivet TR 14 14

RoleProvider public class SamlRoleProvider : UmbracoRoleProvider { public override string[] GetRolesForUser(string username) { var sa = new string[] { IdPSamlUtilLib.Properties.Settings.Default.DefaultMemberGroup }; if (!(Helper.IsSamlSession && Helper.SessionUserName.ToLower() == username.ToLower())) { sa = base.GetRolesForUser(username); } else { var v = Helper.QueryAttributeValue (IdPSamlUtilLib.Properties.Settings.Default.SamlRole); if (!string.IsNullOrEmpty(v)) { sa = new string[] { v }; } return sa; TR 15

Hent SAML-attributter class Helper { const string emailalias = "urn:oid:0.9.2342.19200300.100.1.3”; public static string GetEmailFromSaml() { return GetAttributeValue(emailalias); } public static string GetAttributeValue(string samlid) { if (!IsSamlSession) return ""; var principal = SamlPrincipal.Identity as dk.nita.saml20.identity.Saml20Identity; string val = null; if (principal != null) { val = (from p1 in principal where p1.Name == samlid from a in p1.AttributeValue select a).FirstOrDefault(); return val; } …… TR 16

OIOSAML.NET - pros/cons Overvejende positiv oplevelse God API-dokumentation Let at integrere til Ting der kan forbedres Der returneres altid til en specifik side efter autentifikation Installationsvejledning baseret på SP-samples TR 17

Softwarebørsen Download fra http://www.softwareborsen.dk/projekter/software center/brugerstyring/saml-2-0-i-umbraco Koden viser bl.a. hvordan MembershipProvider og RoleProvider kan implementeres OIOSAML-attributter hives ud af sessionen Der laves attribut-queries mod Idp’en OIOSAML-attributter dvs. f.eks email, common name osv fra certifikatet TR 18 18