Aracılığıyla paylaş


Kerberos bir hizmet asıl adı, HTTP.sys kullanarak kaydediliyor

This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Oluşturduğunuz veya son nokta CREATE veya ALTER son nokta kullanarak HTTP bitiş noktalarını değiştirmek, bitiş noktasına HTTP SOAP isteği gönderiyorsanız, kullanıcıların kimliğini doğrulamak için kullanılan kimlik doğrulaması türünü belirtin.Daha fazla bilgi için bkz:(Transact-SQL) son NOKTA oluşturunveALTER bitiş NOKTASı (Transact-SQL).

Bitiş noktası ALTER bitiş noktası CREATE kullanarak, Kerberos desteklemek için son noktalar konfigüre edebilirsiniz kimlik doğrulaması şu şekilde:

  • AUTHENTICATION ayarlayarak, KERBEROS = Kerberos, HTTP kimlik doğrulaması tek yol kullanılır

  • , AUTHENTICATION = TÜMLEŞİK, HTTP kimlik doğrulaması son nokta için aşağıdaki seçenekleri sunmak kimlik doğrulama sınama bir parçası olarak: NEGOTIATE, KERBEROS ve NTLM. Kerberos tabanlı kimlik doğrulamasını kurmak istemci ve sunucu NEGOTIATE seçeneğini deneyin.Kerberos istemcisi tarafından desteklenmiyor veya anlaşma mümkün değil, kimlik doğrulaması NTLM olarak geri kalan.NEGOTIATE kullandığınız için NTLM kullanmaya geri dönerse istemci sahip önlemek için istemci kimlik doğrulaması ayarlamanızı öneririz son noktada KERBEROS =.

Karşılıklı kimlik doğrulaması Kerberos örnek altında desteklemek içinSQL Server 2005orSQL Server 2008bir hizmet asıl adı (SPN) gibi çalışan, gibi hesabı ile ilişkilendirmeniz gerekir bir yerel sistem hesabı veya etki alanı kullanıcı hesabı.SPN kaydı belirli bir kopya ile ilgili ayrıntılarSQL Server, yapılandırılmış altında hizmet hesabı türüne göre belirlenir.IfSQL Serverçalışan yerel sistem hesabını veya ağ hizmet hesabı altında SPN adı. altında kaydedilmesiIfSQL Serverçalışan bir etki alanı kullanıcı hesabı altında SPN etki alanı adı. altında kaydedilmesi

SetSPN.exe kullanma

Hesabı için SPN ilişkisini etkinleştirmek için örnekSQL Server 2005orSQL Server 2008çalışan, SetSPN.exe Windows destek araç. kullanmaBu araç, bilgisayar adı için SPN eklerSQL Serverörnek Windows etki alanı hizmet kullanıcı hesabı altında çalışan bulunan Active Directory.Bu senaryoda, the SetSPN.exe araç iki SPN eklemek için kullanılabilir: bir NetBIOS adı, bir başka tam DNS adı.

Örneğin, SetSPN.exe araç tarafından yürütülecek olanSQL Serverörnek çalıştırmaMyComputer, iki SPN'ler hesapla ilişkilendirilmişSQL Serverörneğinin altında çalıştığı ve dizine eklenmiş olması gerekir:

HTTP/MyComputer;
HTTP/MyComputer.fully.qualified.domain.name.com

Not birden fazla SPN tek bir hesaba sahip olabilir, ancak yalnızca bir hesap için bir SPN kaydedilebilir.

Bu aynı silmek için iki SPN adları, NetBIOS hem de tam DNS, aynı zamanda SetSPN.exe kullanın.

Dikkate Alınacak Noktalar

  • Benzer Httpcfg.exe için SetSPN.exe sağlanıyorWindows Server 2003Httpcfg.exe ve diğer Windows Destek Araçları yüklemek için aynı yordamı kullandığınızda yüklenir veDaha fazla bilgi için bkz:HTTP çekirdek modu sürücüsü (HTTP.sys) yapılandırma.

  • , BirSQL Serverörnek yalnızca etki alanı ADMIN ayrıcalıkları ile tümleşik kimlik doğrulaması kullanıcıların SPN kaydı SetSPN.exe değiştirebilirsiniz yerel sistem hesabı olarak çalışmıyor araç.

  • If a SQL Server instance is running as the local system account, only members of the SQL Serversysadmin fixed server role can change SPN registrations by using the SetSPN.exe tool.

  • Hizmet hesabı yerel sistem, SPN SetSPN.exe aracını kullanmak zorunda kalmadan bilgisayarın Active Directory hesap eklenir.

SetSPN.exe sözdizimi

SetSPN.exe sözdizimi şöyledir:

setspn { -ASPN | -DSPN | -L } service_account

Bağımsız değişkenler

  • -A
    Hesapta belirtilen SPN ekler.

  • -D
    Belirtilen SPN hesabı siler.

  • -L
    Hesapta kayıtlı tüm SPN listeler.

Örnekler

örnekSQL Serverbir etki alanı kullanıcısı olarak çalışan ( MyDomain\MySQLAccount) adlı bir bilgisayaraMySQLHost, uygun SPN ayarlamak için aşağıdaki komutlar kullanılabilir:

