Udostępnij za pośrednictwem


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

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.

W trybie macierzystym usług XML sieci Web, w SQL Server, zabezpieczenia mogą być zarządzane przy użyciu jednej z następujących typów podmiotów zabezpieczeń:

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

  • SQL Server identyfikatory logowania.

Nagłówek uwierzytelnianie protokołu SOAP dodatkowych kont systemu Windows są używane do uwierzytelnianie punkt końcowy HTTP, nie są wymagane.Aby uzyskać więcej informacji na temat uwierzytelnianie HTTP punktu końcowego zobacz Endpoint Authentication Types i GRANT Endpoint Permissions (Transact-SQL).

Niemniej jednak, jeśli SQL Server identyfikatory logowania są używane, aplikacja klient musi implementować dodatkowo nagłówki zabezpieczenia usługi sieci Web (WS-Security) do uwierzytelnianie SOAP i Prześlij SQL Server informacje o logowaniu do serwera.

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

Uwaga

Dla SQL Server-opartych na uwierzytelnianie za pośrednictwem protokołu SOAP, opcja LOGIN_TYPE dla punktu końcowego musi być skonfigurowany dla trybu mieszanego (LOGIN_TYPE = mieszane). Również działające punktu końcowego w trybie mieszanym wymaga, aby punkt końcowy był skonfigurowany do świadczenia usług przez kanał Secure Sockets Layer (SSL).Aby uzyskać więcej informacji zobaczUtwórz punkt końcowy (języka Transact-SQL).

Za pomocą nagłówków WS-Security uwierzytelnić identyfikatora konto logowania do programu SQL Server (tylko w trybie mieszanym)

Zabezpieczenia WS-Security to specyfikacja proponowane rozszerzenia SOAP struktury wiadomości w celu bezpiecznego services.WS zabezpieczeń można w razie potrzeby dostarcza mechanizm uwierzytelnianie gdzie poświadczenia i tokeny mogą być przekazywane między klientami protokołu SOAP i wystąpienie w sieci Web SQL Server bezpośrednio w wiadomości SOAP, rozszerzając jej strukturą.

Jeśli są spełnione następujące warunki, można użyć nagłówków WS-Security do dostarczenia SQL Server informacje użytkownika i hasła w ramach aplikacji klient protokołu SOAP:

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

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

    • LOGIN_TYPE = MIESZANE.

    • PORTY =(SSL), określono portu typu protokołu SSL.

  • Użytkownicy, którzy nie są częścią identyfikator logowania systemu Windows, takich jak zostały przyznane uprawnienia punktu końcowego SQL Server identyfikatory logowania.

Żądanie protokołu SOAP zawiera nagłówek WS-Security, poświadczenia w nagłówku zastępują wszelkie poświadczeń używanych przy uwierzytelnianie oparte na protokole HTTP zostało wykonane dla punktu końcowego.

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

Z nagłówkiem WS-Security mogą być używane w wysłanych do wystąpienie żądań protokołu SOAP SQL Server do obsługi następujących czynności:

  • Transportu SQL Server poświadczenia autoryzacja (uwierzytelnianie programu SQL).

  • Obsługa wygasłe SQL Server hasło.

Transport poświadczenia uwierzytelniania programu SQL

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

<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 przechowywania następujące dwa podelementy:

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

  • <wsse:Password> element, który jest jej opcjonalne Type atrybut zestaw na wartość "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText".This umożliwia może zawierać tekst hasło dla użytkownika.

Uwaga

Gdy tryb mieszany jest obsługiwana dla SQL Server i punkt końcowy HTTP SOAP, portem protokołu SSL jest wymagany do zapewnienia co najmniej nominalna szyfrowanie poświadczenia użytkownika.

Obsługa has³o przeterminowanych programu SQL Server

SQL Server udostępnia funkcję wygaśnięcia hasła.Gdy podczas próby logowania, która wygasła ważność hasła dla użytkownika na serwerze, funkcja hasła wymaga, aby klient odpowiada zarówno stare hasło dla użytkownika, jak 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ż przeprowadzić w ramach sesja protokołu SOAP.Będzie się honorowane żądania zmiany hasła tylko wówczas, gdy zostało zainicjowane przez nową sesja.

Na przykład zmiana hasła w ramach nowej sesja protokołu SOAP, należy dodać następujące czynności, aby <SOAP-ENV:Header> sekcja:

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

Aby uzyskać więcej informacji zobaczPraca z sesji protokołu SOAP.

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

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

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

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

Schemat XML nagłówek WS-Security.

Poniżej przedstawiono fragment schematu dla danego nagłówka WS-Security realizacji tylko w przypadku 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>