L'utilisateur n'est pas obligé de s'authentifier à nouveau dans ADFS 2.0 après Sharepoint 2010 session expire

Ce cas est très semblable à la question par Wiktor Zychla, voir Comment définir le délai d'attente correctement lorsque la fédération avec l'ADFS 2.0

Nous connaissent le même problème, ADFS heureusement redirige l'utilisateur vers le site Sharepoint, et FedAuth cookie est recréé, même si ADFS devrait demander les informations d'identification de l' - nous voulons que l'utilisateur de s'authentifier à nouveau après une certaine période d'inactivité. En gros on dirait que la session est toujours coulissantes.

Nous avons désactivé les cookies persistants, de sorte que le FedAuth cookie est supprimé lorsque la session est terminée par la fermeture du navigateur, l'utilisateur est obligé de s'authentifier à nouveau après toutes les fenêtres du navigateur est fermé et un nouveau démarrage de la session, de sorte que les œuvres.

Autant je comprends le Web SSO paramètre de durée de vie dans ADFS composant logiciel Enfichable des contrôles de la durée après laquelle l'utilisateur doit avoir besoin de s'authentifier à nouveau sur les services AD FS (entrer ses informations d'identification à nouveau). Tokenlifetime et LogonTokenCacheExpirationWindow ensemble de contrôle, lors de la Sharepoint doit rediriger les requêtes vers les services AD FS pour afin de renouveler FedAuth cookie.

Voici une citation de http://msdn.microsoft.com/en-us/library/hh446526.aspx :

Pour forcer les utilisateurs à entrer leurs informations d'identification chaque fois qu'ils sont redirigés vers ADFS, vous devez définir le web SSO vie dans ADFS être inférieure ou égale à SAMLtokenlifetime moins la valeur de LogonTokenCacheExpirationWindow.

Donc, nous avons fait suivant:

1. Réglage de la durée de vie du jeton SAML

Add-PSSnapin Microsoft.ADFS.PowerShell

Set-AdfsRelyingPartyTrust –TargetName "[ourrelayingpartytrustreference]" –TokenLifeTime 7

2. Réglage LogonTokenCacheExpirationWindow (et la désactivation des cookies persistants)

Add-PSSnapin Microsoft.SharePoint.Powershell -EA 0

$sts = Get-SPSecurityTokenServiceConfig
$sts.UseSessionCookies = $true
$sts.LogonTokenCacheExpirationWindow = (New-Timespan -Minutes 1)

$sts.Update()

iisreset

3. Ajusté Web SSO durée de vie: 5 minutes dans AD FS 2.0 composant logiciel enfichable console de Gestion (de l'exécution de Get-ADFSProperties dans Powershell renvoie correctement SsoLifetime: 5)

Donc le résultat attendu est:

  1. Utilisateur démarre une nouvelle session, demande le site web
  2. Navigateur est redirigé vers les services AD FS, utilisateur d'entrer des informations d'identification, et le navigateur est redirigé vers le site Sharepoint, FedAuth cookie est généré
  3. Utilisateur reste inactif pendant 10 minutes (pour vérifier que la session de glissement expiration de la période)
  4. Utilisateur demande une page Sharepoint, le navigateur est redirigé vers les services AD FS
  5. Depuis Web SSO avait une durée de vie de 5 minutes, et c'était, comme dans la documentation msdn instruit, moins de SAMLtokenlifetime moins la valeur
    de LogonTokenCacheExpirationWindow (SAMLtokenlifetime -
    LogontokenCacheExpirationWindow = 6 minutes), AD FS invite l'utilisateur
    pour des informations d'identification, l'utilisateur entre les informations d'identification, et le navigateur est redirigé
    pour Sharepoint page demandée et FedAuth cookie est recréé.

Actuelle comportement (étapes 1 à 4 de similaire):

(5.) AD FS ne pas demander des informations d'identification, le navigateur est redirigé vers une page Sharepoint et FedAuth cookie est recréé.

Donc, pour nous, il ressemble à AD FS session n'expire jamais, peu importe ce que nous faisons.
Si nous créons un faux configuration de réglage LogonTokenCacheExpirationWindow valeur supérieure à SAMLtokenlifetime (par exemple LogonTokecacheExpirationWindow = 8 et SAMLtokenlifetime = 7), nous obtenons le comportement attendu de la boucle entre Sharepoint et AD FS.

Nous sommes désespérément à la recherche d'une solution pour bien expiration de la session, si l'utilisateur est resté inactif pendant une certaine période de temps.

Nous avons également essayé de suivre le changement de configuration (en fonction des conseils à http://social.msdn.microsoft.com/Forums/en-US/Geneva/thread/802b1bb6-cda3-4470-a0d1-ee709d5c4b7c/):

Set-ADFSProperties -SsoLifetime 1

Set-ADFSProperties -ReplayCacheExpirationInterval 1

Set-ADFSProperties -SamlMessageDeliveryWindow 1

Mondial.asax changements encore fait.

Comme je le comprends, nous avons tout configuré selon la documentation, mais on ne peut pas forcer l'utilisateur de s'authentifier à nouveau. Toute aide en pointant les erreurs de configuration est apprécié.

OriginalL'auteur Ahis | 2013-05-30