Share via


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

Cliquez pour obtenir le code 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

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

  2. 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"
            };
    
  3. 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.

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

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

  6. 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"
    };
    
  7. 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.

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

  1. Cliquez avec le bouton droit sur le projet ContosoProviders, puis cliquez sur Régénérer.

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

  1. Accédez à la page Administration centrale de SharePoint 2010.

  2. Dans la section Gestion des applications, cliquez sur Gérer les applications Web.

  3. Dans le Ruban serveur, cliquez sur Nouveau.

  4. Dans la boîte de dialogue Créer une application Web, sous Authentification, cliquez sur Authentification par revendications.

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

  6. Affectez au numéro de port la valeur 500.

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

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

  9. Modifiez l’URL comme suit : http://intranet.contoso.com:500

  10. Sous Pool d’applications, sélectionnez Utiliser le pool d’applications existant : SharePointAppPool.

  11. Dans la section Nom de la base de données et authentification, nommez la base de données WSS_Content_500.

  12. Conservez les autres paramètres par défaut.

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

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

    Valeur fournisseurs pour l’application FBA personnalisée

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

    Valeur du rôle gestionnaire pour l’application Web FBA personnalisée

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

  1. Sur le site Web Administration centrale, sous Gestion des applications, cliquez sur Créer une collection de sites.

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

    Configuration de l’application Web FBA personnalisée

  3. Attribuez au titre la valeur Site avec authentification par formulaire personnalisée, comme l’illustre la figure 3.

  4. Dans le champ Nom d’utilisateur, cliquez sur l’icône Parcourir pour rechercher l’utilisateur que nous avons ajouté précédemment.

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

    Recherche de l’utilisateur1 à l’aide du Sélecteur de personnes

  6. Dans la zone des résultats, double-cliquez sur user1. Cette opération active la page de création de collection de sites.

  7. Cliquez sur OK pour créer la collection de sites.

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

    Page de connexion

  9. 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.)

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

    Nom de l’utilisateur en haut à droite

Étape 6 : affichage des revendications

Ensuite, affichez les revendications.

Pour afficher les revendications

  1. 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);
        }
    
    }
    
  2. 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.

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

    Informations sur le type de demande et la valeur de la demande

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

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

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

    Recherche de role2 dans le sélecteur de personnes

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