juillet
2010
Il y a quelques jours, je me suis intéressé à l’authentification via ADFS sur Sharepoint. De nombreuses documentations existent pour indiquer comme créer une application web avec une méthode d’authentification par claims. Cependant, il existe un scénario non pris en charge par cette création d’application web.
J’ai un sharepoint 2010 avec une application web qui contient plusieurs sites et donc du contenu. Il n’est donc pas possible de la détruire pour la recréer avec la bonne authentification. Comment modifier cette application web pour avoir une authentification par claim ADFS ?
Note : Je n’ai pas installé de serveur ADFS dans ma ferme Sharepoint.
Mon application web est accessible via https://intranet.sharepoint.com (nom fictif). Avec Sharepoint Management Shell, passez l’application en authentification par claim.
$webapp.UseClaimsAuthentication = 1
$webapp.Update()
$webapp.ProvisionGlobally()
Ensuite, il faudra récupérer le certificat de signature de jetons sur votre serveur ADFS (adfs_token_signing.cer) puis le transférer sur votre ferme Sharepoint. Vous pourrez créer le provider de claims :
# mappage des attributs envoyés dans le claim ADFS, à personnaliser selon votre modèle de claim
$map1 = New-SPClaimTypeMapping "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
$map2 = New-SPClaimTypeMapping "http://schemas.xmlsoap.org/claims/Group" -IncomingClaimTypeDisplayName "Group" -SameAsIncoming
# realm défini dans ADFS
$realm = "urn:monentreprise:internal"
# URL de connexion du service ADFS distant
$signinurl = "https://federation.partenaire.com/adfs/ls/"
# nom du service de claim dans Sharepoint
$federationServiceName = "Federation avec Partenaire.com"
# création de l'"authentication provider". L'authentification se fera par adresse email.
$ap = New-SPTrustedIdentityTokenIssuer -Name $federationServiceName -Description "ADFS 2.0" -Realm $realm -ImportTrustCertificate $cert -ClaimMappings $map1,$map2 -SignInUrl $signinurl -IdentifierClaim $map1.InputClaimType
# Modification de la méthode d'authentification de votre application
Set-SPWebApplication -Identity $webapp -Zone "Default" -AuthenticationProvider $ap
# Ajout du certificat de signature de jeton ADFS dans les autorités racine de certification
New-SPTrustedRootCertificate -Name "ADFS Token Signing" -Certificate $cert
Il ne vous reste plus qu’à tester la connexion à votre application. Vous devriez être redirigé vers $signinurl. Si l’ADFS distant est correctement configuré, vous devriez pouvoir vous connecter grâce aux bons logins.
Une fois connecté, vous reviendrez sur votre application web. Sans configuration des permissions du site Sharepoint, l’accès vous sera normalement refusé. Vous devrez ajouter des droits aux utilisateurs venant d’ADFS dans Sharepoint.
Voilà pour la configuration d’ADFS sur une application existante