Kerberos, délégation et comment le faire correctement?

J'en ai deux distincts maison des applications qui ont besoin de communiquer entre eux. L'un est une application frontend (asp.net en fait, l'autre est une interface backend pour une application de comptabilité. L'interface d'administration n'a pas été créé spécifiquement pour cette interface est une interface générique que de nombreuses autres applications utiliser pour l'intégrer à notre produit.

Pour la commodité des utilisateurs, nous souhaitons fournir une Authentification Windows dans notre application frontend. Cela signifie, cependant, que nous devons transmettre les informations d'identification sur l'application backend qui a de les vérifier.

Nous ne souhaitons pas mettre en place notre frontend comme "de confiance" de l'application en arrière-plan qui peut s'authentifier en tant qu'utilisateur. Si l'interface était d'être piraté, il serait alors aussi de compromettre le système backend.

Si je comprends bien, une façon de le faire avec l'Authentification Windows est la Délégation Kerberos. Cependant, cela exige d'être explicitement activé pour l'utilisateur qui doit être délégué, et la machine qui ne la délégation (le serveur avec notre frontend). Par défaut, ces options sont désactivées dans Active Directory, et je soupçonne que de nombreux administrateurs système ont leurs réserves à propos de les allumer pour tous leurs utilisateurs.

Aussi, je ne suis pas vraiment sûr que c'est ce que la Délégation Kerberos était destinée. Je n'ai pas besoin de notre frontend pour emprunter l'identité de l'utilisateur qui se connecte. J'ai juste besoin de prouver que cet utilisateur est authentifié lui-même pour moi.

Comment le feriez-vous?

Quelle est la fin de l'authentification? Vous indiquez le front-end est Intégrée de Windows (donc, un intranet app), mais c'est la fin de l'app WIA aussi?
Kerberos est pour cela - par exemple les Utilisateurs de notre réseau local de se connecter à un serveur web qui à son tour se connecte à un Serveur SQL en utilisant les informations d'identification des utilisateurs. Cela nous permet d'avoir par table/champ permissions en fonction de l'utilisateur. La difficulté ici est que les deux systèmes doivent être conscients de la délégation Kerberos - le site web pour obtenir les différents jetons et le back-end pour les valider par rapport à la même autorité. Je ne crois pas que ce sera possible directement, mais vous pouvez être en mesure de mettre en place une délégation conscient de proxy entre l'INTERFACE utilisateur et le back-end.

OriginalL'auteur Vilx- | 2009-10-22