Použití ověřování pomocí protokolu Kerberos v serveru SQL Server

Souhrn

Poznámka: Konfigurace počítače serveru SQL Server pro připojení s ověřováním protokolem Kerberos v novějších verzích serveru SQL Server, naleznete v následujících tématech:

Použití ověřování pomocí protokolu Kerberos se serverem SQL Server

Registrace hlavní název služby

Pokud máte jakékoli problémy prostřednictvím připojení pomocí protokolu Kerberos, můžete použít nástroj Správce konfigurace protokolu Kerberos, jak je popsáno v následující blogu MSDN:

Správce konfigurace protokolu Kerberos
S Microsoft SQL Server 2000 můžete použít ověřování pomocí protokolu Kerberos. SQL Server 2000 podporuje tuto funkci v rámci typické instalace systému Microsoft Windows 2000 nebo Microsoft Windows Server 2003 Active Directory domény. Pomocí systému Microsoft Windows 2000 Service Pack 3 (SP3) a Windows Server 2003 můžete povolit ověřování pomocí protokolu Kerberos v serverových clusterech.

Další informace o této přidané funkce klepněte na následující číslo článku databáze Microsoft Knowledge Base:
235529 podporu protokolu Kerberos v clusterech serverů se systémem Windows 2000


Poznámka: Tuto funkci můžete použít pouze v případě, že používáte systém Windows 2000 SP3 nebo Windows Server 2003.

Vytváření clusterů převzetí služeb při selhání serveru SQL Server 2000 také používá tuto funkci. Je-li prostředek síťového názvu, který je závislý na serveru SQL Server v clusteru se systémem Windows 2000, můžete použít ověřování pomocí protokolu Kerberos u prostředku po upgradu počítače na systém Windows 2000 SP3 nebo Windows Server 2003. Chcete-li nainstalovat SQL Server failover clustering, musí mít Microsoft SQL Server 2000 Enterprise Edition nebo Developer Edition nainstalována.

Poznámka: Koncepty a diskuse v tomto článku, které se vztahují k serveru SQL Server 2000 se vztahuje rovněž na SQL Server 2005. Další informace o této problematice v SQL Server 2005 naleznete v následujících tématech v SQL Server 2005 Books Online:
  • Jak: Povolit ověření protokolem Kerberos, včetně SQL Server virtuálních serverů v clusterech serverů
  • Registrace hlavní název služby
Další informace o tom, jak Ujistěte se, že používáte ověřování pomocí protokolu Kerberos na serveru SQL Server 2005 klepněte na následující číslo článku databáze Microsoft Knowledge Base:

909801 jak Ujistěte se, že používáte ověřování pomocí protokolu Kerberos při vytvoření vzdáleného připojení k instanci serveru SQL Server 2005

Další informace

SQL Server můžete použít ověřování pomocí protokolu Kerberos pro clustery serverů. Samostatné počítače se systémem SQL Server nebo instance SQL serveru spuštěné na virtuálním serveru, můžete použít ověřování pomocí protokolu Kerberos.

Připojení k serveru je spuštěna Internetová informační služba a vytvořit připojení pomocí protokolu Kerberos na serveru SQL Server 2000

Tato část popisuje, jak připojit k serveru se systémem Internetová informační služba (IIS) protokolu Kerberos připojení k serveru, který je spuštěn SQL Server.

Poznámka: před provedením postupu instalace, stažení Kerbtray a SetSPN nástroje.

Chcete-li stáhnout nástroj Kerbtray, naleznete na následujícím webu společnosti Microsoft:S Kerbtray.exe, můžete snadno ověřit nebo odebrat (nebo obojí) lístky protokolu Kerberos z některého z přidružených počítačů, které jsou používány.


Chcete-li stáhnout nástroj SetSPN, naleznete na následujícím webu společnosti Microsoft:

