Http.sys kullanarak Kerberos hizmet asıl adlarını kaydetme

Yerel xml Web Hizmetleri önerilmiyor.Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.

Oluşturmak veya bitiş noktası oluşturmak veya alter bitiş noktası kullanarak http bitiş noktaları değiştirme, son nokta için http soap isteği gönderdiğiniz 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: Bitiş noktası (Transact-sql) oluştur ve alter bitiş noktası (Transact-sql).

Son nokta alter bitiş noktası oluşturma kullanarak Kerberos desteklemek için son noktalar konfigüre edebilirsiniz kimlik doğrulaması şu şekilde:

  • kerberos kimlik doğrulaması ayarlayarak = http kimlik doğrulaması tek başınıza anlamına gelir Kerberos kullanılır

  • Zaman kimlik doğrulaması, TÜMLEŞİK = http kimlik doğrulaması son nokta için aşağıdaki seçeneklerden kimlik doğrulama karşılıklı bir parçası olarak sunar: ANLAŞMA, kerberos ve ntlm.ANLAŞMA seçeneği için istemci ve server Kerberos tabanlı kimlik doğrulaması kurmayı deneyin.Kerberos tarafından desteklenmiyorsa istemci veya anlaşma mümkün değil, kimlik doğrulama düşen geri ntlm olarak.ANLAŞMA kullandığınızda için ntlm kullanmaya geri dönerse istemci olması önlemek için istemci öneririz küme kimlik doğrulaması kerberos = noktada.

Karşılıklı kimlik doğrulaması, Kerberos altında desteklemek için bir örnek , SQL Server ilişkilendirmeniz gerekir bir hizmet asıl adı (spn) hesabıyla onu çalıştırıyor, gibi bir yerel sistem hesabı veya etki alanı kullanıcı hesabı.Ayrıntılar için spn kaydı ait örnek tarafından SQL Server yapılandırılmış altında hizmet hesabı türüne göre belirlenir.If SQL Server is running under the local system account or network service account, SPNs must be registered under the computer name.If SQL Server is running under a domain user account, SPNs must be registered under the domain user name.

SetSPN.exe kullanma

Hesap için bir spn ilişkisini etkinleştirmek için örneğini SQL Server çalışıyorsa, Windows SetSPN.exe desteğini kullanmak araç.Bu araç, bilgisayar adı için bir spn ekler SQL Server örnek Windows etki alanı hizmet kullanıcı hesabı altında çalışan Active Directory içinde bulunur.Bu senaryoda, SetSPN.exe araç iki SPN eklemek için kullanılabilir: NetBIOS adı, tam dns adı için bir başka biri.

örnekn, SetSPN.exe araç yürütüldüğü SQL Server örnek çalışan MyComputer, iki SPN'ler hesabı ile ilişkili SQL Server örnek altında çalışan ve dizine eklenmesi gerekir:

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

Not tek bir hesabı birden çok SPN'ler olabilir, ancak yalnızca bir hesap için bir spn kaydedilebilir.

Bu aynı iki spn adları, hem NetBIOS hem de dns tam, silmek için de SetSPN.exe kullanın.

Dikkate Alınacak Noktalar

  • Httpcfg.exe, SetSPN.exe ile kullanılabilir benzer Windows Server 2003 ve yüklenir Httpcfg.exe ve diğer Windows Destek araçlarını yüklemek için aynı yordamı kullanınDaha fazla bilgi için bkz: http çekirdek modu sürücüsü (Http.sys) yapılandırma.

  • Yoksa bir SQL Server örnek yalnızca etki alanında yönetici ayrıcalıklarına sahip tümleşik kimlik doğrulaması kullanıcıların spn kaydı SetSPN.exe değiştirebiliyorsunuz 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 Server sysadmin fixed server role can change SPN registrations by using the SetSPN.exe tool.

  • Hizmet hesabı yerel sistem ise, spn bilgisayarın Active Directory hesabı SetSPN.exe kullanmanıza gerek kalmadan eklenen araç.

SetSPN.exe sözdizimi

SetSPN.exe sözdizimi aşağıdaki gibidir:

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

Bağımsız değişkenler

  • -A
    Hesap için belirtilen spn ekler.

  • -D
    Belirtilen spn hesabına siler.

  • -L
    Hesabına tüm SPN'leri listeler.

Örnekler

