Uwierzytelniania programu SQL Server za pośrednictwem protokołu SOAP

Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.

Macierzysty usług sieci Web XML w SQL Server, zabezpieczeń można zarządzać za pomocą jednej z następujących typów podmiotów zabezpieczeń:

  • Użytkownik systemu Windows lub konta grupy lub oba.

  • SQL Server logowania.

Dodatkowe nagłówki uwierzytelnianie SOAP kont systemu Windows są używane do uwierzytelnianie HTTP punktu końcowego, nie są wymagane.Aby uzyskać więcej informacji dotyczących uwierzytelnianie HTTP punktu końcowego, zobacz Typy uwierzytelniania końcowy i PRZYZNAĆ uprawnienia punktu końcowego (Transact-SQL).

Jednakże, gdy SQL Server logowania są używane, aplikacja klient musi implementować Ponadto nagłówki zabezpieczeń usługi sieci Web (WS-Security) do uwierzytelnianie SOAP obejmują i Prześlij SQL Server informacji logowania do serwera.

Do uwierzytelnianie SOAP SQL Server logowania dowolnego typu uwierzytelnianie HTTP mogą być używane.Ponadto konto użytkownika, który jest używany do uwierzytelniania w warstwie HTTP tylko wymaga dostępu do systemu Windows na serwerze lokalnym i nie wymaga koniecznie SQL Server logowania.

Ostrzeżenie

Dla SQL Server-podstawie uwierzytelnianie SOAP, opcja LOGIN_TYPE dla punktu końcowego musi być skonfigurowany dla trybu mieszanego (LOGIN_TYPE = mieszane).Operacyjne punkt końcowy w trybie mieszanym wymaga również skonfigurować punkt końcowy zapewnienie usługa przez kanał SSL (Secure Sockets Layer).Aby uzyskać więcej informacji, zobacz Utwórz punkt końcowy (Transact-SQL).

Do uwierzytelniania przy użyciu nagłówków WS-Security SQL Server logowania (tylko tryb mieszany)

WS-Security jest proponowane specyfikacji rozszerzania Struktura komunikatu SOAP ułatwiające bezpiecznych usług sieci Web.WS-Security można w razie potrzeby zapewnić mechanizm uwierzytelnianie gdzie poświadczenia i tokeny mogą być przekazywane między klientami SOAP i wystąpienie SQL Server bezpośrednio wewnątrz komunikatu SOAP, rozszerzając jej struktury.

Jeżeli następujące warunki są spełnione, można użyć nagłówków WS-Security dostaw SQL Server informacji użytkownika i hasło, jako część aplikacji klient protokołu SOAP:

  • Wystąpienie SQL Server został zainstalowany w trybie mieszanym.Oznacza to, że zarówno systemu Windows i SQL Server logowania są obsługiwane.

  • Punkt końcowy ma następujące ustawienia:

    • LOGIN_TYPE = MIESZANYCH.

    • PORTY =()SSL**)**, port SSL typ został określony.

  • Punkt końcowy uprawnienia zostały przyznane użytkownikom, którzy nie są częścią logowania systemu Windows, takich jak SQL Server logowania.

Żądanie protokołu SOAP zawiera nagłówek WS-Security, poświadczenia w nagłówku zastępują wszelkie poświadczenia, które były używane podczas uwierzytelnianie na podstawie protokołu HTTP zostało wykonane dla punktu końcowego.

Korzystanie z nagłówkiem WS-Security dla uwierzytelniania programu SQL Server

Nagłówek WS-Security mogą być używane w SOAP żądań wysyłanych do wystąpienie SQL Server do obsługi następujących:

  • Transportu SQL Server poświadczenia autoryzacja (SQL Auth).

  • Obsługa wygasłego SQL Server hasła.

Transportu poświadczenia uwierzytelniania SQL

W poniższym przykładzie pokazano, jak można używać nagłówków WS-Security w żądaniu protokołu SOAP do wystąpienie SQL Server do transportu SQL Server poświadczenia autoryzacja (SQL Auth).

<SOAP-ENV:Header>
            <wsse:Security  xmlns:wsse=
                        "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
            <wsse:UsernameToken>
                        <wsse:Username>JohnDoe</wsse:Username>
            <wsse:Password Type=
                        "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">pass-word1</wsse:Password>
            </wsse:UsernameToken>
            </wsse:Security>
</SOAP-ENV:Header>

W tym przykładzie <wsse:UserNameToken> element jest używany do zawierają następujące dwa podelementy:

  • <wsse:Username>element, który ma SQL Server nazwę użytkownika.

  • <wsse:Password>element, który został jej opcjonalny Type atrybutu zestaw na wartość "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText".Służy to zawierać tekst hasła dla użytkownika.

Ostrzeżenie

Gdy tryb mieszany jest obsługiwana dla SQL Server i punkt końcowy HTTP SOAP SSL port jest dostarczenie co najmniej nominalna szyfrowanie poświadczenia użytkownika.

Obsługa wygasłego SQL Server hasła

SQL Serverudostępnia funkcję wygaśnięcia hasła.Gdy serwer określa się podczas próby logowania, które wygasło hasło dla użytkownika, funkcja hasła wymaga klient odpowiadać zarówno stare hasło dla użytkownika i nowe hasło, aby pomyślnie zakończyć proces logowania.

Aby zaktualizować klient do obsługi tej funkcji, można zastosować tę procedurę przy użyciu następujących nagłówków WS-Security jako przykład szablonu.