Následující postup obsahuje příklad nastavení sekvence, kde používáte ověřování pomocí protokolu Kerberos prostřednictvím stránky služby IIS pro přístup k serveru, který je spuštěn SQL Server.

Krok 1: Konfigurace řadiče domény

V řadiči domény Active Directory uživatelé a počítače:
  1. Klepněte pravým tlačítkem myši počítač, který chcete nastavit pro delegování (server služby IIS) a potom na přepínač Důvěřovat tomuto počítači pro delegování. Pokud je počítač, který je spuštěn SQL Server, co se zdá být poslední počítač kontaktovat, ale že má počítač propojený server, musí být poskytnuta delegování oprávnění. Pokud není počítač poslední v řetězci, musí být všechny počítače, které jsou zprostředkovatelé důvěryhodný pro delegování.
  2. Udělit oprávnění k delegování pro účet uživatele domény účet služby serveru SQL Server. Musí mít uživatelský účet domény pro clusterové instalace serveru SQL Server (Tento krok není vyžadováno pro počítače se systémem SQL Server, které používají místní systémový účet):
    1. Ve složce Uživatelé klepněte pravým tlačítkem myši na uživatelský účet a potom klepněte na příkaz Vlastnosti.
    2. V dialogovém okně Vlastnosti účtu uživatele klepněte
      Přejděte na kartu účet .
    3. Ve skupinovém rámečku Možnosti účtu, klepněte na tlačítko Vybrat účet je důvěryhodný pro delegování políčko. Ujistěte se, že tento účet je zrušeno zaškrtnutí políčka účet je citlivý a nelze jej delegovat .

      Poznámka: "Účet je důvěryhodný pro delegování" právo je vyžadováno pro účet služby serveru SQL Server, pouze v případě, že vzdálený server SQL, jako v případě dvojité směrování jako distribuovaných dotazů (dotazy propojený server), které používají ověřování systému Windows jsou delegování pověření od cílového serveru SQL.
    Poznámka: Tyto kroky platí pouze pro systém Windows 2000 Server. Pokud používáte systém Windows Server 2003, navštivte následující Web společnosti Microsoft Developer Network (MSDN):
  3. Chcete-li ověřit, že byly přijaty lístky protokolu Kerberos z řadiče domény a hostitele, použijte nástroj Kerbtray.exe:
    1. Klepněte pravým tlačítkem myši na ikonu Kerbtray oznamovací oblast a potom klepněte na tlačítko Vymazat lístky.
    2. Čekání na zelenou ikonu Kerbtray změnily ze zelené na žlutou. Jakmile k tomu dojde, otevřete okno příkazového řádku a spusťte tento příkaz:
      NET session * /d
      To drop existující relace a stanovit nové relace a lístek protokolu Kerberos obdržel.

