Procédure pas à pas sur les revendications : création de l’authentification par formulaire pour les applications Web SharePoint 2010 basées sur des revendications à l’aide de fournisseurs d’appartenances et de rôles personnalisés
Résumé : découvrez comment créer une authentification basée sur les formulaires pour des applications Web basées sur les revendications à l’aide d’un fournisseur d’appartenances et de rôles personnalisé.
Dernière modification : vendredi 18 janvier 2013
S’applique à : Business Connectivity Services | Open XML | SharePoint Designer 2010 | SharePoint Foundation 2010 | SharePoint Online | SharePoint Server 2010 | Visual Studio
Dans cet article
Vue d’ensemble de l’authentification d’applications Web basées sur des revendications à l’aide de fournisseurs d’appartenances et de rôles personnalisés
Étape 1 : examen du code du fournisseur d’appartenances et de rôles
Étape 2 : génération et déploiement du fournisseur d’appartenances et de rôles
Étape 3 : création d’une application Web SharePoint
Étape 4 : configuration du fournisseur d’appartenances et de rôles pour l’application Web SharePoint
Étape 5 : test de l’authentification par formulaire
Étape 6 : affichage des revendications
Conclusion
Ressources supplémentaires
Auteur : Andy Li, Microsoft Corporation
Contenu
Vue d’ensemble de l’authentification d’applications Web basées sur des revendications à l’aide de fournisseurs d’appartenances et de rôles personnalisés
Étape 1 : examen du code du fournisseur d’appartenances et de rôles
Étape 2 : génération et déploiement du fournisseur d’appartenances et de rôles
Étape 3 : création d’une application Web SharePoint
Étape 4 : configuration du fournisseur d’appartenances et de rôles pour l’application Web SharePoint
Étape 5 : test de l’authentification par formulaire
Étape 6 : affichage des revendications
Conclusion
Ressources supplémentaires
Code à télécharger : ClaimsExample-UsingCustomMembershipandRoleProvider(éventuellement en anglais)
Vue d’ensemble de l’authentification d’applications Web basées sur des revendications à l’aide de fournisseurs d’appartenances et de rôles personnalisés
Dans cette procédure pas à pas, vous créez une application Web basée sur des revendications à l’aide d’un fournisseur d’appartenances et de rôles personnalisé en guise de fournisseur d’authentification.
L’authentification basée sur les formulaires offre une gestion des identités personnalisées dans Microsoft SharePoint 2010 en implémentant un fournisseur d’appartenances, qui définit les interfaces permettant d’identifier et d’authentifier les utilisateurs, et un gestionnaire de rôles, qui définit les interfaces pour le regroupement des utilisateurs en groupes logiques ou rôles.
Cet article suppose que vous êtes familiarisé avec l’authentification par formulaire. Pour plus d’informations sur l’authentification par formulaire, voir Forms Authentication in SharePoint Products and Technologies (Part 1): Introduction.
Étape 1 : examen du code du fournisseur d’appartenances et de rôles
Dans un premier temps, examinez le code du fournisseur d’appartenances et de rôles.
Pour examiner le code du fournisseur d’appartenances et de rôles
Ouvrez le projet ContosoProviders inclus dans le téléchargement d’exemple de code qui accompagne cet article : Code à télécharger : ClaimsExample-UsingCustomMembershipandRoleProvider(éventuellement en anglais).
Notes
Ce projet contient la définition des fournisseurs d’appartenances et de rôles à utiliser pour l’application Web basée sur des revendications.
Ouvrez le fichier Members.cs.
Notes
Le fournisseur d’appartenances est défini par ContosoProviders.Members. UserDB représente un tableau de chaînes qui simule la base de données utilisateur.
private static string[] UserDB = { "user1:user1@contoso.com", "user2:user2@contoso.com", "user3:user3@contoso.com", "user4:user4@contoso.com", "user5:user5@contoso.com", "user6:user6@contoso.com" };
Examinez les deux méthodes suivantes.
public override MembershipUser GetUser(string username, bool userIsOnline) public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
Ces deux méthodes permettent d’obtenir l’objet MembershipUser basé sur le nom d’utilisateur.
Examinez les deux méthodes suivantes.
public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords) public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords)
Ces deux méthodes sont appelées par le sélecteur de personnes SharePoint lorsque l’utilisateur essaie de rechercher ou de résoudre des noms d’utilisateur.
Examinez la méthode ValidateUser.
public override bool ValidateUser(string username, string password)
Cette méthode permet de valider les informations d’identification de l’utilisateur. Dans cet exemple de fournisseur d’appartenances, nous vérifions simplement l’existence de l’utilisateur (nous ne vérifions pas le mot de passe).
Notes
Dans un environnement de production, vous devez vérifier le mot de passe de l’utilisateur. Cet exemple n’est fourni qu’à des fins de démonstration et ne doit pas être utilisé dans un environnement de production.
Ouvrez le fichier Roles.cs :
Le fournisseur de rôles est défini par ContosoProviders.Roles.
Le tableau UserRoleDB et le tableau RoleDB permettent de simuler le magasin d’utilisateurs et de rôles.
private static string[] UserRoleDB = { "user1:Role1:Role2:Role3", "user2:Role2:Role4", "user3:Role3:Role1:Role4", "user4:Role4:Role1:Role2", "user5:Role2:Role1", "user6:Role1:Role4" }; private static string[] RoleDB = { "Role1", "Role2", "Role3", "Role4" };
La propriété RoleExists (nom de rôle de type string) permet de rechercher ou de résoudre les noms de rôle.
Notes
Les caractères génériques ne sont pas pris en charge pour les rôles.
SharePoint appelle la méthode GetRolesForUser pendant le processus d’ouverture de session afin d’obtenir les informations de revendication (rôle) de l’utilisateur.
Étape 2 : génération et déploiement du fournisseur d’appartenances et de rôles
Ensuite, générez et déployez le fournisseur d’appartenances et de rôles.
Pour générer et déployer le fournisseur d’appartenances et de rôles
Cliquez avec le bouton droit sur le projet ContosoProviders, puis cliquez sur Régénérer.
Déployez ContosoProviders.dll sur le Global Assembly Cache.
Étape 3 : création d’une application Web SharePoint
Ensuite, créez l’application Web SharePoint.
Pour créer une application Web SharePoint
Accédez à la page Administration centrale de SharePoint 2010.
Dans la section Gestion des applications, cliquez sur Gérer les applications Web.
Dans le Ruban serveur, cliquez sur Nouveau.
Dans la boîte de dialogue Créer une application Web, sous Authentification, cliquez sur Authentification par revendications.
Dans la section Site Web IIS, sous Créer un nouveau site Web IIS, affectez au champ Nom la valeur SharePoint – Authentification par formulaire personnalisée.
Affectez au numéro de port la valeur 500.
Dans la section Types d’authentification basée sur les revendications, procédez comme suit :
Cliquez sur Activer l’authentification par formulaire.
Désactivez les autres modes d’authentification.
Dans les champs du fournisseur d’appartenances et du gestionnaire de rôles, tapez les noms suivants tels qu’indiqués, en utilisant uniquement des lettres minuscules :
Nom du fournisseur d’appartenances ASP.NET : custommembershipprovider
Nom du gestionnaire de rôles ASP.NET : customroleprovider
Nous n’avons pas encore configuré les fournisseurs d’appartenances et de rôles ; nous allons les créer au cours des étapes suivantes.
Modifiez l’URL comme suit : http://intranet.contoso.com:500
Sous Pool d’applications, sélectionnez Utiliser le pool d’applications existant : SharePointAppPool.
Dans la section Nom de la base de données et authentification, nommez la base de données WSS_Content_500.
Conservez les autres paramètres par défaut.
Cliquez sur OK pour créer l’application Web.
Étape 4 : configuration du fournisseur d’appartenances et de rôles pour l’application Web SharePoint
Vous devez modifier trois fichiers web.config :
Administration centrale : pour autoriser la sélection des collections de sites.
Service d’émission de jeton de sécurité : pour autoriser la connexion et pour l’émission des jetons.
Application Web avec authentification par formulaire : pour autoriser la sélection sur l’application Web locale.
Pour configurer le fournisseur d’appartenances et de rôles pour l’application Web SharePoint
Dans le fichier web.config pour le site Web de l’application Web avec authentification par formulaire personnalisée, ajoutez l’entrée suivante à l’élément Providers de la balise <membership>.
<add name="custommembershipprovider" type="ContosoProviders.Members, ContosoProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=26fc91a86676aa9f" />
Une fois que vous avez ajouté la valeur pour le fournisseur, votre fichier web.config doit ressembler à la figure 1.
Figure 1. Valeur des fournisseurs pour l’application Web avec authentification par formulaire personnalisée
Ajoutez l’élément de gestionnaire de rôles suivant à l’élément Providers, sous la section <RoleManager>, comme l’illustre la figure 2.
<add name="customroleprovider" type="ContosoProviders.Roles, ContosoProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=26fc91a86676aa9f" />
Figure 2. Valeur du gestionnaire de rôles pour l’application Web avec authentification par formulaire personnalisée
Répétez les étapes précédentes pour le site Web Administration centrale et le site Web SecurityTokenServiceApplication.
Notes
Le fichier web.config pour le site Web de service d’émission de jeton de sécurité SharePoint ne contient pas la section <system.web>. Vous devez ajouter la section manuellement. Pour un exemple de fichiers web.config, voir Code à télécharger : ClaimsExample-CreateFormsBasedAuthentication(éventuellement en anglais), qui accompagne l’article Procédure pas à pas sur les revendications : création de l’authentification par formulaire pour les applications Web SharePoint 2010 basées sur des revendications à l’aide de fournisseurs d’appartenances et de rôles SQL ASP.NET.
Étape 5 : test de l’authentification par formulaire
Ensuite, testez l’authentification par formulaire.
Pour tester l’authentification par formulaire
Sur le site Web Administration centrale, sous Gestion des applications, cliquez sur Créer une collection de sites.
Dans la liste déroulante Application Web, sélectionnez l’application Web avec authentification par formulaire personnalisée, http://intranet.contoso.com:500.
Figure 3. Configuration de l’application Web avec authentification par formulaire personnalisée
Attribuez au titre la valeur Site avec authentification par formulaire personnalisée, comme l’illustre la figure 3.
Dans le champ Nom d’utilisateur, cliquez sur l’icône Parcourir pour rechercher l’utilisateur que nous avons ajouté précédemment.
Sélectionnez Authentification par formulaire dans le volet de gauche, tapez user1 dans la zone de recherche, puis cliquez sur le bouton de recherche, comme l’illustre la figure 4.
Figure 4. Recherche de user1 à l’aide du sélecteur de personnes
Dans la zone des résultats, double-cliquez sur user1. Cette opération active la page de création de collection de sites.
Cliquez sur OK pour créer la collection de sites.
Accédez à http://intranet.contoso.com:500. Une page de connexion doit apparaître, comme l’illustre la figure 5.
Figure 5. Page de connexion
Tapez user1 comme information d’identification du nom d’utilisateur, puis cliquez sur Connexion. (Vous pouvez choisir ce que vous voulez comme mot de passe.)
s connecté, vous pouvez constater que le nom d’utilisateur dans le coin supérieur droit apparaît sous le nom user1, comme l’illustre la figure 6.
Figure 6. Nom de l’utilisateur en haut à droite
Étape 6 : affichage des revendications
Ensuite, affichez les revendications.
Pour afficher les revendications
Créez un composant WebPart. Remplacez la fonction RenderContent par le code suivant (reportez-vous également au fichier FBAClaimsViewer.cs. inclus dans le téléchargement qui accompagne cet article).
Notes
Vous devrez peut-être ajouter une référence à Microsoft.IdentityModel.dll et ajouter l’espace de noms Microsoft.IdentityModel.Claims.
protected override void RenderContents(HtmlTextWriter writer) { try { IClaimsIdentity currentIdentity = System.Threading.Thread.CurrentPrincipal.Identity as IClaimsIdentity; writer.Write("---Subject:" + currentIdentity.Name + "<BR/>"); foreach (Claim claim in currentIdentity.Claims) { writer.Write(" ClaimType: " + claim.ClaimType + "<BR/>"); writer.Write(" ClaimValue: " + claim.Value + "<BR/"); writer.Write(" ClaimValueTypes: " + claim.ValueType + "<BR/>"); writer.Write(" Issuer: " + claim.Issuer + "<BR/"); writer.Write(" OriginalIssuer: " + claim.OriginalIssuer + "<BR/>"); writer.Write(" Properties: " + claim.Properties.Count.ToString() + "<BR/>"); } } catch (Exception ex) { writer.Write("exception occurred: " + ex.Message); } }
Déployez la solution et ajoutez le composant WebPart à la page d’accueil de l’application de site Web du site avec authentification par formulaire.
La figure 7 présente un aperçu du résultat que vous devez obtenir.
Figure 7. Informations sur le type et la valeur de la revendication
Notez les trois revendications suivantes :
ClaimType: https://schemas.microsoft.com/ws/2008/06/identity/claims/role ClaimValue: Role1 Issuer: SharePoint Properties: 0 ClaimType: https://schemas.microsoft.com/ws/2008/06/identity/claims/role ClaimValue: Role2 Issuer: SharePoint Properties: 0 ClaimType: https://schemas.microsoft.com/ws/2008/06/identity/claims/role ClaimValue: Role3 Issuer: SharePoint Properties: 0
La revendication de rôle est récupérée de ContosoProviders.Roles.
Dans le Ruban, sous Actions du site, cliquez sur Autorisations de site, puis cliquez sur Accorder des autorisations. Cliquez sur l’icône Parcourir pour ouvrir la boîte de dialogue Sélecteur de personnes.
Tapez role2, puis cliquez sur le bouton derecherche, comme l’illustre la figure 8.
Figure 8. Recherche de role2 dans le sélecteur de personnes
Essayez d’ajouter role2 au groupe Members, puis vérifiez le point suivant :
Qui pourra se connecter au site désormais ? Pourquoi ?
Essayez de vous connecter par le biais des utilisateurs dans role2 et déterminez s’il existe un problème.
Conclusion
L’authentification par formulaire permet de gérer les identités de façon personnalisée dans Microsoft SharePoint Server 2010. Dans cette procédure pas à pas, vous avez appris à créer une authentification par formulaire pour une application Web basée sur des revendications à l’aide d’un fournisseur d’appartenances et de rôles personnalisé.
Ressources supplémentaires
Pour plus d’informations, consultez les ressources suivantes :
Forms Authentication in SharePoint Products and Technologies (Part 1): Introduction
Blog de Steve Peschka : Share-n-dipity(éventuellement en anglais)
Applets de commande pour la sécurité (SharePoint Foundation 2010)
Blogs, centres de ressources et forums SharePoint sur la sécurité
Fournisseur de revendications dans Microsoft SharePoint 2010
Planification, mise à niveau, migration, administration, configuration et installation
Sécurité dans SharePoint 2010 - Présentations vidéos(éventuellement en anglais)
Centre de ressources sur la sécurité | SharePoint 2010(éventuellement en anglais)