Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

OIOSAML.NET og Umbraco ved Thomas Ravnholt silverbullet.dk

Lignende præsentationer


Præsentationer af emnet: "OIOSAML.NET og Umbraco ved Thomas Ravnholt silverbullet.dk"— Præsentationens transcript:

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

2 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

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

4 www.umbraco.org The friendly CMS - ”Our moms can use it”
Dansk inititativ Mere 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

5 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

6 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

7 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 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

8 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 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

9 Identitetsmapning OIOSAML/IdP Umbraco Hvilken nøgle er bedst
Leverer brugeridentiteten (navn, m.m.) Umbraco Har Members (navn, ) Hvilken nøgle er bedst Ingen fælles unik super ID Ingen fælles User id Cert- -> Umbraco Member- 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

10 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

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

12 Brugere og roller - resume
User mapning (autentifikation) 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

13 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

14 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: </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

15 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

16 Hent SAML-attributter
class Helper { const string alias = "urn:oid: ”; public static string Get FromSaml() { return GetAttributeValue( alias); } 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

17 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

18 Softwarebørsen Download fra 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 , common name osv fra certifikatet TR 18 18


Download ppt "OIOSAML.NET og Umbraco ved Thomas Ravnholt silverbullet.dk"

Lignende præsentationer


Annoncer fra Google