Le but de cet article est d’ajouter un serveur AD FS 2.0 à SharePoint. Afin que SharePoint reconnaisse ce serveur comme fournisseur d’identité, il faut passer par la console d’administration de SharePoint (utilisant PowerShell). Nous allons avons besoin de deux certificats, que nous plaçons à la racine du disque :

  • root.cer : le certificat racine de l’autorité de certification
  • adfs.cer : le certificat dit de ‘token signing’ du serveur AD FS 2.0.

Le script PowerShell à utiliser est le suivant, détaillé ligne par ligne.

$root = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:root.cer")

On crée tout d’abord une variable root à partir du certificat racine de l’autorité de certification.

New-SPTrustedRootAuthority -Name "Token Signing Cert Root" -Certificate $root

Cette commande ajoute l’autorité racine de confiance à SharePoint. Elle prend en paramètre le nom de l’autorité racine de confiance à créer et le certificat qui est ici $root.

$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:adfs.cer")
New-SPTrustedRootAuthority -Name "Token Signing Cert" -Certificate $cert

On refait les deux mêmes étapes pour le certificat de token signing utilisé par le serveur AD FS 2.0.

$map = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
$map2 = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" -SameAsIncoming

Avec ces deux commandes, on va créer deux mappages. Le premier est sur l’adresse mail et le second sur les revendications de rôles.

$realm = "urn:" + $env:ComputerName + ":adfs"

On crée ensuite une variable realm qui va permettre de définir le domaine utilisé par SharePoint.

$ap = New-SPTrustedIdentityTokenIssuer -Name "Identification partenaire" -Description "SharePoint secured by SAML" -realm $realm -ImportTrustCertificate $cert -ClaimsMappings $map,$map2 -SignInUrl "https://adfsresource.treysearch.com/adfs/ls" -IdentifierClaim “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

Enfin on exécute la commande “New-SPTrustedIdentityTokenIssuer” qui configure SharePoint afin qu’il puisse se connecter au service d’émission de jeton de l’ « Identity Provider ». On va maintenant définir chaque attribut, pour mieux comprendre ce que fait cette fonction :

  • « Name» : Indique le nom qui apparaitra dans l’application Web lorsque l’utilisateur choisira son fournisseur d’authentification pour se connecter ;
  • « realm » : Défini le domaine que SharePoint doit utiliser pour se connecter à l’ « Identity Provider » ;
  • « ImportTrustCertificate » : Importe le certificat de token signing ;
  • « ClaimMapping » : Représente l’endroit où nous indiquons à l’ « Identity Provider » les Claims nécessaires pour s’authentifier ;
  • « SignInUrl » : Défini l’URL où les utilisateurs sont redirigés pour s’authentifier auprès de l’ « Identity Provider ». Il faut renseigner le nom du serveur AD FS suivi de /adfs/ls (dans notre cas, par exemple : https://adfsresource.treysearch.com/adfs/ls ;
  • « IdentifierClaim » : Indique à SharePoint le Claim qui permettra d’identifier l’utilisateur. Dans notre cas, nous désirons que l’utilisateur soit identifié par l’adresse mail ;

Une fois le serveur ADFS reconnu comme « Identity Provider » par SharePoint. Vous verrez apparaitre votre ADFS dans la catégorie « Trusted Identity Provider » des paramètres des applications SharePoint.