setspn –A http/MySQLHost MyDomain\MySQLAccount
setspn –A http/MySqlHost.Mydomain.Mycorp.com MyDomain\MySQLAccount

Birden çok SPN (bir) her hizmet veya ana bilgisayar adı için bir hesap olabilir, ancak yalnızca bir hesap altında bir SPN kayıtlı unutmayın.Aynı olan birden fazla hesaplarında kayıtlı SPN Kerberos neden kimlik doğrulaması başarısız.

Örneğin, hesapMyDomain\MySQLAccountaşağıdaki farklı SPN'ler kayıtlı it. hakkındaİki farklı hizmetler için ilk iki komutu olan ( httpve rpc).En son, birden çok ana bilgisayar adı bilgisayarda yüklü olduğunu varsayarak bir başka ana bilgisayar adı var.

setspn –A http/MySQLHost MyDomain\MySQLAccount
setspn –A rpc/MySQLHost MyDomain\MySQLAccount
setspn –A http/MySecondHost MyDomain\MySQLAccount

Bunun tersi olarak, aşağıdaki senaryo Kerberos başarısız olmasına neden:

setspn –A http/MySQLHost MyDomain\MySQLAccountOne
setspn –A http/MySQLHost MyDomain\MySQLAccountTwo

Hata oluşur çünkü iki tane vardır.SQL Serveraltında iki farklı hizmet hesaplarını çalıştıran bir bilgisayarda ( MySQLAccountOneve MySQLAccountTwo).Her iki SPN'ler, her örnek için bir kayıtSQL Serverdesteklenen bir senaryo değildir.

Bu olası etkilere sahiptir, birden çok örneğiniSQL Serveraynı bilgisayardaki farklı hesaplar altında çalıştırmaSPN, yalnızca bir hesap için kaydedilebilir.Birden çok örneğini gerektirirSQL Server(for example,Inst1 and Inst2) (IIS gibi) diğer uygulamalar ve bir arada bulunacak biçimde istediğiniz tüm hizmetler için HTTP Kerberos kimlik doğrulamasını kullanmak için SPN kayıt çakışmaları çözmek için aşağıdaki seçeneklerden birini kullanın:

  • Tüm örneklerini ve aynı hesabı olarak çalışacak uygulamaları vardır.

    Örneğin, sahipInst1Yerel Sistem veya EtkiAlanımInst2 , IIS tüm çalıştırmak \ MyServiceAccount.

  • Aynı bilgisayarda birden çok ana bilgisayar adlarını kaydetme ve her örnek ve uygulamanın farklı bir ana bilgisayarda dinleme.Bu nedenle, bu durumda, aşağıdakileri yapmanız gerekir:

    • Bilgisayar için üç farklı ana bilgisayar adları oluşturun.

    • Her ana bilgisayar için farklı bir uygulamaya atayın.

    • Üç grup her ana bilgisayar adı/uygulama birleşimi için bir SPN) kaydettirin.

Kerberos SPN kaydı sorunlarını giderme

Kerberos SPN kaydı için en sık karşılaşılan sorun giderme konuları şunlardır:

  • SPN kayıtlı değil.

    , Bir SPN kayıtlı değil, Kerberos kimlik doğrulaması yerel bilgisayardan çalışma, örnek,SQL Serverçalışıyor, ancak başarısız olur uzak istemci bilgisayarları.

  • SPN, daha fazla saat kaydedilir.

    Kerberos kimlik doğrulamasının başarısız olmasına neden olan etki alanı dizin bir yönetici hizmet-asıl-adlarını (SPN) burada çoğaltabilirsiniz birçok senaryo vardır.Bu özellikler şunlardır:

    • Değişiklik yapma hangi etki alanı hesabına örnekSQL Serverçalışan

      SetSpn.exe çalışırken bir örneğini çalıştırınSQL ServerDOMAIN\User1, gibi bir etki alanı hesabını ve sonra etki alanı hesabı çalıştırmak için kullanılanSQL Serverdeğiştiğinde, DOMAIN\User2 gibi SetSPN.exe yeniden çalıştırıldığında her iki hesap. dizininde eklenecek aynı SPN neden olacak

    • Birden çok örneği yüklemeSQL Serverfarklı hesaplar altında çalıştırma

      Birden çok örneği yüklemeSQL Serverve her örnek farklı bir hesap altında SetSpn.exe her örneğinde çalıştırırsanız olacak yinelenen hesapları altında her dizindeSQL Serverhizmet hesabı.Bu, etki alanı kullanıcısı ve ayrıca yerel sistem hesabı altında çalışan iki örnekleri için geçerlidir.

    • Kaldırma ve yeniden örnekSQL Serverfarklı bir hesap altında

      YüklemeniziSQL Servertek hesap, kayıt SPN kaldırın ve yeniden yükleyinSQL Serverbir başka hesabı ve ardından reregister altında SPN her etki alanı hesabı olması aynı SPN.Yani, SPN çoğaltılır.

Her birinde Bu senaryolar, sorunun çözümlendiğini kadar HTTP bitiş noktası yeniden NTLM kimlik doğrulaması için kalan sorun oluşmaktadır.Bu genellikle yinelenen veya eski SPN için dizinde arama ve bunları el ile kaldırmayı içerir.