Configuration d’un authentification par revendication (claims)

Nous allons configurer une webapp, pour quelle utilise un  mode d’authentification par revendication qui elle même utilisera deux types d’authentification : Windows Intégrée et   formulaire.

Pour rappel avec SharePoint 2007, à chaque extension d’une webapp nous pouvions configurer le type. Nous pouvions créer jusqu’à 5 extensions (zones :défaut, Intranet, Internet, Extranet, personnalisée).

SharePoint 2010 offre la possibilité d’utiliser un mode d’authentification par revendication qui est en mesure d’utiliser plusieurs types d’authentification (Windows, formulaire, etc..).

Donc pour une seule extension de webapp plusieurs types d’authentification.

Commençons par convertir une webapp existante pour l’authentification par revendication.

Configuration de l’authentification par claims

Lancez le powershell SharePoint 2010 en tant qu’admin. Il va falloir s’y habituer à ce powershell SharePoint 🙂

Puis lancer les commandes suivantes :

$w = Get-SPWebApplication « http://<server>/ &raquo;
$w.UseClaimsAuthentication = « True »;
$w.Update()

$w.ProvisionGlobally()

Note : Il est possible de configurer ce mode lors de la création de la webapp.

Configuration des types d’authentification

Depuis la Centrale d’Admin, rendez-vous dans la gestion des webapp.

Sélectionnez la webapp souhaitée et cliquer sur Fournisseur d’authentification.

Vous devez désormais avoir une section nommée : « Types d’authentification basée sur les revendications ».

Sélectionnez l’authentification Windows Intégrée et bien sur l’authentification par formulaire.

Renseigner le nom du fournisseur d’appartenance ASP.NET, pour l’instant celui-ci n’existe pas nous allons le configurer plus tard.

Indiquez si vous le souhaitez le fournisseur de rôle.

Petite information au passsage : le fournisseur d’appartenance permet de retrouver des identités (utilisateurs) et le fournisseur de rôle permet de retrouver des groupes.

Configuration des fournisseurs ASP.NET

Nous venons de configurer notre webapp pour l’authentification par revendication et indiquer le nom du fournisseur d’appartenance et le nom du gestionnaire de rôle.

Il est maintenant nécessaire de configurer les fichiers de config (web.config).

Nous allons modifier trois fichiers de config, celui de la Centrale d’Administration, de l’application de service de Jeton de Sécurité (SecurityTokenServiceApplication, nouveauté 2010) et enfin de notre webapp qui doit utilisé l’authentification par formulaire.

Pour trouver les différents fichiers de config, procédez comme suit :

Lancer le gestionnaire IIS, faites un clic droit sur le site souhaité, puis sélectionner « Explorer ».

Commençons par la Centrale d’Administation.

Tout d’abord effectuer une copie du fichier web.config d’origine, cela peut vous servir 🙂

Editer le fichier web.config avec le bloc note.

Recherchez la balise </sharepoint>.

Ajouter la chaîne de connexion à la base d’utilisateurs. La création de cette base n’est pas documenté dans cet article, une petite recherche sur aspnet_regsql.exe sur votre moteur de recherche préféré vous aidera.

Donc vous devez rajouter ces quelques lignes :

  <connectionStrings>
           name= »ConnAspNetSqlProvider » connectionString= »data source=WIN2008\SQL;Integrated Security=SSPI;Initial Catalog=Moss_ExtranetUsers »/>
</connectionStrings>

Dans le fichier web.config cela doit ressembler à cela.

C’est la première partie, il ensuite nécessaire d’ajouter le fournisseur d’appartenance et le gestionnaire de rôle.

Rechercher les balises <roleManager><providers>, c’est à l’intérieur de cette dernière que nous allons renseigner le gestionnaire de rôle.

Juste en dessous se trouve les balises <membership><providers>, c’est ici que nous allons inscrire le fournisseur d’appartenance.

Le gestionnaire de rôle se déclare comme suit :

connectionStringName= »ConnAspNetSqlProvider » applicationName= »/ » description= »Stores and retrieves roles from SQL Server » name= »AspNetWindowsTokenRoleManager » type= »System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a » />