Krok 2: Konfigurace serveru služby IIS

  1. Nahraďte výchozí soubory webu Wwwroot ukázkové soubory ASP. Chcete-li vytvořit ukázkové soubory ASP, použijte kód, který je k dispozici v části "ASP test skriptu pro načítání dat serveru SQL Server".
  2. Přidáte soubor do složky Wwwroot. Chcete-li to provést, použijte ukázkový kód v části "ASP testovací skript pro SQL Server načtení dat". Uložte soubor pod názvem Default.asp.
  3. Znovu nakonfigurujte webový server pro použití integrovaného ověřování systému Windows pouze:
    1. Klepněte pravým tlačítkem myši výchozí webový server a potom klepněte na složku zabezpečení.
    2. Ve složce zabezpečení správné změny a potom klepněte na tlačítko zrušte zaškrtnutí políčka anonymní přístup.
    3. Na příkazovém řádku zadejte následující příkaz:
      cscript C:\Inetpub\Adminscripts\adsutil.vbs get w3svc/NTAuthenticationProviders
      Pokud je povolena možnost Vyjednat , je vrácena následující hodnota:
       NTAuthenticationProviders : (STRING) Negotiate,NTLM 
      Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

      215383 jak nakonfigurovat službu IIS na podporu protokolu Kerberos a protokolu NTLM pro ověřování v síti

    Poznámky
    • Microsoft Data Access (MDAC) 2.6 nebo novější, je nutné nainstalovat na server služby IIS. Chcete-li tak učinit (a zpřístupnit nástroje pro testování), klientské nástroje serveru SQL Server 2000 nainstalujte na webový server. Chcete-li instalovat pouze součásti MDAC 2.6 nebo novější (bez instalace klientské nástroje) naleznete na následujícím webu společnosti Microsoft:
    • Služba IIS je společný systém střední vrstvy. Služba IIS však není systém pouze mezistupeň. Pokud služba IIS není střední vrstvy systému ve vašem prostředí, postupujte podle příslušné kroky pro váš systém střední vrstvy.
  4. Ověřte, zda hodnoty HKLM\SW\MS\MSSQLSERVER\Client\DSQUERYv registru. Pokud hodnota není zobrazena, přidejte jej jako
    DSQUERY:Reg_SZ:DBNETLIB.
  5. Chcete-li ověřit, že byly přijaty lístky protokolu Kerberos z řadiče domény a hostitele, použijte nástroj Kerbtray.exe:
    1. Klepněte pravým tlačítkem myši na ikonu Kerbtray oznamovací oblast a potom klepněte na tlačítko Vymazat lístky.
    2. Čekání na zelenou ikonu Kerbtray změnily ze zelené na žlutou. Jakmile k tomu dojde, otevřete okno příkazového řádku a spusťte tento příkaz:
      NET session * /d
      To drop existující relace a stanovit nové relace a lístek protokolu Kerberos obdržel.

Krok 3: Konfigurujte službu SQL Server dynamicky vytvářet SPN

Chcete-li to provést, je nutné udělit následující nastavení řízení přístupu pro účet služby serveru SQL Server v adresáři služby Active Directory:
  • Číst servicePrincipalName
  • Zápis servicePrincipalName
Upozornění
  • Pokud pomocí modulu snap-in úpravy služby rozhraní ADSI (Active Directory), nástroje LDP nebo klienti LDAP 3 a nesprávně upravíte atributy objektů služby Active Directory, dojít k vážným problémům. Chcete-li tyto problémy vyřešit, bude pravděpodobně přeinstalovat Microsoft Exchange 2000 Server nebo Microsoft Exchange Server 2003. V některých případech bude pravděpodobně přeinstalovat Microsoft Windows 2000 Server nebo Microsoft Windows Server 2003 a potom znovu nainstalujte Exchange 2000 Server nebo Exchange Server 2003. Nemůžeme zaručit, že tyto potíže možné odstranit. Tyto atributy upravujete na vlastní nebezpečí.
  • Musíte být přihlášeni jako správce domény. Také musíte požádat správce domény udělit příslušná oprávnění a příslušná uživatelská práva pro spouštěcí účet serveru SQL Server.
