Comment intégrer SharePoint 2010/2013, y compris la configuration, le dépannage, l’accès aux journaux et les prochaines étapes.
Auth0 peut simplifier considérablement le processus d’authentification pour SharePoint. Dans ce tutoriel, vous apprendrez à ajouter (SSO) à SharePoint à l’aide d’Auth0. Vos utilisateurs pourront se connecter avec n’importe lequel de nos fournisseurs d’identité sociaux (Facebook, X, Github, etc.), fournisseurs Enterprise (LDAP, Active Directory, ADFS, etc.) ou à l’aide d’un nom d’utilisateur et mot de passe.
Auth0 ne prend plus en charge le fournisseur Auth0Claims pour SharePoint 2010 / 2013. Ce package est obsolète pour les tenants existants et n’est pas offert pour les nouveaux tenants.
Dans l’onglet Settings, vous devrez saisir l’URL de la SharePoint Web Application et l’URL externe (généralement le point de terminaison Internet dans vos Alternate Access Mappings).La documentation interactive commence d’abord par l’installation des Auth0 CmdLets pour SharePoint :
Une fois l’installation terminée, vous pourrez activer ou désactiver Auth0 et le Claims Provider pour les différentes Web Applications. Vous devrez activer l’authentification avec Auth0 :
Installez ensuite le Claims Provider afin de vous assurer que le People Picker et les permissions fonctionnent correctement :
Une fois ces scripts exécutés, vous terminerez la configuration dans l’Administration centrale :
Notez que l’appel à Enable-Auth0 peut être adapté pour :
Modifier l’identifiant unique des utilisateurs (comme l’adresse courriel ou un user ID)
Permettre la transmission de claims supplémentaires à SharePoint
Activer ou désactiver Windows Authentication par défaut
L’exemple suivant ajoute également le claim Role au mappage des claims et autorise Windows Authentication :
Vous avez configuré SharePoint pour utiliser Auth0 comme courtier SSO. Lorsque vos utilisateurs visiteront votre site, ils verront une page de connexion affichant toutes les connections activées pour cette application.Selon les claims qui ont été mappés lors de l’installation du Claims Provider, ces renseignements supplémentaires seront aussi disponibles dans la page des paramètres personnels de l’utilisateur :
Notez que vous pouvez adapter la commande Enable-Auth0 pour :
Modifier l’identifiant unique des utilisateurs (comme le courriel ou un ID utilisateur)
Permettre de transmettre des claims supplémentaires à SharePoint
Activer ou désactiver la Windows Authentication par défaut
Cet exemple ajoute aussi le claim Role au mappage des claims et permet la Windows Authentication :
Vous pouvez personnaliser la page de connexion en suivant les instructions d’Auth0 Universal Login.Vous voudrez peut-être offrir aux utilisateurs un moyen de s’authentifier dans SharePoint à l’aide de Windows Authentication, en contournant Auth0. Pour ce faire, personnalisez la page de connexion et ajoutez un lien vers l’endpoint Windows Authentication (généralement semblable à https://yoursharepointserver/_windows/default.aspx?ReturnUrl=/_layouts/15/Authenticate.aspx).Une façon de procéder consiste à utiliser jQuery pour modifier le widget Lock et ajouter un lien vers l’endpoint Windows Authentication.Vous devez ajouter une référence à jQuery au début de la section <body> de la page de connexion personnalisée.
Lorsque vous travaillez avec des claims supplémentaires et l’autorisation, il peut toujours s’avérer utile de consulter les claims de l’utilisateur actuel. L’article Claims Viewer Web Part du professionnel Microsoft Liam Clearly peut être utilisé pour dépanner tout problème lié aux claims de l’utilisateur :
Les erreurs et les avertissements sont consignés dans le Unified Logging Service de SharePoint, et des outils comme ULS Viewer peuvent être utilisés pour résoudre les problèmes que vous pourriez rencontrer lors de l’utilisation du Claims Provider.Pour en savoir plus sur ULS View et obtenir les spécifications, consultez la documentation Microsoft ULS Viewer.
Pour SharePoint 2013, nous n’utilisons plus le Unified Logging Service pour nos journaux; nous sommes plutôt passés à Event Tracing for Windows. Cela offre un meilleur rendement et vous donne plusieurs façons de capturer tous les événements consignés.Pour consulter les journaux en temps réel, vous pouvez télécharger le Logs Processor d’Auth0 depuis Github. Exécutez cet outil sur vos serveurs SharePoint pour voir chaque requête que SharePoint envoie au Claims Provider :
Les claims transmis par Auth0 peuvent aussi servir à l’autorisation dans SharePoint. Par exemple, un utilisateur dont la revendication Role contient Fabrikam HR devrait avoir accès à un site précis ou y être Contributor.Prenons Azure AD comme exemple. Dans cet annuaire infonuagique, les utilisateurs peuvent faire partie de groupes, et David fait partie de Fabrikam HR.Lorsque David se connecte avec son compte Azure AD (et que l’attribut Security Groups est activé pour cette connection), les appartenances aux groupes sont stockées dans l’attribut groups du profil de l’utilisateur.Si nous voulons rendre ces groupes disponibles comme Roles dans SharePoint, nous devrons écrire une Rule qui les ajoute à la configuration . Cette Rule ne s’exécutera que pour l’application nommée Fabrikam Intranet (SharePoint).
Cela ajoutera une revendication sortante supplémentaire http://schemas.microsoft.com/ws/2008/06/identity/claims/role qui contient les groups et que SharePoint utilisera pour l’autorisation.Lors de l’installation du Claims Provider, nous devons autoriser la transmission de la revendication Role à SharePoint en l’ajoutant à la liste de mappage des claims :
Par défaut, un utilisateur n’aura pas accès au site.Désormais, au lieu d’ajouter cet utilisateur en particulier à un groupe SharePoint (p. ex. : Contributors), nous pouvons ajouter un Role à un groupe SharePoint. Voici un exemple de script PowerShell montrant comment ajouter les membres de “Fabrikam HR” au groupe Contributors :
Par défaut, SharePoint peut synchroniser les renseignements du profil utilisateur provenant d’Active Directory. Avec Auth0, toutefois, les utilisateurs peuvent provenir de différents types de connections (de Social à Enterprise), ce qui exige une approche différente pour synchroniser les profils utilisateur.Une première approche consisterait à créer une tâche planifiée qui s’exécute toutes les quelques heures, interroge l’endpoint Users d’Auth0 et synchronise les renseignements de profil de ces utilisateurs.
using System;using Microsoft.SharePoint;using Microsoft.SharePoint.Administration;using Microsoft.Office.Server;using Microsoft.Office.Server.UserProfiles;namespace UserProfileSync{ class Program { static void Main(string[] args) { // Requête à l'Auth0 Management API - https://docs.auth0.com/api/v2 using (var site = new SPSite("http://servername")) { var context = SPServiceContext.GetContext(site); var profileManager = new UserProfileManager(context); var accountName = "i:05.t|auth0|john@example.org"; var userProfile = profileManager.GetUserProfile(accountName); userProfile[PropertyConstants.HomePhone].Value = "+1 594 9392"; userProfile.Commit(); } } }}
Sinon, cette logique pourrait aussi être implémentée sous forme de HttpModule, qui s’exécute chaque fois que l’utilisateur se connecte :
public class PersistUserClaimsHttpModule : IHttpModule{ private SPFederationAuthenticationModule FederationModule { get { return HttpContext.Current.ApplicationInstance.Modules["FederatedAuthentication"] as SPFederationAuthenticationModule; } } public void Init(HttpApplication context) { FederationModule.SecurityTokenValidated += OnFederationSecurityTokenValidated; } private void OnFederationSecurityTokenValidated(object sender, SecurityTokenValidatedEventArgs e) { // Utiliser e.ClaimsPrincipal }}