Revendications personnalisées avec cadre de Genève et comment les utilisateurs « synch » dans votre application

StackOverflow https://stackoverflow.com/questions/1880228

Question

Peut-être que cette question met en évidence le peu que je sais sur la gestion des sinistres d'identité, mais ici il va.

Si vous utilisez WIF dans une application qui utilise un STS tiers d'identité et qui utilise les revendications personnalisées d'autorisation (quelque chose de pertinent et SpecificTo l'application comme CanCreateFooBar)

1) Comment puis-je gérer les utilisateurs? À savoir, les utilisateurs de dire AD ou tout autre fournisseur d'appartenances peuvent être identifiés, mais en interne dans mon système que je dois savoir à leur sujet et ont plus d'informations utilisateur qui n'a rien à voir avec l'identité (il woulndt vraiment logique d'avoir cette information disponible en dehors du système), et que les informations sur l'utilisateur devrait être persisté,
La question est Comment puis-je créer et gérer mes données du système (à partir du Ids) de manière intelligente?
Le scénario exact que j'ai dans mon esprit est un nouvel employé est ajouté à l'entreprise, système admin crée l'utilisateur pour le domaine avec un rôle particulier, comment mon système becoem au courant de ce fait? (Je voudrais probablement que le système pour inviter un administrateur du système pour une action

2) Où sont les valeurs de réclamation pour les utilisateurs et les rôles stockés et comment puis-je les modifier? Idéalement, je veux être en mesure de changer les perimissions pour un utilisateur particulier et de l'action. Y at-il des directives à ce sujet?

Je vois que ce sont probablement des questions très boiteux mais quand je pense à la façon de résoudre le problème que je viens avec plus de solutions complexes ou avec des solutions qui nécessitent beaucoup de duplicaiton (c.-à-créer l'utilisé en deux endroits) donc je m sûr que je suis juste ne pas penser à ce problème dans le droit chemin

Merci

Était-ce utile?

La solution

1) Vous ne gérez pas les utilisateurs, pas vraiment. Vous prenez simplement le IClaimsIdentity et l'utiliser comme source pour votre autorisation. À mon avis, vous ne devriez pas persistez les réclamations si vous pouvez vous en sortir sans le faire - les revendications doivent être la source de vos informations utilisateur.

Si vous voulez construire sur les demandes puis prendre une référence unique de l'identité des réclamations, par exemple l'adresse e-mail ou ppid / signature Dièse OU et l'utiliser pour construire votre propre base de données, et d'ajouter vos propres informations.

Toutefois, votre système ne sera jamais loin des changements dans une 3e identité du parti métabase - pas jusqu'à ce qu'un nouveau jeton SAML est émis et analysé dans votre application

.

2) Les valeurs de revendications sont stockées nulle part, à moins que vous les stocker. Comment vous traduisez cela en autorisations est à vous - mais généralement vous effectuez réclamations transformation à prendre les créances extérieures et les associer aux demandes internes à l'application que vous utilisez pour les autorisations. Parce que les revendications proviennent de fournisseurs externes vous ne pouvez pas les changer -. Vous n'êtes pas connecté à ces fournisseurs

Autres conseils

Comme vous le voyez, la fédération ne réduit pas nécessairement la nécessité d'approvisionnement. Ceci est une idée importante qui est pas évidente.

Il y a plusieurs façons d'aborder ce notamment:

  1. L'utilisation d'un produit de méta-annuaire ou virtuel ou
  2. En utilisant "l'approvisionnement JIT" (AKA "provisionnement dynamique" ou "à la volée provisioning").

Permettez-moi d'expliquer ce dernier. Cette solution, que je décris aussi sur mon blog , comprend deux, un IP STS-STS et une RP-STS. Le premier authentifie uniquement l'utilisateur; la seconde est spécifique à votre application et sait ce que les revendications sont nécessaires pour autoriser les utilisateurs de ce système. Les IP-STS ne peut pas délivrer ces attributs spécifiques à l'application, ce faisant, il faudrait votre service d'annuaire d'entreprise pour être encombré de toutes sortes d'informations spécifiques à l'application. Au lieu de cela, les attributs pour les utilisateurs qui sont maintenus dans ce magasin et émis par les IP-STS sont de nature générale et applicables à l'utilisateur quel que soit l'application qu'ils utilisent. Après l'authentification aux IP-STS et d'obtenir des revendications d'identité seulement de lui, le jeton est transmis aux RP-STS. Ce service jeton est étroitement couplé à votre application. Il sait ce que prétend les utilisateurs ont besoin d'accéder à différentes ressources. Il peut convertir les demandes d'identité seulement à celles qui sont nécessaires pour prendre cette décision de contrôle d'accès. Ainsi, les RP-STS est un transformateur de revendications qui mappe demandes liées à l'identité dans les spécifiques à l'application.