Chcete-li konfigurovat službu SQL Server dynamicky vytvářet SPN při spuštění služby serveru SQL Server, postupujte takto:
  1. Klepněte na tlačítko Start, klepněte na příkaz Spustit, zadejte příkaz Adsiedit.msca potom klepněte na tlačítko OK.

    Poznámka: Nástroj ADSIEdit je součástí nástrojů podpory systému Windows. Chcete-li získat nástroje podpory systému Windows, naleznete na následujícím webu společnosti Microsoft:
  2. V modul snap-in ADSI Edit, rozbalte doménu [název_domény], rozbalte položku DC = RootDomainName, rozbalte CN = uživatelé, klepněte pravým tlačítkem myši CN = název účtu a potom klepněte na příkaz Vlastnosti.

    Poznámky
    • Název_domény je zástupný symbol pro název domény.
    • RootDomainName je zástupný symbol pro název kořenové domény.
    • Název účtu je zástupný symbol pro účet, který zadáte spuštění služby serveru SQL Server.
    • Pokud určíte místní systémový účet, chcete-li spustit službu serveru SQL Server, název účtu je zástupný symbol pro účet, který používáte k přihlášení k systému Windows.
    • Pokud určíte uživatelský účet domény spuštění služeb serveru SQL Server, název účtu je zástupný symbol pro uživatelský účet domény.
  3. V CN = název účtu -vlastnosti dialogovém okně klepněte na kartu zabezpečení .
  4. Na kartě zabezpečení klepněte na tlačítko Upřesnit.
  5. Ujistěte se, že SELF je uveden ve skupinovém rámečku položky oprávněnív dialogovém okně Upřesnit nastavení zabezpečení .

    Pokud není uveden SELF , klepněte na tlačítko Přidata potom přidejte SELF.
  6. Ve skupinovém rámečku položky oprávněníklepněte na tlačítko vlastnía klepněte na tlačítko Upravit.
  7. V dialogovém okně Položka oprávnění klepněte na kartu Vlastnosti .
  8. Na kartě Vlastnosti v seznamu použít pro klepněte pouze tento objekt a potom klepnutím zaškrtněte políčka pro následující oprávnění v části oprávnění:
    • Číst servicePrincipalName
    • Zápis servicePrincipalName
  9. Klepněte dvakrát na tlačítko OK .

    Poznámka: Nápovědu k tomuto procesu obraťte se na odbornou pomoc služby Active Directory a uvést tento článek znalostní báze Microsoft Knowledge Base.

    Poznámka: Chcete-li určit, pokud účet self nemá oprávnění k zápisu ServicePrincipalName použít nástroj dsacls, pomocí příkazu dsacls . Syntaxe je následující:
    dsacls <distinguished_Name_of_service_account>
    Pokud účet self ServicePrincipalName zápis oprávnění, zobrazí se následující výstup:
    Allow NT Authority\SELF SPECIAL ACCESS for Validated Write to Service principal nameWRITE PROPERTY
    Nástroj dsacls je součástí nástrojů podpory.
  10. V CN = název účtu -vlastnosti dialogovém okně klepněte na tlačítko Editor atributů.
  11. V seznamu atributyklepněte na položku servicePrincipalName ve sloupci Atribut a klepněte na tlačítko Upravit.
  12. V dialogovém okně Editor řetězce seznamem odeberte hlavní názvy služby (SPN) pro instance serveru SQL Server používající tento účet služby serveru SQL Server.

    Upozornění: Názvu SPN byste měli odstranit pouze pro instance serveru SQL Server, které právě pracujete. Další instance serveru SQL Server používající tento účet služby, budete moci odebrat názvy SPN, které souvisejí s tyto instance při příštím spuštění tyto instance.
  13. Ukončete modul snap-in pro úpravu rozhraní ADSI.
Po provedení těchto kroků SPN problémy jsou také odstraněny, pokud změníte TCP/IP port nebo název domény pro nové instalace serveru SQL Server 2005 nebo existující instance serveru SQL Server 2005.

Důležité: Doporučujeme neudělujte WriteServicePrincipalName právo k účtu služby SQL, pokud jsou splněny následující podmínky:
  • Existuje více řadičů domény.
  • Je v clusteru serveru SQL Server.
V tomto případě mohou být odstraněny hlavní název služby pro SQL Server z důvodu zpoždění při replikaci služby Active Directory. To může způsobit problémy s připojením k instanci SQL Server.

Předpokládejme, že máte následující:
  • Virtuální instance serveru SQL s názvem Sqlcluster s dvěma uzly: uzel A a B. uzlu
  • Uzel A je ověřen řadičem domény A a B uzel je ověřen řadičem domény B.