et le fournisseur d’appartenance comme suit :

connectionStringName= »ConnAspNetSqlProvider » passwordAttemptWindow= »5″ enablePasswordRetrieval= »false » enablePasswordReset= »true » requiresQuestionAndAnswer= »true » applicationName= »/ » requiresUniqueEmail= »false » passwordFormat= »Hashed » description= »Stores and Retrieves membership data from SQL Server » name= »AspNetSQLMembershipProvider » type= »System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a » />

Deux attributs sont à adapter :

 connectionStringName => nom de votre chaîne de connexion

 name => nom du fournisseur ou du gestionnaire de rôle cela doit impérativement correspondre à ce que vous avez paramétré dans la Centrale d’Administration.

Voici le fichier web.config modifié :

Effectuez rigoureusement les mêmes modifications sur le fichier web.config de la webapp qui doit fonctionner avec l’authentification par formulaire.

Nous terminons ces modifications avec le fichier de configuration de l’application de jeton de sécurité (SecurityTokenServiceApplication).

Dans le gestionnaire IIS, développez le site SharePoint Web Services, puis placez-vous sur le répertoire virtuel SecurityTokenServiceApplication, faites un clic droit puis sélectionner Explore.

Faites une copie du fichier de configuration et éditez l’original.

Juste avant la balise de fin </configuration> ajouter les lignes suivantes :

<connectionStrings>
name= »ConnAspNetSqlProvider » connectionString= »data source=WIN2008\SQL;Integrated Security=SSPI;Initial Catalog=Moss_ExtranetUsers »/>
</connectionStrings>
<system.web>
defaultProvider= »c » enabled= »true » cacheRolesInCookie= »false »>
<providers>
name= »c » type= »Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c » />
connectionStringName= »ConnAspNetSqlProvider » applicationName= »/ » description= »Stores and retrieves roles from SQL Server » name= »SQL-RoleManager » type= »System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a » />
</providers>
</roleManager>
defaultProvider= »i »>
<providers>
name= »i » type= »Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c » />
connectionStringName= »ConnAspNetSqlProvider » passwordAttemptWindow= »5″ enablePasswordRetrieval= »false » enablePasswordReset= »false » requiresQuestionAndAnswer= »true » applicationName= »/ » requiresUniqueEmail= »true » passwordFormat= »Hashed » description= »Stores and Retrieves membership data from SQL Server » name= »SQL-MembershipProvider » type= »System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a » />
</providers>
</membership>
</system.web>

 

Nous voici prêt à utiliser les authentifications SQL.

Ajout d’un utilisateur dans la stratégie d’information

Nous venons de configurer l’accès par formulaire mais nous aucun utilisateur SQL n’a pour l’instant d’autorisation pour se connecter à cette webapp.

Nous allons utiliser la stratégie d’information afin d’octroyer des droits à un utilisateur sur toute une webapp depuis la Centrale d’administration.

Rendez-vous dans la centrale d’admin, puis dans la gestion des applications web. Sélectionnez la webapp et cliquez qur Stratégie de l’utilisateur.

Effectuer une recherche d’un utilisateur SQL, vous devez avoir des résultats dans la section « Authentification par formulaire ».

 

Ajouter cet utilisateur avec des autorisations de lecture au minimum.

Connexion à la webapp

Roulement de tambour, tout est prêt. Reste plus qu’à tester cette authentification.

Ouvrez votre navigateur préféré (oui, SharePoint 2010 est moins restrictif de ce coté-là).

Lancez votre webapp.

Vous tombez sur une page qui vous demande de spécifier le type d’authentification.

 Je vous rappelle que nous avons qu’une seule extension de webapp configurée pour utiliser le mode d’authentification par revendication qui elle même permet plusieurs types d’authentification (Windows, par formulaire, …)

Sélectionner par formulaire. Vous êtes désormais sur la page d’authentification par formulaire.

 

Vous pouvez maintenant vous connectez et ajoutez des utilisateurs SQL dans des groupes SharePoint.

Fin de l’article.

N’hésitez pas à faire par de vos commentaires.

kOuilb.

%d blogueurs aiment cette page :