If an instance of SQL Server is running as a domain user (MyDomain\MySQLAccount) on a computer that is named MySQLHost, the following commands can be used to set the appropriate SPNs:

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

Not bir hesabın (birini) her hizmet veya ana bilgisayar adı için birden çok SPN'ler olabilir, ancak tek bir hesabın altında bir spn kaydedilebilir.Aynı olan birden fazla hesaplarında kayıtlı spn Kerberos neden kimlik doğrulaması başarısız.

For example, the account MyDomain\MySQLAccount can have the following different SPNs registered on it.İki farklı hizmetler için ilk iki komutlardır (http ve rpc).En son bilgisayar birden çok ana bilgisayar adlarına sahip olduğu varsayılır farklı ana bilgisayar, adıdır.

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 hatası neden olur:

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

Hata oluşur çünkü iki tane var. SQL Server altında iki farklı hizmet hesaplarını çalıştıran bir bilgisayarda (MySQLAccountOne ve MySQLAccountTwo).Her iki SPN'ler, her örnek için bir kayıt SQL Server desteklenen bir senaryo değildir.

Bu ilginçtir, birden çok örneğini SQL Server aynı bilgisayarda farklı hesaplar altında çalıştırmaspn yalnızca bir hesabı kayıtlı olması.Birden çok örneğini gerektiriyorsa SQL Server (örneğin, Inst1 ve Inst2) (IIS gibi) diğer uygulamalar yanında çalışmak istediğiniz tüm hizmetleri için http Kerberos kimlik doğrulaması kullanmak için spn kayıt çakışmaları çözmek için aşağıdaki seçeneklerden birini kullanın ve:

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

    Örneğin, Inst1, Inst2 ve IIS tüm LocalSystem olarak çalıştırın veya EtkiAlanım\MyServiceAccount.

  • Aynı bilgisayara birden çok ana bilgisayar adlarını kaydetmek ve her örnek ve uygulama farklı bir ana bilgisayarda dinlemek vardır.Bu nedenle de durum, aşağıdakileri yapmanız gerekir:

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

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

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

Kerberos spn kaydı ile ilgili sorunları giderme

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

  • spn kayıtlı değil.

    spn kaydedildiğinde, Kerberos kimlik doğrulaması yerel bilgisayar üzerinde çalışır örnek , SQL Server çalışan, ancak başarısız olur uzak istemci bilgisayarlar.

  • Birden çok kayıtlı bir spn saat.

    Kerberos neden olacak etki alanı dizininin altında birkaç senaryo burada yönetici çoğaltma hizmet-asıl-adı (spn) vardır kimlik doğrulaması başarısız.Bunlara aşağıdakiler dahildir:

    • Etki alanı hesabı altında olduğu için değişiklik yapma örnek , SQL Server çalışır

      SetSpn.exe çalışırken çalıştırırsanız bir örnek , SQL Server , DOMAIN\User1 gibi bir etki alanı hesabı ve ardından etki alanı hesabı çalıştırmak için kullanılan SQL Server , değişen SetSPN.exe yeniden çalıştırdığınızda, DOMAIN\User2 gibi dizini altında her iki hesapları. eklenecek aynı spn neden olur

    • Birden çok örneğini yükleme SQL Server farklı hesaplar altında çalıştırma

      Birden çok örnek yüklerseniz, SQL Server sonra her örnek çalıştırın ve başka bir hesap altında SetSpn.exe her örnek üzerinde çalıştırırsanız olacak yinelenen hesapları dizini altında her yer alan SQL Server hizmet hesabı.Bu, bir etki alanı kullanıcısı ve aynı zamanda yerel sistem hesabı altında çalışan her iki örnekleri için geçerlidir.

    • Kaldırıp bir örnek , SQL Server farklı bir hesap altında

      Yüklerseniz, SQL Server tek hesabının SPN kaydı, kaldırıp SQL Server altında farklı bir hesap ve sonra yeniden kaydettirme SPN'ler her etki alanı hesabı vardır aynı SPN.Bu SPN bir kopyası anlamına gelir.

Her bu senaryolar, sorun giderilinceye kadar http bitiş noktası yeniden ntlm kimlik doğrulaması kullanmaya dönmesine sorundur.Bu genellikle yinelenen veya eski SPN'ler için dizinde arama yapma ve bunları el ile kaldırmayı içerir.