Comment la fourniture RP-STS l'utilisateur? Supposons qu'un nouvel employé est créé, comme dans votre exemple ci-dessus. Lorsque l'utilisateur accède à votre application, il sera rebondi aux RP-STS. Il ne sera pas connecté là, donc il va être rebondissait aux IP-STS. Le système admin a créé un compte pour lui, alors il sera capable de se connecter, et son navigateur lui rebondir à la RP-STS. Les RP-STS fendront le jeton, obtenir l'ID utilisateur (e-mail, PPID, etc.), et de voir qu'il ne sait pas qui est l'utilisateur. Ainsi, la mise à disposition de volonté RP-STS l'utilisateur. Il le fera en affichant une page Web, par exemple. Il peut recueillir des informations qui l'aide à déterminer le rôle de l'utilisateur lors de l'accès au RP. Après cela, l'utilisateur sera provisionné (à savoir, un enregistrement sera créé dans sa base de données contenant des valeurs de demande de lui), et les RP-STS émettra un jeton spécifique à votre application et le rediriger là-bas. L'application ne saura pas qu'il était juste provisionné; il suffit d'utiliser les allégations comme il le fait toujours. (Voir pourquoi je l'ai appelé l'approvisionnement JIT?)

Que faire si les choses changent après que l'utilisateur a été provisionné? D'ACCORD. Imaginez: l'utilisateur a été créé dans le magasin il y a des siècles de répertoire et a été provisionné comme décrit ci-dessus dans les RP-STS et il a utilisé le système avec bonheur depuis longtemps. Ensuite, il y a un changement de politique qui oblige les utilisateurs de votre application à accepter de nouvelles conditions générales (CGV). La prochaine fois que l'utilisateur se connecte à l'application, il sera redirigé vers le RP-STS, aux IP-STS, il va authentifie et être rebondi à votre RP-STS. À ce moment-là, il remarquera que l'utilisateur doit accepter le nouveau T & Cs, donc il montrera à l'utilisateur une page Web et d'obtenir leur accord. Par la suite, les RP-STS émettra un jeton de sécurité et le rediriger vers votre application. Votre application sera, comme toujours, gérer les demandes et faire ce qu'il doit faire pour autoriser l'accès. Il ne saura pas et ne se souciera pas que l'utilisateur était « réapprovisionné. » Vous pouvez également conserver les modifications de synchronisation entre le magasin d'identité (à savoir, votre répertoire d'entreprise) et votre magasin RP-STS réclamation de l'aide d'un produit tel que ILM (ou FIM comme il est maintenant appelé). En fonction de votre système, un produit qui fait retour la synchronisation des canaux comme celui-ci pourrait être plus approprié.

BTW, ce ne sont pas des questions "boiteux"! Il y a très keen questions qui reflètent la pensée profonde et la réflexion intelligente sur un problème très compliqué. D'autres que vous aurez besoin de répondre comprennent:

  • Comment les administrateurs de votre application sont mis à jour sa politique (par exemple, changer le T & Cs)? Qu'est-ce que l'interface utilisateur / API devez vous créer? Est l'interface utilisateur intégrée avec celle utilisée pour gérer la politique en faveur des IP-STS?
  • Quel genre de relations de confiance doit exister pour faire une telle système?
  • Que faire si le sujet n'utilise pas le profil passif? Et s'il utilise le profil actif et / ou il n'y a pas l'interface utilisateur?
  • Comment et où sont situés les clés? Quelles sont les autorisations nécessaires pour utiliser ces clés? Comment sont-ils reved, distribués, et comment sont-admins sys alertés quand ils sont sur le point d'expirer?

Ce truc est vraiment facile de faire la démonstration lors des réunions de groupes d'utilisateurs et à des conférences, mais en réalité, ce sont des choses très avancé. Si vous avez d'autres questions, ne hésitez pas à les poster ici ou entrer en contact w / me directement .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top