Procédure pas à pas concernant les revendications : création de fournisseurs de connexions approuvés (connexion SAML) pour SharePoint 2010
Résumé : découvrez comment créer un service d’émission de jeton de sécurité (STS, Security Token Service) personnalisé, puis configurer une relation d’approbation entre une batterie SharePoint 2010 et le service STS personnalisé.
Dernière modification : vendredi 12 août 2011
S’applique à : Business Connectivity Services | Open XML | SharePoint Designer 2010 | SharePoint Foundation 2010 | SharePoint Online | SharePoint Server 2010 | Visual Studio
Dans cet article
Rôle d’un fournisseur de connexions approuvé
Scénario : activation de l’accès à un site SharePoint hébergé sur un extranet
Étape 1 : création du projet WingtipSTS
Étape 2 : test des revendications du projet WingtipSTS
Étape 3 : définition des revendications prises en charge par le projet WingtipSTS
Étape 4 : configuration de l’approbation dans SharePoint
Étape 5 : création d’une application Web qui utilise le projet WingtipSTS
Étape 6 : test de l’authentification du projet WingtipSTS
Conclusion
Ressources supplémentaires
Auteur : Andy Li, Microsoft Corporation
Contenu
Rôle d’un fournisseur de connexions approuvé
Scénario : activation de l’accès à un site SharePoint hébergé sur un extranet
Étape 1 : création du projet WingtipSTS
Étape 2 : test des revendications du projet WingtipSTS
Étape 3 : définition des revendications prises en charge par le projet WingtipSTS
Étape 4 : configuration de l’approbation dans SharePoint
Étape 5 : création d’une application Web qui utilise le projet WingtipSTS
Étape 6 : test de l’authentification du projet WingtipSTS
Conclusion
Ressources supplémentaires
Téléchargez le code : Exemple de revendications - fournisseur de connexions approuvé(éventuellement en anglais)
Rôle d’un fournisseur de connexions approuvé
Au cours de cette procédure pas à pas, vous allez créer un service d’émission de jeton de sécurité (STS, Security Token Service) personnalisé, puis configurer une relation d’approbation entre une batterie Microsoft SharePoint 2010 et le service STS personnalisé. Ce dernier assume la fonction de fournisseur d’authentification. Lorsque des utilisateurs se connectent au site SharePoint, ils sont d’abord dirigés vers la page d’ouverture de session du service STS personnalisé. Ils sont ensuite redirigés vers SharePoint après l’authentification.
Notes
Un fournisseur de connexions approuvé est un service STS externe (à SharePoint) approuvé par SharePoint. Pour obtenir les définitions des termes relatifs aux revendications, voir Définitions des termes de l’identité basée sur des demandes.
La connexion passive SAML décrit le processus de connexion. Lorsqu’une connexion à une application Web est configurée de façon à accepter les jetons provenant d’un fournisseur de connexions approuvé, ce type de connexion porte le nom de connexion passive SAML. Pour plus d’informations, voir Revendications entrantes : connexion à SharePoint.
Scénario : activation de l’accès à un site SharePoint hébergé sur un extranet
La société fictive Contoso possède un site SharePoint hébergé sur un extranet, auquel ses employés peuvent se connecter à distance depuis leur domicile ou lors de leurs déplacements professionnels. Contoso possède une société partenaire nommée Wingtip, dont les employés travaillent sur un projet avec Contoso et qui doivent pouvoir accéder à des documents du site SharePoint.
Pour permettre aux employés de Wingtip de se connecter au site SharePoint hébergé par Contoso, Wingtip a créé un service STS qui peut servir à authentifier ses employés. Sur le site Contoso, l’administrateur de la batterie a configuré la relation d’approbation entre la batterie SharePoint et le service STS de Wingtip. Lorsque des employés de Wingtip tentent de se connecter au site SharePoint de Contoso, ils sont d’abord dirigés vers leur service STS afin de s’authentifier, puis le service STS les redirige vers le site SharePoint de Contoso. Étant donné que la batterie SharePoint approuve le service STS de Wingtip, elle approuve également le jeton de sécurité émis par ce service.
Étape 1 : création du projet WingtipSTS
Démarrez Visual Studio 2010.
Dans le menu Fichier, cliquez sur Nouveau projet.
Dans la boîte de dialogue Nouveau projet, procédez comme suit :
Dans le volet gauche, sélectionnez Autres types de projets, cliquez sur Solution Visual Studio, puis sélectionnez Nouvelle solution sur la droite, comme illustré à la Figure 1.
Dans Emplacement, tapez C:\StudentFiles\LabFiles\Module_6\Lab.
Comme Nom de la solution, tapez TrustedLogin.
Figure 1. Boîte de dialogue Nouveau projet dans Visual Studio
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur la solution TrustedLogin, cliquez sur Ajouter, puis sur Nouveau site Web.
Dans la boîte de dialogue Ajouter un nouveau site Web, procédez comme suit :
Sélectionnez le modèle Site Web de service d’émission de jeton de sécurité ASP.NET.
Pour Emplacement Web, sélectionnez Système de fichiers et affectez la valeur C:\StudentFiles\LabFiles\Module_6\Lab\TrustedLogin\WingtipSTS.
Figure 2. Boîte de dialogue Ajouter un nouveau site Web dans Visual Studio
Ouvrez le fichier web.config sous le nouveau site Web. Dans la section appSettings, affectez à IssuerName la valeur WingtipSTS.
Figure 3. Modifier appSettings
Notes
SigningCertificateName (CN=STSTestCert) est le certificat utilisé par WingtipSTS pour signer le jeton de sécurité.
Cliquez sur Démarrer, puis sur Exécuter.
Tapez mmc, puis appuyez sur la touche Entrée.
Dans la console MMC (Microsoft Management Console), cliquez sur Fichier, puis sur Ajouter/Supprimer un composant logiciel enfichable.
Sous le champ Composants logiciels enfichables disponibles dans le volet gauche, cliquez sur Certificats, puis sur Ajouter.
Figure 4. Console MMC affichant STSTestCert
Dans la boîte de dialogue Composant logiciel enfichable Certificat, cliquez sur Compte d’ordinateur, sur Suivant, puis sélectionnez Ordinateur local
Cliquez sur Terminer, puis sur OK.
Notes
Notez que SigningCertificate dans web.config pointe vers le certificat affiché ici comme STSTestCert.
Lors de la configuration de l’approbation entre WingtipSTS et SharePoint, nous devons indiquer à SharePoint quel est le certificat utilisé par WingtipSTS. Pour cela :
Cliquez avec le bouton droit sur STSTestCert, sélectionnez Toutes les tâches, puis cliquez sur Exporter.
Cliquez sur Suivant. Notez que vous ne pouvez exporter que la clé publique à partir de ce certificat.
Cliquez sur Suivant, puis sélectionnez X.509 binaire encodé DER (.cer).
Cliquez sur Suivant. Dans la boîte de dialogue Fichier à exporter, tapez C:\StudentFiles\LabFiles\Module_6\Resources\STSTestCertPub.cert comme nom de fichier.
Cliquez sur Suivant, puis sur Terminer.
Fermez la console MMC.
Étape 2 : test des revendications du projet WingtipSTS
Cliquez avec le bouton droit sur la solution TrustedLogin, cliquez sur Ajouter, puis sur Nouveau site Web.
Dans la boîte de dialogue Ajouter un nouveau site Web, sélectionnez Modèle de site Web ASP.NET prenant en charge les revendications. Pour Emplacement Web, sélectionnez File System et affectez C:\StudentFiles\LabFiles\Module_6\Lab\TestRPWeb comme Valeur, comme illustré à la Figure 5.
Figure 5. Boîte de dialogue Ajouter un nouveau site Web
Cliquez avec le bouton droit sur le projet TestRPWeb, puis cliquez sur Ajouter une référence STS.
Dans l’Assistant Utilitaire de fédération qui s’affiche, dans la page Bienvenue dans l’Assistant Utilitaire de fédération (voir la Figure 6), cliquez sur Suivant. En réponse au message L’application n’est PAS hébergée sur une connexion https sécurisée, cliquez sur Oui.
Figure 6. Page Bienvenue dans l’Assistant Utilitaire de fédération
Dans la page Service d’émission de jeton de sécurité, cliquez sur Utiliser une option STS existante. Tapez https://localhost:48924/WingtipSTS/FederationMetadata/2007-06/FederationMetadata.xml comme emplacement du document de métadonnées WS-Federation STS, comme illustré à la Figure 7.
Notes
Il se peut que cette URL soit différente dans votre environnement. Pour trouver l’URL correcte, cliquez avec le bouton droit sur FederationMetadata.xml sous le dossier FederationMetadata/2007-06 dans votre projet WingtipSTS.
Figure 7. Page Service d’émission de jeton de sécurité avec option STS
Cliquez sur Suivant, puis sur Oui en réponse au message concernant la connexion non sécurisée.
Dans la page Chiffrement de jeton de sécurité, cliquez sur Aucun chiffrement, comme illustré à la Figure 8.
Figure 8. Page Chiffrement de jeton de sécurité
Dans la page Revendications offertes, cliquez sur Suivant, comme illustré à la Figure 9.
Notes
Cette boîte de dialogue ne répertorie pas les types de revendications que vous avez définis ; cela ne pose pas de problème.
Figure 9. Revendications offertes dans la page Revendications offertes
Dans la boîte de dialogue Résumé, cliquez sur Terminer.
Notes
Les étapes précédentes ajoutent les entités nécessaires dans le fichier web.config du projet WingtipSTS de sorte que le site Web redirige l’utilisateur vers le site WingtipSTS afin de l’authentifier et d’obtenir ses revendications.
Ouvrez le fichier web.config.
Supprimez requestValidationMode="2.0" de l’élément <httpRuntime>.
Compilez le projet TestRPWeb et corrigez les éventuelles erreurs de compilation.
Sous TestRPWeb, cliquez avec le bouton droit sur Default.aspx, puis sélectionnez Afficher dans le navigateur. Vous devriez être redirigé vers la page d’ouverture de session du site WingtipSTS, comme illustré à la Figure 10.
Notes
Si vous recevez un message d’erreur Impossible d’afficher la page, vérifiez que WingtipSTS est en cours d’exécution dans Développement Web de Visual Studio.
Figure 10. Page d’ouverture de session de WingtipSTS
Tapez les informations d’identification suivantes :
Nom d’utilisateur : user1@wingtip.com
Mot de passe : pass@word1 (Nous ne vérifions pas le mot de passe ; n’importe quel mot de passe fonctionnera.)
Cliquez sur Submit. Vous êtes alors redirigé vers le site TestRPWeb. Default.aspx affiche toutes les revendications renvoyées par WingtipSTS.
Figure 11. Revendications renvoyées par WingtipSTS
Résolution des problèmes de redirection
Il se peut que vous receviez le message d’erreur suivant lorsque WingtipSTS vous redirige vers TestRPWeb :
ID4175 : l’émetteur du jeton de sécurité n’a pas été reconnu par IssuerNameRegistry. Pour accepter des jetons de sécurité de cet émetteur, configurez IssuerNameRegistry de façon à renvoyer un nom valide pour cet émetteur.
Si vous recevez ce message d’erreur, vérifiez que la valeur d’empreinte du STSTestCert dans le fichier web.config, sous TestRPWeb, est correcte.
<issuerNameRegistry
type="Microsoft.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry,
Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35">
<trustedIssuers>
<add thumbprint="99fcfe2c70ebb571020ca8aa1b7633dfe1fa1d58" name="https://localhost:48924/WingtipSTS/" />
</trustedIssuers>
</issuerNameRegistry>
Pour vérifier cela, ouvrez la console MMC Certificat et recherchez l’empreinte sous l’onglet Détails du certificat, comme illustré à la Figure 12.
Figure 12. Boîte de dialogue Certificat montrant l’empreinte
Étape 3 : définition des revendications prises en charge par le projet WingtipSTS
Ajoutez un fichier de classe nommé UserInfo.cs au dossier App_Code sous le projet Site Web WingtipSTS.
Ajoutez l’instruction using suivante à UserInfo.cs.
using Microsoft.IdentityModel.Claims;
Ajoutez le code suivant à la fin du fichier UserInfo.cs. La classe WingtipClaimTypes définit les revendications prises en charge par WingtipSTS.
public class WingtipClaimTypes { // System.IdentityModel.Claims.ClaimTypes.Email; public static string EmailAddress = "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"; public static string Title = "http://schemas.wingtip.com/sharepoint/2009/08/claims/title"; }
Remplacez la classe UserInfo par le code suivant. Cette classe contient certaines méthodes utilitaires utilisées par WingtipSTS pour extraire les revendications d’un utilisateur et authentifier l’utilisateur en fonction de ses informations d’identification.
Notes
Ce code est fourni uniquement à des fins de démonstration. Vous ne devez pas l’utiliser dans un environnement de production.
public class UserInfo { // The email address is used as the UserID. // Every user has two claims: title and email address. // SharePoint will pick up the email claim and treat it as the identity. private static string[] userDB = { "user1@wingtip.com:Title:Engineer", "user1@wingtip.com:Email:user1@wingtip.com", "user2@wingtip.com:Title:Manager", "user2@wingtip.com:Email:user2@wingtip.com", "user3@wingtip.com:Title:CEO", "user3@wingtip.com:Email:user3@wingtip.com", }; // Manually construct a list of users. In a production environment, // you should look up a directory service or database // to retrieve the user information. public static List<string> GetAllUsers() { List<string> allUsers = new List<string>(); // Adding forms-based users. allUsers.Add("user1@wingtip.com"); allUsers.Add("user2@wingtip.com"); allUsers.Add("user3@wingtip.com"); return allUsers; } public static bool AuthenticateUser(string username, string password) { // Add your authentication logic here. return true; } /// <summary> /// A real implementation should look up a directory service or database /// to retrieve a user's claim. The code below is /// used only for demonstration purposes. /// </summary> /// <param name="username"></param> /// <returns></returns> public static List<Claim> GetClaimsForUser(string username) { List<Claim> userClaims = new List<Claim>(); foreach (string userInfo in userDB) { string[] claims = userInfo.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries); if (username == claims[0]) { userClaims.Add(new Claim(GetClaimTypeForRole(claims[1]), claims[2], Microsoft.IdentityModel.Claims.ClaimValueTypes.String)); } } return userClaims; } public static string GetClaimTypeForRole(string roleName) { if (roleName.Equals("Title", StringComparison.OrdinalIgnoreCase)) return WingtipClaimTypes.Title; else if (roleName.Equals("Email", StringComparison.OrdinalIgnoreCase)) return WingtipClaimTypes.EmailAddress; else throw new Exception("Claim Type not found!"); } }
Le code du fichier UserInfo.cs ressemble maintenant à ce qui suit.
using System; using System.Collections.Generic; using System.Linq; using System.Web; using Microsoft.IdentityModel.Claims; public class WingtipClaimTypes { // System.IdentityModel.Claims.ClaimTypes.Email; public static string EmailAddress = "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"; public static string Title = "http://schemas.wingtip.com/sharepoint/2009/08/claims/title"; } public class UserInfo { // The email address is used as the UserID. // Every user has two claims: title and email address. // SharePoint will pick up the email claim and treat it as identity. private static string[] userDB = { "user1@wingtip.com:Title:Engineer", "user1@wingtip.com:Email:user1@wingtip.com", "user2@wingtip.com:Title:Manager", "user2@wingtip.com:Email:user2@wingtip.com", "user3@wingtip.com:Title:CEO", "user3@wingtip.com:Email:user3@wingtip.com", }; // Manually construct a list of users. In a production environment, // you should look up a directory service or database to retrieve // the user information. public static List<string> GetAllUsers() { List<string> allUsers = new List<string>(); //Adding forms-based users. allUsers.Add("user1@wingtip.com"); allUsers.Add("user2@wingtip.com"); allUsers.Add("user3@wingtip.com"); return allUsers; } public static bool AuthenticateUser(string username, string password) { // Add your authentication logic here. return true; } /// <summary> /// A real implementation should look up a directory service or database /// to retrieve a user's claim. The code below is used /// only for demonstration purposes. /// </summary> /// <param name="username"></param> /// <returns></returns> public static List<Claim> GetClaimsForUser(string username) { List<Claim> userClaims = new List<Claim>(); foreach (string userInfo in userDB) { string[] claims = userInfo.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries); if (username == claims[0]) { userClaims.Add(new Claim(GetClaimTypeForRole(claims[1]), claims[2], Microsoft.IdentityModel.Claims.ClaimValueTypes.String)); } } return userClaims; } public static string GetClaimTypeForRole(string roleName) { if (roleName.Equals("Title", StringComparison.OrdinalIgnoreCase)) return WingtipClaimTypes.Title; else if (roleName.Equals("Email", StringComparison.OrdinalIgnoreCase)) return WingtipClaimTypes.EmailAddress; else throw new Exception("Claim Type not found!"); } }
Sous App_Code, double-cliquez sur CustomSecurityTokenService.cs pour ouvrir le fichier.
Ajoutez la référence d’espace de noms à System.Collections.
Remplacez la fonction GetOutputClaimsIdentity par le code suivant. Il s’agit de la fonction qui renvoie la revendication de l’utilisateur.
protected override IClaimsIdentity GetOutputClaimsIdentity( IClaimsPrincipal principal, RequestSecurityToken request, Scope scope ) { if ( null == principal ) { throw new ArgumentNullException( "principal" ); } ClaimsIdentity outputIdentity = new ClaimsIdentity(); // Issue custom claims. // TODO: Change the claims below to issue custom claims // that are required by your application. // Update the application's configuration file to reflect // the new claims requirements. // outputIdentity.Claims.Add( new Claim( System.IdentityModel.Claims.ClaimTypes.Name, principal.Identity.Name ) ); // outputIdentity.Claims.Add( new Claim( ClaimTypes.Role, "Manager" ) ); // The Wingtip implementation. string username = principal.Identity.Name; List<Claim> claims = UserInfo.GetClaimsForUser(username); foreach (Claim claim in claims) { outputIdentity.Claims.Add(claim); } return outputIdentity; }
Compilez le site Web WingtipSTS et corrigez els éventuelles erreurs de compilation.
Étape 4 : configuration de l’approbation dans SharePoint
Le processus de configuration d’approbation entre WingtipSTS et SharePoint consiste principalement à inscrire WingtipSTS en tant qu’objet SPTrustedLoginProvider dans la batterie SharePoint.
Dans le site Administration centrale, dans le volet de navigation gauche, cliquez sur Sécurité.
Sous Sécurité générale, cliquez sur Gérer la relation d’approbation.
Dans le Ruban serveur, cliquez sur Nouveau.
Dans la boîte de dialogue Établir une relation d’approbation, dans la zone de texte Nom, tapez STSTestCert de sorte qu’il soit affiché comme illustré à la Figure 13.
Figure 13. Établissement de la relation d’approbation dans l’Administration centrale
Cliquez sur Parcourir, puis recherchez le fichier STSTestCertPub.cer que vous avez exporté précédemment.
Cliquez sur OK.
Notes
L’étape 4 fait en sorte que SharePoint approuve tous les certificats associés au certificat racine STSTestCert.
Ajoutez un projet WinForm nommé RegisterSTS à la solution TrustedLogin.
Notes
Assurez-vous d’affecter la valeur All CPU à Plateforme cible et la valeur 3.5 à .NET Framework.
Cliquez avec le bouton droit sur le projet RegisterSTS, puis cliquez sur Définir comme projet de démarrage.
Ajoutez un bouton au formulaire et affectez la valeur Inscrire WingtipSTS à la propriété Texte.
Double-cliquez sur le bouton pour accéder à sa fonction gestionnaire d’événement.
Remplacez la fonction Button1_Click par le code suivant. Ce code crée un objet SPTrustedLoginProvider et l’ajoute à la collection SPSecurityTokenServiceManager.TrustedLoginProviders.
Notes
Vous pouvez également utiliser des scripts Windows PowerShell pour inscrire un service STS auprès de SharePoint. Pour plus d’informations, voir Applets de commande de sécurité (SharePoint Foundation 2010).
Le code effectue les opérations suivantes :
Il définit les revendications qui seront reconnues par SharePoint (dans notre exemple, email et title).
idClaim définit le type de revendication utilisé pour identifier un utilisateur de manière unique.
La fonction AddKnownClaimValue de la classe SPTrustedClaimTypeInformation ajoute les valeurs de revendications connues au type de revendication de sorte que vous puissiez les trouver lorsque, ultérieurement, vous effectuerez une recherche de revendication dans le Sélecteur de personnes.
Un objet X509Certificate2 pointe vers la clé publique que nous avons exporté précédemment.
Sur le constructeur de la classe SPTrustedLoginProvider, pensez à modifier l’URI de votre WingtipSTS (le numéro de port peut être différent ; le WingtipSTS dans notre exemple est hébergé à l’URL https://localhost:48924/WingtipSTS/default.aspx).
Attention N’oubliez pas la partie default.aspx dans l’URL.
Vous pouvez créer un objet SPClaimProvider personnalisé pour votre objet SPTrustedLoginProvider et l’inscrire à l’aide de SPTrustedLoginProvider.ClaimProviderName (commenté dans le code suivant). Autrement, SharePoint crée automatiquement un objet SPTrustdClaimProvider (dérivé de la classe SPClaimProvider) pour cet objet SPTrustedLoginProvider. Cet objet SPTrustdClaimProvider est basé sur les informations de type de revendication que nous avons fournies dans le code d’inscription.
https://intranet.contoso.com/\_trust/ est l’URL de redirection après que l’utilisateur a été authentifié par le service STS.
private void button1_Click(object sender, EventArgs e) { List<SPTrustedClaimTypeInformation> claimMapping = new List<SPTrustedClaimTypeInformation>(); List<string> strClaimMapping = new List<string>(); SPTrustedClaimTypeInformation idClaim = new SPTrustedClaimTypeInformation("EmailAddress", "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"); SPTrustedClaimTypeInformation titleClaim = new SPTrustedClaimTypeInformation("Title", "http://schemas.wingtip.com/sharepoint/2009/08/claims/title", "http://schemas.wingtip.com/sharepoint/2009/08/claims/title"); titleClaim.AcceptOnlyKnownClaimValues = true; idClaim.AddKnownClaimValue("user1@wingtip.com"); idClaim.AddKnownClaimValue("user2@wingtip.com"); idClaim.AddKnownClaimValue("user3@wingtip.com"); titleClaim.AddKnownClaimValue("Engineer"); titleClaim.AddKnownClaimValue("Manager"); titleClaim.AddKnownClaimValue("CEO"); // Create the string[] for all claims. This is required for // the construction of the SPTrustedLoginProvider object. strClaimMapping.Add(idClaim.InputClaimType); strClaimMapping.Add(titleClaim.InputClaimType); X509Certificate2 ImportTrustCertificate = new X509Certificate2(@"C:\StudentFiles\LabFiles\Module_6\Resources\STSTestCertPub.cer"); claimMapping.Add(idClaim); claimMapping.Add(titleClaim); SPSecurityTokenServiceManager manager = SPSecurityTokenServiceManager.Local; SPTrustedLoginProvider provider = new SPTrustedLoginProvider(manager, "WingtipSTS","WingtipSTS",new Uri("https://localhost:48924/WingtipSTS/default.aspx"), "https://intranet.contoso.com/_trust/", strClaimMapping.ToArray(),idClaim); foreach (SPTrustedClaimTypeInformation claimTypeInfo in claimMapping) { if (claimTypeInfo.InputClaimType == provider.IdentityClaimTypeInformation.InputClaimType) { continue; } provider.AddClaimTypeInformation(claimTypeInfo); } if (ImportTrustCertificate != null) { provider.SigningCertificate = ImportTrustCertificate; } //provider.ClaimProviderName = "ContosoCRMClaimProvider"; provider.UseWReplyParameter = true; manager.TrustedLoginProviders.Add(provider); manager.Update(); }
Générez le projet RegisterSTS, puis exécutez-le.
Cliquez sur le bouton pour inscrire le fournisseur de connexions approuvé dans la batterie.
Étape 5 : création d’une application Web qui utilise le projet WingtipSTS
Accédez à la page d’Administration centrale de SharePoint 2010.
Dans la section Gestion des applications, cliquez sur Gérer les applications Web.
Dans le Ruban, cliquez sur Nouveau.
Dans la boîte de dialogue Créer une application Web, sous Authentification, cliquez sur Authentification basée sur les revendications.
Dans la section Site Web IIS, sous Créer un nouveau site Web IIS, affectez au champ Nom la valeur SharePoint – Approuvé.
Affectez au numéro de Port la valeur 443.
Dans la section Configuration de la sécurité, sous Utiliser le protocole SSL, cliquez sur Oui, comme illustré à la Figure 14.
Dans la section Types d’authentification basée sur les revendications, procédez comme suit :
Cliquez sur Activer l’authentification Windows.
Cliquez sur Authentification Windows intégrée.
Cliquez sur NTLM dans la liste déroulante.
Cliquez sur Trusted Identity Provider.
Cliquez sur WingtipSTS.
Figure 14. Boîte de dialogue Créer une application Web
Sous Pool d’applications, sélectionnez l’AppPool : SharePointAppPool existant.
Dans la section Nom de la base de données et authentification, nommez la base de données WSS_Content_443. Conservez les autres paramètres par défaut.
Cliquez sur OK pour créer l’application Web.
Une fois l’application Web SSL créée, cliquez sur Gestion des applications, puis sur Créer une collection de sites.
Sélectionnez https://intranet.contoso.com comme application Web.
Comme titre, tapez Approuvé.
Cliquez sur Parcourir sur l’Administrateur principal de la collection de sites.
Dans le Sélecteur de personnes, sous WingtipSTS, procédez comme suit :
Notes
Comme mentionné plus haut, le fournisseur de revendications WingtipSTS est un type de SPTrustedClaimProvder. Il est généré automatiquement par SharePoint lors de l’inscription du SPTrustedLoginProvider.
Sélectionnez EmailAddress. Trois choix sont disponibles, comme illustré à la Figure 15.
Sélectionnez user1@wingtip.com, puis cliquez sur OK.
Figure 15. Sélecteur de personnes
Cliquez sur OK pour créer la collection de sites.
Étape 6 : test de l’authentification du projet WingtipSTS
Important
Avant d’exécuter ce test, assurez-vous que le projet WingtipSTS est opérationnel. Vous pouvez soit cliquer avec le bouton droit sur le projet WingtipSTS puis cliquer sur Afficher dans le navigateur, soit le déployer sur un site Web IIS Internet Information Services).
Naviguez jusqu’à https://intranet.contoso.com.
Dans la liste déroulante Sélecteur d’authentifications multiples, cliquez sur WingtipSTS, comme illustré à la Figure 16.
Figure 16. Sélection de WingtipSTS dans la liste déroulante
Vous êtes redirigé vers la page d’ouverture de session du site Web WingtipSTS, comme illustré à la Figure 17.
Figure 17. Page d’ouverture de session du site Web WingtipSTS
Tapez les informations d’identification de l’administrateur du site, à savoir user1@wingtip.com.
Après l’authentification, vous êtes redirigé vers le site SharePoint, comme illustré à la Figure 18.
Figure 18. Redirection vers le site SharePoint après l’authentification
Déployez un composant WebPart que vous avez créé et ajoutez-le à la page d’accueil. Observez et prenez note des revendications qui sont ajoutées à l’utilisateur.
Dans le menuActions du site, cliquez sur Paramètres du site, puis sur Utilisateurs et groupes. Cliquez sur user1@wingtip.com, puis recherchez le nom de compte. Notez la réponse aux questions suivantes :
Quels sont les types de revendications pour user1@wingtip.com ?
Quel est le nom de compte pour user1@wingtip.com ?
Que signifie chaque caractère dans le nom de compte ? (Décodez le nom de compte manuellement ou à l’aide de code.)
Dans le Ruban, sous Actions du site, sélectionnez 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.
Sous WingtipSTS, cliquez sur Title.
Tapez Manager, puis cliquez sur Rechercher.
Dans le résultat de recherche, double-cliquez sur Manager pour ajouter le « Manager » à la liste d’utilisateurs, puis cliquez sur Ajouter, comme illustré à la Figure 19.
Figure 19. Sélecteur de personnes affichant les titres des employés de WingtipSTS
Fermez toutes les instances d’Internet Explorer afin de nettoyer le cookie de session d’authentification par revendications.
Ouvrez une nouvelle instance d’Internet Explorer et naviguez jusqu’à https://intranet.contoso.com.
Essayez de vous connecter en tant que user2@wingtip.com. Y parvenez-vous ? Et si vous utilisez user3@wingtip.com ?
Conclusion
Au cours de cette procédure pas à pas, vous avez appris à créer un service d’émission de jeton de sécurité (STS, Security Token Service) personnalisé, puis configurer la relation d’approbation entre une batterie SharePoint et le service STS personnalisé. Ce dernier assume la fonction de fournisseur d’authentification. Lorsque des utilisateurs se connectent au site SharePoint, ils sont d’abord dirigés vers la page d’ouverture de session du service STS personnalisé, puis redirigés vers SharePoint après l’authentification.
Ressources supplémentaires
Pour plus d’informations, voir les ressources suivantes :
Blog de Steve Peschka : Share-n-dipity(éventuellement en anglais)
Centre de ressources sur la sécurité | SharePoint 2010(éventuellement en anglais)
Applets de commande de sécurité (SharePoint Foundation 2010)
Blogs, centres de ressources et forums SharePoint sur la sécurité
Présentations vidéo sur la sécurité dans SharePoint 2010(éventuellement en anglais)
Formation avancée pour développeurs SharePoint 2010(éventuellement en anglais)