Může nastat následující:
  1. Sqlcluster instance je v uzlu A aktivní a zaregistrována SPN SQL v řadiči domény A při spuštění nahoru...
  2. Sqlcluster instance selhání uzlu B při uzlu A vypnutí normálně.
  3. Sqlcluster instance vlastnícím jeho SPN z řadiče domény A během procesu vypnutí v uzlu A.
  4. Název SPN je odebrána z řadiče domény A ale změna dosud nebyla replikována na řadič domény B.
  5. Při spuštění v uzlu B, Sqlcluster instance se pokusí zaregistrovat SQL SPN s řadičem domény B. Od té doby, SPN stále existuje uzel B registruje název SPN.
  6. Po určité době replikuje řadič domény A odstranění SPN (z kroku 3) na řadič domény B v rámci replikace služby Active Directory. Konečným výsledkem je, že neexistuje žádný platný název SPN pro instanci SQL Server v doméně a tím i problémy s připojením k instanci Sqlcluster.

Poznámka: Tento problém je vyřešen v SQL Server 2012.


Krok 4: Konfigurace klientských počítačů

  1. Pro každého klienta, který se bude připojovat ověřte, že aplikace Microsoft Internet Explorer je nakonfigurován pro použití ověřování systému Windows:
    1. V aplikaci Internet Explorer klepněte v nabídce Nástroje na příkaz Možnosti Internetu.
    2. Klikněte na kartu Upřesnit.
    3. Ve skupinovém rámečku zabezpečenízaškrtněte políčko
      Povolit Integrované ověření systémem Windows (vyžaduje restartování)a potom klepněte na tlačítko OK.

Krok 5: Testování konfigurace

Pro každý počítač, který se účastní:
  1. Přihlaste se k počítači a potom ověřte, že počítač může získat platný lístek protokolu Kerberos z řadiče domény pomocí Kerbtray.exe.
  2. Kerbtray.exe slouží k odebrání všech lístků v počítači.
  3. Vytvořit a připojit k webové stránce, který vrací data serveru SQL Server.

    Poznámka: NÁZEV_SERVERU_SQL nahraďte názvem počítače se systémem SQL Server:
    • Pokud je vrácena data, tato stránka zobrazuje typ ověřování Negotiatea data serveru SQL Server pro výsledek sp_helpdb uložené procedury, který by měl vrátit seznam databází na serveru, který je připojení k až. Stránky ASP.
    • Pokud je auditování zapnuto v serveru SQL Server, v protokolu aplikace zobrazí se, že připojení je "důvěryhodné".

Test skriptu ASP pro načítání dat serveru SQL Server

Zde je test skriptu ASP pro data serveru SQL Server. Pokud použijete tento příklad kódu, ujistěte se, že nahradit
NÁZEV_SERVERU_SQL s názvem počítače, který je spuštěn SQL Server.
<%@ Language=VBScript %><HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%="'auth_user' is" & request.servervariables("auth_user")%>
<P>
<%="'auth_type' is" & request.servervariables("auth_type")%>
<P>
Connections string is <B>" Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=SQLSERVERNAME </B>
<P>
<%
set rs = Server.CreateObject("ADODB.Recordset")
set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=SQLSERVERNAME"
rs.open "MASTER..sp_helpdb",cn
Response.Write cstr(rs.Fields.Count) +"<BR>"
while not rs.EOF
Response.Write cstr(rs(0))+"<BR>"
rs.MoveNext
wend
rs.Close
cn.Close
set rs = nothing ' Frees memory reserved by the recordset.
set cn = nothing ' Frees memory reserved by the connection.
%>
</BODY>
</HTML>

Jak získat seznam informací název zásady služby Active Directory serveru

