2014-05-13 4 views
0

Comment gérer les réclamations périmées dans WIF?Comment gérer les réclamations périmées dans WIF?

est ici la configuration:

  1. J'ai WIF STS qui fournit l'authentification pour de nombreuses applications Web MVC. Le STS fournit également des revendications, comme des privilèges, des courriers électroniques, etc.

  2. J'ai une application MVC que nous appellerons MyApp qui utilise le STS pour l'authentification et consomme les revendications fournies.

  3. J'ai une application MVC que nous appelons MyManager et qui permet à un administrateur de modifier les réclamations de tout utilisateur, par exemple les privilèges associés à un utilisateur.

Voici le problème:

  1. utilisateur ouvre une session "MisterUser" dans MyApp et obtient les biscuits FedAuth qui contiennent ses demandes - y compris une coutume "MyAppUser" (privilège) réclamation. MyApp vérifie cette réclamation pour vérifier que l'utilisateur peut effectuer des demandes sur MyApp.

  2. Parallèlement à la session MisterUser, "Admin" se connecte à MyManager et supprime la revendication MyAppUser de MisterUser. MisterUser peut continuer à utiliser MyApp jusqu'à ce que sa session expire, car les cookies FedAuth ont déjà été écrits et sont bons pour cette session.

Il est évident que ce que je veux qu'il se passe ici est de fermer l'accès MisterUser immédiatement après l'administrateur retire son MyAppUser (privilège) réclamation. Quelle est la meilleure façon d'accomplir cette tâche?

Il est tout à fait possible que ce soit un problème courant avec une solution simple, mais j'ai été incapable de découvrir de véritables idées sur les heures de recherche.

Toute aide est grandement appréciée!

+0

Il existe, si vous utilisez ADFS, une demande de connexion que vous pouvez essayer d'utiliser, voir cette [SOlink] (http://stackoverflow.com/questions/8228746/wif-federatedsignout-not-signing-user-out- tous-sites) – ManyRootsofAllEvil

Répondre

0

Comme vous le dites, les revendications sont valides pour la session. Ils ne sont pas dynamiques et (si vous y réfléchissez) mettre en place une sorte de mise à jour dynamique STS serait un cauchemar.

Les revendications sont mises à jour lorsque vous vous connectez, la seule façon de gérer cela est de vous déconnecter puis de vous connecter "sous le capot" pour que l'utilisateur ne s'en rende pas compte.

J'ai posé une question similaire - référez-vous: Updating claims with ADFS and WIF et la réponse.

+0

Merci pour la réponse rapide! La clé ici serait de savoir quand se déconnecter et se connecter sous le capot et ce serait en effet un cauchemar à mettre en œuvre comme vous le dites. Je suppose que la durée de vie de ces revendications devra être un risque acceptable. –

Questions connexes