14.4 tout ce que vous voulez savoir sur l'authentification par revendications
1. Tout ce que vous voulez savoir sur l'authentification par
revendications de SharePoint 2010... Claims? Vous avez dit Claims?
Nicolas Georgeault
Architecte SharePoint Senior, MVP SharePoint Server
Public Consulting Group
2. Qui suis-je?
Nicolas Georgeault
MVP3y SharePoint Server
Architecte SP chez Public
Consulting Group Canada
Consultant & Speaker
ngeorgeault@club-sharepoint.fr
http://ngeorgeault.club-sharepoint.fr
http://www.facebook.com/nicolas.georgeault
http://twitter.com/ngeorgeault
http://www.slideshare.com/ngeorgeault
Passionné de Horse-Ball
www.fihb-horseball.org
3. Le club SharePoint
Point de rencontre francophone
Agrégation de contenu en Français
Blogues,
Articles,
Evènements …
Groupe d’échange sur les usages et les bonnes pratiques
5 a 7 des communautés Microsoft
Dernier jeudi du mois à Montréal
?? A Québec
http://www.club-sharepoint.fr
http://www.ugsf.fr
5. Références et Crédits
Plan Authentication Methods
(SharePoint Server 2010)
http://technet.microsoft.com/en-us/library/cc262350.aspx
A Guide to Claims-Based Identity and Access Control
(Microsoft Patterns and Practices)
http://claimsid.codeplex.com/
Steve Peschka
http://blogs.technet.com/b/speschka/archive/2010/06/12/migratin
g-a-web-application-from-windows-classic-to-windows-claims-in-
sharepoint-2010.aspx
http://msdn.microsoft.com/en-us/library/hh147183.aspx
Azure ACS Integration
http://blogs.objectsharp.com/cs/blogs/steve/archive/2011/04/21/w
indows-azure-access-control-services-federation-with-
facebook.aspx
http://www.7388.info/index.php/article/studio/2011-07-
29/20983.html
6. Références et Crédits (suite)
SelfSTS and Vittorio Bertocci
http://archive.msdn.microsoft.com/SelfSTS
http://blogs.msdn.com/b/vbertocci/archive/2010/08/23/selfsts-
when-you-need-a-saml-token-now-right-now.aspx
Paul Schaeflein
http://www.schaeflein.net/blog/Lists/Posts/Post.aspx?ID=4
Wictor Wilén
http://www.wictorwilen.se/Post/Visual-guide-to-Azure-Access-
Controls-Services-authentication-with-SharePoint-2010-Index-
Post.aspx
7. Agenda
Caractéristiques d'une Application sécurisée
Options de l'authentification SharePoint 2010
Aperçu de la terminologie/technologie des revendications
Démos
Application Web SharePoint 2010 avec FBA (Authentification Basée
sur les Formulaires)
Ajout des fournisseurs d'identité de confiance Azur basés sur ACS
“Pièges”
Problèmes habituels lors de l’implémentations de revendications
Problèmes lors des migrations de MOSS vers SharePoint 2010
Quand les revendications se comportent mal…
Recommandations
8. Caractéristiques d'une Application sécurisée
L'authentification est le processus de validation de
l'identité d'un utilisateur
SharePoint n’effectue jamais d'authentification
Si l'invite login apparait de manière permanente,
pensez a un problème d'authentification!
9. Caractéristiques d'une Application sécurisée
L'autorisation est le processus qui détermine les
ressources, caractéristiques, etc. auxquels un
utilisateur peut avoir accès
Objet SPUser – directeur de la sécurité
Si vous voyez des erreurs « Accès refusé », pensez a
des problèmes d’autorisation !
10. Options de l'authentification SharePoint 2010
La plus grande décision de votre vie !
Conseils TechNet:
“« Pour les nouvelles implémentations de SharePoint Server
2010, vous devriez considérer l'authentification basée sur les
revendications.”
11. Options de l'authentification SharePoint 2010
Authentification basée sur les revendications
(Jetons)
Authentification Windows: NTLM/Kerberos, Basique
Authentification basée sur les formulaires (Fournisseur
d'appartenances ASP.NET et gestionnaire de rôles)
Fournisseurs d'identité fiables
Page de connexion personnalisé
Mode Authentification Classique (“Old School”)
Authentification Windows (NTLM/Kerberos) seulement
Les deux modes connectent les utilisateurs
authentifies aux objets SPUser (entités de sécurité)
12. Concepts d'identité basé sur les revendications
Qu’est-ce qu’une revendication?
Un élément d'information décrivant un utilisateur
Nom
Adresse de Courriel
Appartenance à un rôle/groupe
Âge
Date d'embauche
A quelle revendications puis-je faire
confiance, et quelles revendications affectent
mes choix d’autorisation?
13. Terminologie de l’identité basée sur les revendications
Jeton
Ensemble sérialisé de revendication au sujet d’un utilisateur
authentifie, signe numériquement par un fournisseur de jeton.
Service de Jeton de Sécurité – Fournisseur d’identité
(IP-STS)
Valide les informations d'identification utilisateur
Construit, signes et émet des jetons contenant des
revendications
Partie utilisatrice (RP)
Applications qui prend des décisions d'autorisation basées
sur les revendications (SharePoint 2010)
14. Le paradigme des revendications
Séparation de la logique de l'authentification, de
l’autorisation et de la logique de personnalisation
Les applications ne doivent pas déterminer qui est ou n’est
pas l'utilisateur. Elles reçoivent des demandes qui identifient
cet utilisateur.
Parfait pour les développeurs qui souhaitent rarement
travailler avec identité et les problèmes qui y sont attaches !
(Gouvernance, Gestion, …)
Fournit un moyen commun pour les application
d’acquérir les informations d'identité dont elles ont
besoin sur les utilisateurs
15. La caverne aux merveilles
1. “Je souhaiterai accéder au document
de budget.”
2. “Pas avant que vous ne m’ayez
prouve que vous faite bien partie du
groupe Finance.” “Give me the Magic
Word! ;)”
3. “Voici mon IDentifiant utilisateur et
mon mot de passe.”
4. “Bonjour, Aladin. Je vois que vous
êtes dans le groupe des finances.
Voici un jeton, que vous pouvez
utiliser.”
5. “Je souhaiterai accéder
au document de budget,
et voici la preuve
que je peux bien y accéder!”
SharePoint 2010
16. Technologies d'identité basée sur les revendications
WS-Trust, WS-Federation, SAML
Demander et recevoir des jetons
Représentation XML de revendications
Ces technologies émergentes sont dans l’air
depuis un certain temps
Leur utilisation dans l’identification basée sur les
revendications représente une nouvelle approche pour
la gestion de l'identité dans les applications
Beaucoup de potentiel dans les environnements de
travail
Services de Fédération Active Directory (ADFS), external
LDAP, etc.
Énorme potentiel comme nous nous déplaçons vers le
nuage
Azure ACS: Facebook, Google, Windows Live ID, etc.
18. La Web Part Afficheur des revendications
Visual Web Part
Code behind:
IClaimsPrincipal claimsPrincipal = Page.User as IClaimsPrincipal;
IClaimsIdentity claimsIdentity = (IClaimsIdentity) claimsPrincipal.Identity;
GridView1.DataSource = claimsIdentity.Claims;
Page.DataBind();
http://blogs.pointbridge.com/Blogs/nielsen_travis/Pages/Post.aspx?_ID=32
19. SharePoint 2010 et le FBA
Globalement semblable à la configuration du
FBA pour MOSS, à quelques exceptions près:
Le fournisseur d'authentification n'a pas besoin
d'être mappé à une zone distincte
Un Web.config supplémentaires pour modifier:
C:Program FilesCommon FilesMicrosoft SharedWeb
Server Extensions14WebServicesSecurityToken
Ajouter des entrées pour la chaîne de connexion, le
fournisseur d'appartenances, le gestionnaire de rôles
Mêmes modifications pour l’Administration Centrale et
l’Application Web
20. Page de connexion
Permet aux utilisateurs de choisir comment ils souhaitent être
authentifier lorsque plusieurs fournisseurs sont configurés
(authentification mixte)
Des opportunités de personnalisation
http://www.orbitone.com/en/blog/archive/2010/06/23/sharepoint-
2010-mixed-authentication-automatic-login.aspx
http://blogs.msdn.com/b/brporter/archive/2010/05/10/temp.aspx
22. Ajouter le support Facebook
Créer un compte sur AppFabric Labs
https://portal.appfabriclabs.com/Default.aspx
Utilisez Facebook Developer application pour créer votre
nouvelle application personnelle
23. Ajouter le support Facebook
Notez les valeurs App ID et App Secret
Attribuer une URL « Politique de confidentialité »
Accorder des autorisations à générer le jeton accès
Choisissez « Web » dans le menu de gauche, entrez
des valeurs pour l'URL du Site et de domaine du Site
Basé sur votre compte AppFabric Labs / Azure
24. Ajouter le support Facebook
Générer un certificat auto-signé
C:Program FilesMicrosoft Office
Servers14.0Tools>MakeCert.exe -r -pe -n "CN=www.club-
sharepoint.fr" -sky exchange -ss my
Pour le développement seulement!
A ne pas faire en production!
25. Ajouter le support Facebook
Téléverser le Certificat de signature des jetons
26. Ajouter le support Facebook
From Azure ACS, choose Add Identity Provider, then choose
Facebook application
Enter Application ID, Application secret, and Application
permissions
27. Ajouter le support Facebook
Configurer les paramètres de l’application Cliente
34. Quelques “Pièges” des revendications
Problèmes classiques rencontres lors de
l’implémentation des revendications
Le robot de recherche nécessite NTLM dans la
zone qu'il utilise
Le “Sélecteur de personnes” est plus qu’un “
éditeur d'expression ” pour les revendication
Possibilité de code personnalisé (fournisseur de
revendications personnalisées)
Profils utilisateur
User Profiles
Connexion LDAP ou BCS au magasin d'authentification
Intégration de client Office (2007 SP2+, 2010)
IE 8 et +: Sites de confiance
35. Témoignage de la vie réelle
“Après la migration de
revendications dans SharePoint
2010, la plupart de nos utilisateurs
ont pu se connecter de temps en
temps.”
—Un administrateur système decu
36. Quelques “Pièges” des revendications
Migration de MOSS vers SharePoint 2010
Migrer les utilisateurs FBA
$wa = get-SPWebApplication $WebAppName
$wa.MigrateUsers($true)
Portalsuperuser et Portalsuperreader doivent
être mises à jour afin de refléter le format codé en
revendications
$wa.Properties["portalsuperuseraccount"] = "i:0#.w|domainapppool"
$wa.Properties["portalsuperreaderaccount"] = "i:0#.w|domainapppool"
$wa.Update()
Vous devez migrer Tous les fournisseurs de MOSS
vers 2010
cad., NTLM et FBA si les deux existaient avant la
migration
37. Quand les revendications se comportent mal…
Affichage plus ou moins “Drole” des noms
d’utilisateurs
i:0#.w|SHRPNTAdministrator
i:0#.f|CustomMembershipProvider|username
i:0#.t|selfsts|test@contoso.com
i: Microsoft.SharePoint.Administration.Claims.
SPClaimsAuthMembershipProvider (Web.config)
Fournisseurs d’identite: Windows, Forms, Trusted
38. Quand les revendications se comportent mal…
Set DisplayName property of SPUser
$user = Get-SPUser -Web http://abc.shrpnt.loc
-Identity "i:0#.f|CustomMembershipProvider|username"
$user.DisplayName = "John Doe"
$user.Update()
39. Quand les revendications se comportent mal…
Problèmes d'expiration de session avec les
revendications SAML
Les utilisateurs peuvent revenir sur la page des heures
plus tard sans avoir à se connecter nouveau
Par défaut, SharePoint crée un cookie FedAuth (écrit
sur le disque) et non un cookie de Session
$sts = Get-SPSecurityTokenServiceConfig
$sts.UseSessionCookies = $true
$sts.Update()
Jeu/mise à jour de la propriété TokenLifetime(minutes)
Set-ADFSRelyingPartyTrust -TargetName "SPS 2010 ADFS"
-TokenLifetime 5
40. Quand les revendications se comportent mal…
Redirection continue à la page de connexion
Cela peut se produire lorsque le TokenLifetime
est inférieure à la valeur du parametre
LogonTokenCacheExpirationWindow
La valeur par défaut de
LogonTokenCacheExpirationWindow dans le STS
SharePoint 2010 is est de 10 minutes
$sts = Get-SPSecurityTokenServiceConfig
$sts.LogonTokenCacheExpirationWindow =
(New-TimeSpan -minutes 4)
$sts.Update()
41. Quand les revendications se comportent mal…
Vous allez à la page de connexion, vous
entrez des informations d'identification
valides, vous appuyez sur le bouton
«connexion», pour être… finalement redirigé
vers la page de connexion
Vérifiez les journaux ULS !
Peut être une expiration du jeton
Pout être quelque bien autre chose…
43. Recommendations
Restez avec le Mode d’authentification classique si
vous déployez SharePoint dans un environnement
Active Directory « simple »
Surtout si des contrôles de sécurité stricts sont en place et
qu’ils sont hors de votre contrôle
Surtout si vous migrez uniquement de l'authentification
Windows depuis MOSS
Et aussi car une fois en mode « revendications »… Vous ne
pourrez pas revenir en arrière !
44. Recommendations
Si vous devez utiliser les revendications pour votre
Extranet, essayez de réduire au minimum le nombre
d'en-têtes de zones/hôte utilisé
La zone par Défaut devrait en être mieux sécurisée
Avoir une bonne « boîte à outils de dépannage »
Lecteur de journal ULS
Fiddler
Claims Viewer web part
45. Références et Crédits (suite)
Claims Viewer web part
http://blogs.pointbridge.com/Blogs/nielsen_travis/Pages/Post.aspx
?_ID=32
Fiddler
http://www.fiddler2.com/fiddler2/
SharePoint ULS Log Viewers
http://sharepointlogviewer.codeplex.com/
http://ulsviewer.codeplex.com/
Transparent Login with Mixed Authentication
http://www.orbitone.com/en/blog/archive/2010/06/23/sharepoint-
2010-mixed-authentication-automatic-login.aspx
Claims opens up all the doors to you…FBA, Trusted Identity Providers (external-outside world)
Identity Provider-Security Token Service (IP-STS)Relying party (RP)
WS-Trust: how to request and receive security tokensWS-Federation: architecture for cleanseparation between trust mechanisms, security tokens formats, and the protocols for obtaining tokensSAML: XML vocabulary used to represent claims in an interoperable wayWS-Trust est une spécification WS-* de la norme OASIS qui fournit des extensions à WS-Security, traitant spécifiquement de délivrer, renouveler et valider des jetons de sécurité, ainsi que les moyens de mettre en place, évaluer la présence et négocier les relations de confiance entre les participants à un échange de message sécurisé.WS-Federation (également appelé chez certains éditeurs « Web Services FederationLanguage », ou « WS-Fed ») est une spécification qui définit des mécanismes de fédération d'espaces de confiance hétérogènes. Elle offre la possibilité de fédérer des domaines de sécurité et permet d'établir des contextes de sécurité entre des applications utilisant des spécifications de sécurité distinctes. Elle a été écrite par BEA Systems, BMC Software, CA, Inc., IBM, Layer 7 Technologies, Microsoft, Novell et VeriSign[1]. Exemple: les mécanismes d'authentification Kerberos et X.509
Go to Central Administration and provision a simple new web application using Claims. Log in with an NTLM-based domain account.
Authentificationbasee sur les formulaires
Go to Central Administration and provision a simple new web application using Claims. Log in with an NTLM-based domain account.
Configure TIP through PowerShell.
As you plan custom claims providers for use with People Picker in your SharePoint solution, consider the following questions:What will be the source of the values for the users and roles that will be displayed in People Picker query results?What claim data do you want to resolve in the Select People and Groups dialog box?You don’t necessarily need to go through the API or PowerShell, if you have a connection to an LDAP store or a BCS connection to your auth store. You can also map the properties yourself and leave it to the User Profile Synchronization service. That being said, if you’re dependent on BCS then you’ll also need to have SharePoint Enterprise Server license which isn’t available to all customers.Once you’re done you should be able to visit any of the users in your site collection and see their “Name” property set to something that is less likely to confuse your user base. Once the value is set, it helps to make sure that it doesn’t get stomped with any User Profile Synchronization (UPS) that may be in place in your farm.