Chcete-li získat seznam informací hlavní název (SPN) serveru služby Active Directory, zadejte následující příkaz na jednom řadiči domény, kde betaland je název domény NetBIOS a
NewoutputUsers.txt je název výstupního souboru, který budete používat k portu výsledky. Pokud používáte úplnou cestu, soubor je umístěn v aktuální složce, kde je spustit příkazový řádek. Tento příklad vyhledá celou doménu:
ldifde -d "CN = Uživatelé, DC =betaland" servicePrincipalName -l -F
NewoutputUsers.txt
Tato syntaxe se vytvoří soubor s názvem NewoutputUsers.txt, který obsahuje informace, které se podobá výstupu v části "Domény úrovně výstupu NewouputUsers.txt" v tomto článku.

Tento výstup může být náročné, když je shromáždit pro celou doménu. Proto pokud chcete omezit získané informace pro určité uživatelské jméno, použijte následující syntaxi, kde
Uživatelské jméno je jméno uživatele a
betaland je doména, které jsou dotazování:
ldifde -d "CN =Uživatelské_jméno, DC =betaland" servicePrincipalName -l -F
NewoutputUsers.txt
Data, která je třeba vyhledávat pomocí shromažďování informací pro konkrétního uživatele výrazně snižuje. Shromažďování informací pro celou doménu, hledat název konkrétního uživatele na daném serveru. V ukázce výstupu se zobrazí:
  • Položky pro servery, které již existují, ale nebyly zcela odebrány ze služby Active Directory.
  • "Uživatelské jméno" uživatel nemá platný název SPN informace o deset různých serverů.
Navíc můžete použít nástroj služby rozhraní ADSI (Active Directory) k odstranění položek služby Active Directory, které nejsou platné.


Upozornění: Pokud používáte modul snap-in pro úpravu rozhraní ADSI, nástroj LDP nebo jakéhokoli klienta LDAP verze 3 a nesprávně upravíte atributy objektů služby Active Directory, můžete způsobit vážné problémy. Tyto problémy mohou vyžadovat přeinstalaci systému Microsoft Windows 2000 Server, Microsoft Windows Server 2003, Microsoft Exchange 2000 Server, Microsoft Exchange Server 2003 nebo Windows i Exchange. Společnost Microsoft nemůže zaručit, že potíže způsobené nesprávnou úpravou atributů objektů služby Active Directory bude možné vyřešit. Tyto atributy upravujete na vlastní nebezpečí.

Úroveň výstupu domény NewouputUsers.txt

dn: CN=User Name,CN=Users,DC=betalandchangetype: add
servicePrincipalName: MSSQLSvc/CLUSTERDEFAULT.betaland:1257
servicePrincipalName: MSSQLSvc/INST3.betaland:3616
servicePrincipalName: MSSQLSvc/INST2.betaland:3490
servicePrincipalName: MSSQLSvc/SQLMAN.betaland:1433
servicePrincipalName: MSSQLSvc/VSS1.betaland:1433
servicePrincipalName: MSSQLSvc/INST1.betaland:2536
servicePrincipalName: MSSQLSvc/INST4.betaland:3967
servicePrincipalName: MSSQLSvc/SQLVIRTUAL1.betaland:1434
servicePrincipalName: MSSQLSvc/SQLVIRTUAL.betaland:1433
servicePrincipalName: MSSQLSvc/SQLBUSTER.betaland:1315

Odkazy

Další informace o zabezpečení účtu delegování naleznete v tématu "Zabezpečení účtu delegování" v SQL Server Books Online.


Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
262177 jak povolit protokolování událostí protokolu Kerberos

321708 jak pomocí nástroje Diagnostika sítě (Netdiag.exe) v systému Windows 2000

326985 postup řešení problémů souvisejících s protokolem Kerberos ve službě IIS

244474 jak vynutit použití ověřování pomocí protokolu Kerberos použití protokolu TCP místo protokolu UDP v systému Windows Server 2003, Windows XP a Windows 2000

Vlastnosti

ID článku: 319723 - Poslední kontrola: 16. 1. 2017 - Revize: 1

Váš názor