Gael's profileGael Duhamel - SharePoin...PhotosBlogListsMore ![]() | Help |
|
March 22 [SharePoint] Mettre en place une authentification Windows Live Id sur son site SharePoint
Je vais à travers cet article vous montrer comment implémenter l'authentification formulaire (communément appelé fba pour Forms Based Authentication) via les services Widows Live. Un prochain viendra rapidement sur la mise en place d'une liste SharePoint comme fournisseur d'accès (qui est d'ailleurs extrement proche de ce qui se fait dans le cas de Windows Live). Pour mettre en place cette authentification, je vais utiliser la capacité de SharePoint à fournir pour un même contenu plusieurs authentifications possibles (Alternate Access Mapping):
Pour en savoir plus sur la configuration, reportez vous a la fin de l'article Windows Live Authentication Membership ProviderCe membership provider est disponible sur CodePlex : http://www.codeplex.com/CKS/Release/ProjectReleases.aspx?ReleaseId=7746 Ajout et déploiement de la solutionPremière étape, ajoutez votre solution ! Pour cela, nous allons utiliser la ligne de commande stsadm avec l’option addsolution. Ouvrez donc une fenêtre shell et tapez : c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\bin\stsadm.exe -o addsolution -filename c:\FBA\Live\CKS.MembershipProvider.WindowsLiveAuthentication.wsp Une fois la solution correctement ajoutée, il nous faut maintenant la déployer. Pour cela, deux solutions, via :
c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\bin\stsadm.exe -o deploysolution -name CKS.MembershipProvider.WindowsLiveAuthentication.wsp -immediate -allowgacdeployment c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\bin\stsadm.exe -o execadmsvcjobs
Enregistrer votre application Windows Live IDIl vous faut maintenant enregistrer votre application auprès de live.com. Vous devez faire cela afin de récupérer un ApplicationID ainsi que Clé secrète qui vous permettra d’identifier et authentifier vos utilisateurs auprès de Live.com. Rendez-vous donc sur https://msm.live.com/app/default.aspx et cliquez sur Register an application.
Sur l’écran suivant, notez bien votre ApplicationID, car nous en aurons besoin pour configurer notre provider. Configurer votre providerPour commencer, nous allons spécifier à notre application web d’utiliser l’authentification via Windows Live ID. Pour cela ouvrez l’administration centrale de SharePoint dans l’onglet « Application Management » et cliquez sur « Authentication Providers ».
Notre application web SharePoint est donc configurée pour utiliser l’authentification via Windows Live ID, il nous reste plus qu’à configurer correctement les applications web pour qu’elles reconnaissent notre nouveau provider. Pour cela, nous allons utiliser la ligne de commande stsadm qui a été étendue d’une nouvelle option addwindowsliveauth. Ouvrez donc un shell et tapez : c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\bin\stsadm.exe -o addwindowsliveauth -appid <application id> -appkey <application secret key> -appmode <http/https> -profsite <URL du site qui contient la liste des profiles> -proflist <nom de la liste des profiles utilisateurs> -locked <URL pour rediriger les utilisateurs bloqués> -url <URL de l’application web> -member <Nom du membership> -role <Nom du role> Pour éclaircir un peu les paramètres car ce n’est pas vraiment explicite et bien documenté :
Pour terminer, ouvrez le fichier web.config de votre application web configurée pour recevoir l’authentification Windows Live ID afin de modifier la page de login a ouvrir ainsi que configurer le paramètre membership et role manager par defaut : Avant : <authentication mode="Forms"> <forms loginUrl="/_layouts/login.aspx" /> </authentication> ... <membership> <providers> <add name="WindowsLiveMembership" type="CKS.WindowsLiveAuthentication.LiveMembershipProvider, CKS.WindowsLiveAuthentication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b5adbad25a892e4a" /> </providers> </membership> <roleManager> <providers> <add name="WindowsLiveRoleManager" type="CKS.WindowsLiveAuthentication.LiveRoleProvider, CKS.WindowsLiveAuthentication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b5adbad25a892e4a" /> </providers> </roleManager> Après : <authentication mode="Forms"> <forms loginUrl="/_layouts/liveauth-handler.aspx?action=login" /> </authentication> ... <membership defaultProvider="WindowsLiveMembership"> <providers> <add name="WindowsLiveMembership" type="CKS.WindowsLiveAuthentication.LiveMembershipProvider, CKS.WindowsLiveAuthentication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b5adbad25a892e4a" /> </providers> </membership> <roleManager defaultProvider="WindowsLiveRoleManager" enabled="true" cacheRolesInCookie="true" cookieName="liveroles"> <providers> <add name="WindowsLiveRoleManager" type="CKS.WindowsLiveAuthentication.LiveRoleProvider, CKS.WindowsLiveAuthentication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b5adbad25a892e4a" /> </providers> </roleManager> Après avoir enregistrée les modifications, faite IISReset. Pour terminer la configuration, il ne nous reste plus qu’a activer la feature de synchronisation (utile si vous avez plusieurs sites fonctionnant avec l’authentification via Windows Live Id). Se connecter et gérer les permissionsDans mon cas, j’ai 2 sites sur une même base SharePoint :
Suggestion d'amélioriation par rapport au projet codeplex publiéComme expliqué un peu plus haut, j’ai masqué mon PUID. Pour corriger cela, il vous suffit d’éditer :
public string DisplayName { get { if (String.IsNullOrEmpty(strDisplayName)) return strId; else return strDisplayName; } set { strDisplayName = value; } }
MembershipUser user = new MembershipUser( ApplicationName, bup.DisplayName /* au lieu de bup.Id */, bup.Id, bup.Email, "", "", bup.Approved, bup.Locked, bup.Created, bup.LastLogin, bup.LastLogin, DateTime.Now, bup.LockedOn);
col.Add(
new MembershipUser user = new MembershipUser(
ApplicationName,
bup.DisplayName /* au lieu de bup.Id */,
bup.Id,
bup.Email,
"",
"",
bup.Approved,
bup.Locked,
bup.Created,
bup.LastLogin,
bup.LastLogin,
DateTime.Now,
bup.LockedOn)
); Pour cela, n’oubliez pas de vous assurer que le champ « display name » soit bien marqué comme obligatoire dans la page « liveinfo.aspx » <asp:RequiredFieldValidator ControlToValidate="tbDisplayName" runat="server" SetFocusOnError="true" ErrorMessage="Display name is a required field" /> Ainsi que dans la liste « WindowsLiveUserListName », vous pouvez d’ailleurs modifier cela dans la création automatique de la liste sur la commande stsadm personnalisée addwindowsliveauth (fichier WindowsLiveAuthStsAdmCommand.cs) :
list.Fields.Add("DisplayName", SPFieldType.Text, true); N’hésitez pas à contribuer à ce projet des plus intéressants en postant vos bugs, évolutions. La communauté ne vie que par et grâce a vous. Je vous rappelle l’adresse : http://www.codeplex.com/CKS/Release/ProjectReleases.aspx?ReleaseId=7746 Configurer l’Alternate Access Mapping
Pour aller plus loin sur l’Alternate access mapping, je vous conseille la lecture de ses articles :
Tags: March 12 [SharePoint] Guide des bonnes pratiques à aborder avant de se lancer dans la création de sites MOSSMicrosoft vient de mettre a disposition via son site Technet, un ensemble d'articles fort intéressant sur les bonnes pratiques à avoir avant d'aborder votre projet sous MOSS. Design and build sites for Office SharePoint Server 2007This guide includes the following sections:
Bonne lecture Tags: March 06 [SharePoint] Custom Field - Regular expression validator sur CodePlexJe viens de poster sur CodePlex mon premier projet SharePoint. Il s'agit d'un champ personnalisé (custom field) permettant de valider la valeur saisie par une expression régulière. L’expression régulière est définie au niveau de la création du champ dans la liste. J’y ai aussi ajouté la possibilité de renseigner son propre message d’erreur. Ce message s’affichant si la valeur saisie ne « match » pas l’expression régulière. Ce qui donne à peu près ceci en image : Pour faire ça dans les règles de l’art (et pour suivre les conseils avisés de Renaud – je vous conseille la lecture de son blog qui est une mine d’or-) j’ai créé une solution qui déploie ce champ personnalisé au travers d’une feature. Rendez-vous donc sur http://www.codeplex.com/SharePointRegEx pour télécharger, tester et me remonter les éventuels bogues, évolutions, ou autres… Voici les 2 ressources MS qui m'ont aidé à la réalisation de ce projet: Tags: March 05 [SharePoint] 2 excellents utilitairesJe suis tombé sur 2 excellents, qui plus est super pratique, utilitaire pour SharePoint développé par Spencer Harbar:
A ajouter d'urgence dans vos VPCs Tags: March 03 [SharePoint] Mettez du Silverlight dans votre SharePointOn commence à parler de plus en plus de Silverlight et le petit monde de SharePoint ne va pas y échapper. Vous trouverez sur ce site 6 exemples de développement autour de l'axe SharePoint/Silverlight avec codes sources, webcast, documentations et aide à l'installation. Enjoy! Tags: March 02 [Commerce Server 2007] Add-in ;o)Un petit clin d'oeil à mes anciens collègues d'Altima pour qui cette chanson fut un véritable accompagnateur dans nos longues journées à décortiquer Commerce Server 2007. Vous me croirez ou non, mais grâce à celle-ci, de nombreuses avancées ont été faites
A vos écouteurs... Attention, l'écoute de la dance Russe peut mener rapidement à l'addiction totale Tags: |
|
|