Upload
andree-quentin
View
124
Download
0
Embed Size (px)
Citation preview
IdP ShibbolethRP Sharepoint, OWA, .Net
Jean Marie THIA
Journée Fédération – 24 janvier 2011
As an application designer or developer, imagine a world where you don't have to worry about authentication. Imagine instead that all requests to your application already include the information you need to make access control decisions and to personalize the application for the user.
Preface of : A guide to claims-based Identity and Access Control (http://msdn.microsoft.com/en-us/library/ff359103(lightweight).aspx)
Journée Fédération – 24 janvier 2011
Agenda
Intégration sans revendications◦ADFS v1x◦shib4Net / shib4moss
Les revendications◦Revendication (Claim)◦WIF / STS / ADFS
Interopérabilité◦ADFS◦WIF
ConclusionQuestions
Intégrationsans claims
Journée Fédération – 24 janvier 2011
ADFS v1
Patch nécessaire pour IdP 1.3Patch non préconisé par la fédération.
Ne pas utiliser
Journée Fédération – 24 janvier 2011
shib4net / shib4moss
Couche de mapping entre SP et .NetSP shibboleth pour IIS
Sourcesup.cru.fr/shib4net
Journée Fédération – 24 janvier 2011
Shib4net - expérience
Non utilisé à l’UPMCDes questions de la part de Novell et
SWITCHProjet d’utilisation pour EDUGAIN
◦Création de l’utilisateur dans MOSS◦Creation de l’utilisateur dans AD
Windows Identity Foundation
aka WIF
Journée Fédération – 24 janvier 2011
Revendication
Un ensemble d’informations
Dans un jeton de sécuritéSigné par un émetteur
L’équivalent des attributs Shibboleth
Web App/Service
UPN :Roles :Email :
GivenName :LastName :isOver21 :
thiaPM, developper, [email protected] MarieThiaTrue
Journée Fédération – 24 janvier 2011
Revendications : modèle objet
Toutes les propriétés sont transmises sous forme de chaîne de caratctères
Le type de la valeur est défini par la proprité ValueType Microsoft.IdentityModel.ClaimValueTypes est une énumération de ces valeurs (date, datetime, boolean, integer, etc.)
public class Claim { // some members omitted for brevity public virtual string ClaimType { get; } public virtual string Value { get; } public virtual string ValueType { get; } public virtual IDictionnary<string, string> Properties; public virtual string Issuer { get; } public virtual string OriginalIssuer { get; } public virtual string IClaimIdentity Subject { get; }}
IClaimsPrincipal
IClaimsIdentityIClaimsIdentity
ClaimClaimType = “Name”
Value = “Bob”Issuer = “WLID”
Subject
ClaimClaimType = “Name”
Value = “Bob”Issuer = “WLID”
Subject
ClaimClaimType = “Name”
Value = “Bob”Issuer = “WLID”
Subject
Journée Fédération – 24 janvier 2011
ADFS
A Secure Token Service for ADHandles authentication,Extracts, transforms claimsWith rule and
policy engineBased on WIF
Interopérabilitéavec claims
Journée Fédération – 24 janvier 2011
ADFS v2
Compatible SAML 2◦Adaptateur de protocole pour WIF
Protocole SAML 2.0◦IdP / SP Lite◦GSA 1.5
Indispensable avec Shibboleth 2Interopérabilité : Sun, Oracle, CA, Novell,
Ping Identity
Journée Fédération – 24 janvier 2011
ADFS v2 - Guides
Sharepoint 2010◦Federated Collaboration with Shibboleth 2.0 and
SharePoint 2010 Technologies ◦ http://technet.microsoft.com/en-us/library/adfs2-step-by-step-guides
%28WS.10%29.aspx
Outlook Web Access 2010◦Exposing OWA 2010 with AD FS 2.0 to other
organizations◦ http://www.microsoft.com/france/interop/ressources/documents.aspx
In Common◦AD FS 2.0 Step-by-Step Guide: Federation with
Shibboleth 2 and the InCommon Federation
Journée Fédération – 24 janvier 2011
.Net
IsInRole fonctionne toujours◦Un mapping à déclarer dans web.config◦Compatibilité avec l’existant
Journée Fédération – 24 janvier 2011
.Net : Revendication
IClaimsIdentity id =((IClaimsPrincipal)Thread.CurrentPrincipal).Identities[0];
// you can use a simple foreach loop to find a claim...string usersEmail = null;foreach (Claim c in id.Claims) { if (c.ClaimType == System.IdentityModel.Claims.ClaimTypes.Email) { UsersEmail = c.Value; break; }}
// you can also use LINQ to find a claimstring usersFirstName = (from c in id.Claims where c.ClaimType == System.IdentityModel.Claims.ClaimTypes.GivenName select c).First().Value;
Journée Fédération – 24 janvier 2011
Conclusion
Plus d’écueil techniquesolution mature
◦WIF non SAML 2◦Guides d’interopérabilité
Principale difficulté◦Les autorisations
Journée Fédération – 24 janvier 2011
Quelques liens
Patterns & Practices : A guide to claims-based to Identity and Access Control http://msdn.microsoft.com/en-us/library/ff423674.aspx
MSDNWIF : http://msdn.microsoft.com/en-us/library/ee748484.aspxIdM : http://msdn.microsoft.com/en-us/security/aa570351.aspx
Technethttp://technet.microsoft.com/fr-fr/library/adfs2(v=WS.10).aspx
Microsoft connecthttps://connect.microsoft.com/site642
BlogsGeneva team - http://blogs.msdn.com/card/Dominick Baier - http://www.leastprivilege.com Vittorio Bertocci - http://blogs.msdn.com/vbertocci/
Journée Fédération – 24 janvier 2011
Contributions
Cas4net◦http://sourcesup.cru.fr/cas4net/◦http module for ASP.NET◦IIS7 http module for CAS
Shib4net◦http://sourcesup.cru.fr/shib4net/
Questions [email protected]
Merci de votre attention