Comment puis-je configurer IIS pour que l'utilisateur informations d'identification de domaine sont utilisés lors de la connexion à SQL server?
Nous avons récemment publié la dernière version de notre application intranet, qui maintenant utilise l'authentification windows standard, et doit être capable de se connecter à SQL server configurée avec les informations d'identification de domaine.
Récemment, nous avons constaté que sur un couple de déploiements de clients, bien qu'IIS peut voir de l'utilisateur informations d'identification de domaine, de ne pas passer à SQL server. Au lieu de cela, il semble qu'il utilise le compte anonyme. C'est en dépit de suivre toutes les étapes appropriées (modification de la sécurité de répertoire pour Gagner Auth, la mise à jour Web.Config pour utiliser Win Auth, et à nier les utilisateurs anonymes).
J'ai fait beaucoup de lecture qui suggère que nous devons faire en sorte que Kerberos est en place, mais je ne suis pas sûr (a) degré de validité de ce qui est (c'est à dire est-ce vraiment nécessaire?) ou (b) comment déterminer si c'est de la configuration ou de la façon d'aller sur la configuration des.
Nous sommes dans une situation où nous devons être en mesure de configurer IIS ou de la demande de travail pour le client, ou d'expliquer au client exactement ce qu'ils doivent faire pour le faire fonctionner.
Nous avons réussi à reproduire ce sur notre réseau interne avec un test de SQL server et d'un développeur IIS boîte, de sorte que nous allons nous amuser avec ce jeu et voir si nous pouvons trouver une solution, mais si quelqu'un a des idées brillantes, je serais très heureux de les entendre!
Je tiens tout spécialement à entendre les pensées des gens ou des conseils en matière de Kerberos. Est-ce une obligation, et si elle l'est, comment puis-je le contour des clients de la manière dont il doit être configuré?
Oh, et j'ai aussi vu un couple de personnes estiment que la "classique-hop" règle pour les domaines et en passant les informations d'identification windows, mais je ne sais pas combien de poids ce fait est?
Merci!
Matt
OriginalL'auteur Matt Winward | 2010-11-01
Vous devez vous connecter pour publier un commentaire.
Ce qui est appelé la Double-Hop Problème et interdit la transmission des informations d'authentification des utilisateurs à des tiers. Cela se produit quand ils naviguer à partir d'une machine, à l'encontre d'un site à l'autre (premier saut), et du transfert de la créance à un tiers de la machine (deuxième hop).
Le problème n'apparaîtra pas si vous êtes l'hôte d'IIS et SQL Server sur la même machine.
Il y a beaucoup plus de détails techniques publiés sur ce à Comment utiliser le Système.DirectoryServices espace de noms dans ASP.NET, ce qui explique le double-saut problème, du primaire et du secondaire jetons.
Excellents articles.. merci! On dirait que nous sommes face à trois solutions possibles: informer le client de déployer Kerberos, exécutez l'application web à l'aide d'un fixe de compte de domaine pour se connecter à SQL Server ou à l'accueil de l'application web avec SQL Server.
Pour toute personne intéressée, c'était le " double-hop problème, et notre solution finale a été dans l'Active Directory Utilisateurs et Ordinateurs composant logiciel enfichable MMC. Nous avons regardé les propriétés du compte de l'ordinateur (pour le serveur IIS) et sur la “Délégation” de l'onglet permis à la délégation de services spécifiques.Nous avons ajouté de SQL Server qui héberge les bases de données d'application à la liste des machines que d'accepter la délégation et a précisé le service MSSQLSvc. Cela garantit que le serveur IIS n'est fiable que pour transmettre des informations d'identification pour le Serveur SQL, et pas pour d'autres services.
OriginalL'auteur sisve
Pour exécuter votre application en vertu de l'utilisateur de l'Active Directory ou des informations d'identification Windows, s'assurer de:
votre chaîne de connexion doit avoir
Integrated Security=SSPI
pour s'assurer de l'utilisateur Windows/AD informations d'identification sont transmises à un Serveur SQL server.c'est à dire
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
pas de travail? Quels symptômes avez-vous?
Il se connecte à SQL server sous Windows NT\Anonymous Logon
Désolé, il aurait été "NT Authority\Anonymous Logon'
OriginalL'auteur p.campbell
Vous dites que vous n'êtes pas sûr "comment déterminer si c'est de la configuration ou de la façon d'aller sur la configuration".
Pour cela, je voudrais vous recommander chaudement d'un outil appelé DelegConfig. C'est un très appli très pratique que vous pouvez vous dire si kerberos est correctement installé.
Le décompresser dans un répertoire de configuration d'un répertoire virtuel dans IIS pour pointer vers elle. Allez à la page principale et vous dire serveur d'arrière-plan que vous souhaitez autoriser l'accès (par exemple, UNC, SQL, HTTP, etc..) et de vous dire sa configuration correctement ou non, et expliquer pourquoi.
Il a même la possibilité de recongiure kerberos pour résoudre le problème si vous le désirez (bien que je n'ai pas utilisé ce - que je préfère reconfiguire moi-même à comprendre ce que j'ai fait à l'avenir)
Je sais que c'est trop tardive pour votre problème en particulier, mais de la pensée, il vaut la peine de partager pour les autres qui suivent - en particulier les outils de la capacité d'expliquer pourquoi la délégation est ou n'est pas de travail. Je l'ai trouvé invaluble.
OriginalL'auteur Grhm