Quels sont les avantages perçus / réels de Kerberos? Y a-t-il des alternatives viables à la technologie?

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

Question

Nous prévoyons utiliser kerberos dans notre architecture. Je voudrais savoir ce que perçu ou avantages réels de cette technologie a, et s'il y a des alternatives.

Notez que nous avons un côté client .net et côté serveur java. la communication sera via le bus de messagerie et SOA

Pas de solution correcte

Autres conseils

Si vous travaillez dans un environnement Windows pour la plupart (à savoir Windows Server 2K3, un contrôleur de domaine, Active Directory, etc.) un en particulier est que vous pouvez utiliser usurpation d'identité par .NET avec un serveur Web partagé et le serveur de base de données. En utilisant la méthode NTLM plus, vous ne pouvez pas faire un "double-hop".


Regardons un exemple:

  • Vous avez un serveur web (WEB1)
  • Vous avez un serveur de base de données sur une machine séparée (DB1)
  • Vous avez un accès utilisateur de votre site Web (USER1)

USER1 frappe une page qui affiche une liste des commandes. Votre serveur WEB1 doit interroger DB1 pour cette information pour afficher sur la page. Vous voulez limiter ce que les commandes sont visibles en fonction des pouvoirs et des droits d'accès de l'utilisateur. Ainsi, vous définissez des groupes d'actifs et d'assigner des répertoires utilisateurs en conséquence. Sur la base de données vous donner les différents groupes différents la sécurité (GROUPE1 pourrait avoir seulement et sélectionnez GROUPE2 pourrait obtenir select, insert, et mise à jour, par exemple).

NTLM ne supporte pas la double-hop nécessaire pour le faire. WEB1 doit envoyer les informations d'identification de USER1 à DB1 (sinon WEB1 doit se connecter à DB1 avec un nom d'utilisateur et mot de passe dédié connu hardcoded dans le web.config par exemple qui a généralement d'avoir un accès complet à l'appui de tous les rôles utilisateur possibles). Vous pouvez imaginer que cela pourrait être un danger pour la sécurité devrait WEB1 être compromise, de sorte que vous ne pouvez pas le faire, sinon celui qui prend le contrôle de WEB1 (par injection sql peut-être) pourrait faire quoi que ce soit le compte utilisateur dédié pourrait ou usurper l'identité qui ils veulent. Kerberos, par délégation sur Windows Server, prend en charge de faire ce second saut en gardant la clé d'autorisation cryptée à partir de votre serveur de domaine intact et passé le long, ainsi que vérifié que cela est permis (aux deux extrémités, voir ci-dessous pour mettre cela en place sur vos serveurs car il doit être autorisé EXPLICITE).

Il est très utile de le faire lors du développement des applications web intranet qui ont une base de données back-end (qui est de 99% du temps le cas, non?) Et que vous souhaitez contrôler l'autorisation et l'authentification par sécurité intégrée de Windows. Kerberos est vraiment votre seul choix à moins que votre serveur Web et le serveur de base de données sont sur la même machine, ce qui signifie qu'il n'y a pas le transfert des pouvoirs et aucune usurpation d'identité nécessaire.

Voir aussi:

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