<SOAP-ENV:Header>
 <wsse:Security  xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
            <wsse:UsernameToken>
                        <wsse:Username>JohnDoe</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">pass-word2</wsse:Password>
            <sql:OldPassword Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText" xmlns:sql="https://schemas.microsoft.com/sqlserver/2004/SOAP">pass-word1</sql:OldPassword>
            </wsse:UsernameToken>
 </wsse:Security>
</SOAP-ENV:Header>

Zmiana hasła można również wykonać w ramach sesja protokołu SOAP.Żądanie zmiany hasła będą honorowane tylko, po rozpoczęciu nowej sesja.

Na przykład, aby zmienić hasło, jako część nowej sesja protokołu SOAP, należy dodać następujący do <SOAP-ENV:Header> sekcji:

<sqloptions:sqlSession xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options" initiate="true"/>

Aby uzyskać więcej informacji, zobacz Praca z sesji protokołu SOAP.

Ponadto <wsse:UserNameToken> element jest nieco zmodyfikowany zawiera następujące trzy podelementy drobne różnice z poprzedniego przykładu przy wysyłaniu poświadczenia użytkownika:

  • <wsse:Username>element, który ma SQL Server nazwę użytkownika.

  • <wsse:Password>element, który został jej opcjonalny Type atrybutu zestaw na wartość "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText".Służy to zawierać tekst nowe hasło dla użytkownika.

  • <sql:OldPassword>element, który został jej opcjonalny Type atrybutu zestaw na wartość "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"".Służy to zawierać tekst stare hasło dla użytkownika.

Schemat XML nagłówkiem WS-Security

Oto fragment schematu dla nagłówka WS-Security wykonania tylko z SQL Server.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="https://schemas.microsoft.com/sqlserver/2004/SOAP" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
  <xsd:import namespace="https://schemas.microsoft.com/sqlserver/2004/SOAP" />
  <xsd:annotation>
    <xsd:documentation xml:lang="en">(c) Copyright 2004, Microsoft Corporation The following schema for Microsoft SQL Server is presented in XML format and is for informational purposes only. Microsoft Corporation ("Microsoft") may have trademarks, copyrights, or other intellectual property rights covering subject matter in the schema. Microsoft does not make any representation or warranty regarding the schema or any product or item developed based on the schema. The schema is provided to you on an AS IS basis. Microsoft disclaims all express, implied and statutory warranties, including but not limited to the implied warranties of merchantability, fitness for a particular purpose, and freedom from infringement. Without limiting the generality of the foregoing, Microsoft does not make any warranty of any kind that any item developed based on the schema, or any portion of the schema, will not infringe any copyright, patent, trade secret, or other intellectual property right of any person or entity in any country. It is your responsibility to seek licenses for such intellectual property rights where appropriate. MICROSOFT SHALL NOT BE LIABLE FOR ANY DAMAGES OF ANY KIND ARISING OUT OF OR IN CONNECTION WITH THE USE OF THE SCHEMA, INCLUDING WITHOUT LIMITATION, ANY DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL (INCLUDING ANY LOST PROFITS), PUNITIVE OR SPECIAL DAMAGES, WHETHER OR NOT MICROSOFT HAS BEEN ADVISED OF SUCH DAMAGES.</xsd:documentation> 
  </xsd:annotation>
  <xsd:element name="Security">
    <xsd:complexType>
      <xsd:sequence minOccurs="1" maxOccurs="1">
        <xsd:element name="UsernameToken">
          <xsd:complexType>
            <xsd:sequence minOccurs="1" maxOccurs="1">
              <xsd:element name="Username" type="xsd:string" />
              <xsd:element name="Password">
                <xsd:complexType>
                  <xsd:simpleContent>
                    <xsd:extension base="xsd:string">
                      <xsd:attribute name="Type" type="xsd:anyURI" />
                    </xsd:extension>
                  </xsd:simpleContent>
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="OldPassword" type="sql:OldPassword" minOccurs="0" />
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="https://schemas.microsoft.com/sqlserver/2004/SOAP" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="https://schemas.microsoft.com/sqlserver/2004/SOAP">
  <xsd:annotation>
    <xsd:documentation xml:lang="en">(c) Copyright 2004, Microsoft Corporation The following schema for Microsoft SQL Server is presented in XML format and is for informational purposes only. Microsoft Corporation ("Microsoft") may have trademarks, copyrights, or other intellectual property rights covering subject matter in the schema. Microsoft does not make any representation or warranty regarding the schema or any product or item developed based on the schema. The schema is provided to you on an AS IS basis. Microsoft disclaims all express, implied and statutory warranties, including but not limited to the implied warranties of merchantability, fitness for a particular purpose, and freedom from infringement. Without limiting the generality of the foregoing, Microsoft does not make any warranty of any kind that any item developed based on the schema, or any portion of the schema, will not infringe any copyright, patent, trade secret, or other intellectual property right of any person or entity in any country. It is your responsibility to seek licenses for such intellectual property rights where appropriate. MICROSOFT SHALL NOT BE LIABLE FOR ANY DAMAGES OF ANY KIND ARISING OUT OF OR IN CONNECTION WITH THE USE OF THE SCHEMA, INCLUDING WITHOUT LIMITATION, ANY DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL (INCLUDING ANY LOST PROFITS), PUNITIVE OR SPECIAL DAMAGES, WHETHER OR NOT MICROSOFT HAS BEEN ADVISED OF SUCH DAMAGES.</xsd:documentation> 
  </xsd:annotation>
  <xsd:complexType name="OldPassword">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="Type" type="xsd:anyURI" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
</xsd:schema>