Coloana IIS pentru dezvoltatori asistență vocală
Autentificarea Kerberos și depanarea problemelor de delegare
Pentru a particulariza această coloană nevoilor dumneavoastră, dorim să vă invită să remiteți idei despre subiecte care v-ar interesa ce și problemele pe care doriți să vedeți tratate în viitor articole din baza de cunoștințe și asistență vocală coloane. Puteți trimite idei şi feedback folosind formularul Cere pentru ea . De asemenea, există un link către formularul de la partea de jos a acestei coloane.
Numele meu este Martin Smith și sunt cu grup de rezolvare critice din Microsoft Internet Information Services (IIS) al Microsoft. Am fost cu Microsoft nouă ani şi au fost cu echipa IIS toate nouă ani. Am compilat informații din mai multe locații pe
http://MSDN.Microsoft.com și
http://www.microsoft.com despre Kerberos și cum se depanează problemele de delegare.
IIS 6.0
Următoarea documentație descrie cum se configurează delegare în Microsoft Windows Server 2003. Această carte albă are informații specifice pentru Network Load Balancing (NLB) dar include excelent detalii despre cum se configurează un scenariu delegat fără a utiliza NLB. Pentru a vizualiza această documentație, vizitați următorul site Web Microsoft:
http://technet.microsoft.com/en-us/library/cc757299.aspxNotă Utilizați HTTP Service Principal Names (spn), în special atunci când utilizați NLB.
Altă problemă populare Kerberos recent a fost nevoie pentru a permite mai multe fonduri comune de aplicație să utilizați același nume DNS. Din păcate, atunci când utilizați Kerberos pentru a delega acreditările, poate lega același nume SPN (Service Principal) la diferite aplicații. Nu puteți face acest lucru din cauza proiectare Kerberos. Protocolul Kerberos necesită mai multe secretele partajate pentru protocolul să funcționeze corect. Utilizând același SPN pentru diferite aplicații, vom elimina unul dintre secretele partajat. Serviciul director Active Directory nu vor accepta această configurație de Protocolul Kerberos din cauza problemei de securitate.
Configurarea spn în acest mod provoacă autentificarea Kerberos să nu reușească. O posibilă soluție pentru această problemă ar fi utilizarea protocol trecerea. Autentificare inițială între client și Server execută IIS ar fi tratat utilizând Protocolul de autentificare NTLM. Kerberos ar ocupa de autentificare între IIS și resurse server back-end.
Microsoft Internet Explorer 6 sau o versiune ulterioară
Browserul client pot avea probleme, cum ar fi primesc solicitări repetate de log on pentru mesajele de eroare "401 acces refuzat" sau acreditările de pe serverul care execută IIS. Am găsit următoarele două probleme care pot ajuta la rezolvarea acestor probleme:
-
Verificați dacă Activați Autentificarea integrată Windows este selectat în proprietăți ale browserului. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
Imposibil de 299838 să negocieze autentificarea Kerberos după upgrade la Internet Explorer 6
-
Dacă în Adăugare/eliminare programe este activată Configurația avansată de securitate Internet Explorer, trebuie să adăugați un site care utilizează delegare la
Lista de situri de încredere . Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:815141 configurația avansată de securitate Internet Explorer modifică experiența de navigare
IIS 5.0 și IIS 6.0
După ce faceți upgrade de la IIS 4.0 IIS 5.0 sau IIS 6.0, delegare poate să nu funcționeze corect, sau eventual cineva sau o aplicație a modificat proprietatea de metabază NTAuthenticationProviders.
Pentru mai multe informații despre modul de a rezolva această problemă, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
248350 autentificarea Kerberos nu după upgrade de la IIS 4.0 la IIS 5.0
O anumită zonă de probleme pot apărea atunci când setați SPN
Determinați numele serverului
Determinați dacă vă conectați la site-ul Web utilizând numele NetBIOS real al serverului sau utilizând un nume alias, cum ar fi un nume DNS (de exemplu, www.microsoft.com). Dacă se accesează serverul Web utilizând un nume decât numele real al serverului, un nou nume SPN (Service Principal) trebuie să fi înregistrat utilizând instrumentul Setspn din Windows 2000 Server Resource Kit. Deoarece serviciul director Active Directory nu știți acest nume de serviciu, serviciul acordarea tichetelor (gt) vă oferă un permis pentru autentificarea utilizatorului. Acest comportament forțează clientul să utilizați următoarea metodă de autentificare disponibile, care este NTLM, să renegocieze. Dacă serverul Web răspunde la un nume DNS al www.microsoft.com, dar serverul este denumit webserver1.development.microsoft.com, trebuie să înregistrați www.microsoft.com în Active Directory pe serverul care execută execută IIS. Pentru aceasta, trebuie să descărcați instrumentul Setspn și instalați-l pe serverul care execută IIS.
Dacă utilizați Windows Server 2003 și IIS 6, instrumentul Setspn pentru Microsoft Windows Server 2003 este disponibil la următoarea locație:
http://support.microsoft.com/kb/970536Pentru a determina dacă vă conectați utilizând numele real, încercați să vă conectați la serverul utilizând numele real al serverului în loc de numele DNS. Dacă nu este posibilă conectarea la server, consultați secțiunea "Verificați computerul este încredinţate pentru delegare".
Dacă vă conectați la server, urmați acești pași pentru a seta o SPN pentru numele DNS pe care îl utilizați pentru a vă conecta la server:
-
Instalați instrumentul Setspn.
-
Pe serverul care execută IIS, deschideți un prompt de comandă și apoi deschideți folderul C:\Program Files\Resource Kit.
-
Executaţi următoarea comandă pentru a adăuga această nouă SPN (www.microsoft.com) la Active Directory pentru server:
Setspn - A HTTP/www.microsoft.com webserver1Notă În această comandă, webserver1 reprezintă numele NetBIOS al serverului.
Primiți o ieșire care este similar cu următorul:
Registering ServicePrincipalNames for CN=webserver1,OU=Domain Controllers,DC=microsoft,DC=comHTTP/www.microsoft.com
Updated object
Pentru a vedea o listă de spn pe server pentru a vedea această valoare nouă, tastați următoarea comandă pe serverul care execută IIS:
Setspn -L webservernameRețineți că nu trebuie să se înregistreze toate serviciile. Multe tipuri de servicii, cum ar fi HTTP, W3SVC, WWW, RPC, CIFS (fișier access), WINS și de alimentare neîntreruptibilă (UPS), de aprovizionare va mapa un tip de serviciu implicit care este denumit gazdă. De exemplu, dacă software-ul client utilizează un SPN HTTP/webserver1.microsoft.com pentru a crea o conexiune HTTP pentru serverul Web pe webserver1.microsoft.com server, dar acest SPN nu este înregistrat pe server, controlerul de domeniu Windows 2000 va automat mapați conexiunea la HOST/webserver1.microsoft.com. Această mapare se aplică numai dacă serviciul Web se execută sub contul local de sistem.
Verificați dacă computerul este încredinţate pentru delegare
Dacă acest server care execută IIS este membru de domeniu, dar nu este un controler de domeniu, computerul trebuie să fie încredinţate pentru delegare pentru Kerberos să funcționeze corect. Pentru a face acest lucru, urmați acești pași:
-
Pe controlerul de domeniu, faceți clic pe Start, indicați spre Setăriși apoi faceți clic pe Panoul de Control.
-
În panoul de Control, deschideți Instrumente de administrare.
-
Faceți dublu clic pe Active Directory Users and Computers.
-
Sub domeniul dvs., faceți clic pe computere.
-
În lista de găsi server care execută IIS, faceți clic dreapta pe numele serverului și apoi faceți clic pe Proprietăți.
-
Faceți clic pe fila General , faceţi clic pentru a selecta
Încredere pentru delegare caseta de selectare, și apoi faceți clic pe
OK.
Rețineți că dacă mai multe site-uri Web sunt accesibile cu același URL dar pe porturi diferite, delegare nu va funcționa. Pentru a face acest lucru, trebuie să utilizați alt hostnames și spn diferite. Când Internet Explorer solicită fie http://www. mywebsite.com sau http://www. mywebsite.com:81, Internet Explorer solicită un permis pentru SPN HTTP/www.mywebsite.com. Internet Explorer nu se adaugă portul sau virtual la solicitarea de SPN. Acest comportament este aceeași pentru http://www. mywebsite.com/app1 sau http://www. mywebsite.com/app2. În acest scenariu, Internet Explorer va solicita un permis pentru SPN http://www. mywebsite.com de la centrul de cheie de distribuire (KDC). Fiecare SPN pot fi declarate numai pentru o identitate. De aceea, de asemenea, ar primi un mesaj de eroare KRB_DUPLICATE_SPN dacă încercați să declare această SPN pentru fiecare identitate.
Delegare și Microsoft ASP.NET
Pentru mai multe informații despre configurația pentru delegarea acreditărilor atunci când utilizați o aplicație ASP.NET, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
810572 cum se configurează o aplicație ASP.NET pentru un scenariu de delegare
Asumare și delegare sunt două metode pentru un server pentru a autentifica în numele clientului. Decide care dintre aceste metode pentru a utiliza și implementarea lor poate provoca confuzie. Trebuie să examinați diferența dintre aceste două metode și examinați care dintre aceste metode, se recomandă utilizarea pentru aplicația. Recomandarea mea ar fi să citiți următoarea documentație pentru detalii suplimentare:
Referințe
http://technet.microsoft.com/en-us/library/cc757299.aspx
http://msdn.microsoft.com/msdnmag/issues/05/09/SecurityBriefs/default.aspx
305971 Windows 2000 Server solicită utilizatorului de domeniu pentru acreditări
262177 cum se activează înregistrarea în jurnal de evenimente Kerberos
326985 cum se depanează problemele legate de Kerberos în IIS
Prezentare web de asistență TechNet 842861 : autentificarea Kerberos depanare cu aplicațiile Web securizate și Microsoft SQL Server
Ca întotdeauna, vă liber să prezinte ideile pe teme doriți abordate în viitor coloane sau din baza de cunoștințe utilizând
Formular Cere pentru ea .