Verbindungen in ADOMD.NET – Herstellen von sicheren Verbindungen

Wenn Sie eine Verbindung in ADOMD.NET verwenden, hängt die für die Verbindung verwendete Sicherheitsmethode vom Wert der ProtectionLevel-EigenschaftOpen der Verbindungszeichenfolge ab, die beim Aufrufen der -Methode von verwendet wird AdomdConnection.

Die ProtectionLevel-Eigenschaft bietet vier Sicherheitsebenen: nicht authentifiziert, authentifiziert, signiert und verschlüsselt. In der folgenden Tabelle werden diese verschiedenen Sicherheitsstufen beschrieben.

Hinweis

Wenn Sie Datenbankverbindungspooling verwenden, ist die Datenbank nicht in der Lage, Sicherheit zu verwalten. Das liegt daran, dass für Datenbankverbindungspooling Verbindungszeichenfolgen identisch sein müssen, um Verbindungen zu einem Pool zusammenzufassen. Deshalb müssen Sie Sicherheit an anderer Stelle verwalten.

Sicherheitsebene ProtectionLevel-Wert
Nicht authentifizierte Verbindung
Eine nicht authentifizierte Verbindung nimmt keine Form der Authentifizierung vor. Diese Art der Verbindung stellt die am häufigsten unterstützte, aber am wenigsten sichere Verbindungsart, dar.
None
Authentifizierte Verbindung
Eine authentifizierte Verbindung authentifiziert den Benutzer, der die Verbindung herstellt, sichert jedoch keine weitere Kommunikation. Diese Art der Verbindung ist sinnvoll, da Sie die Identität des Benutzers oder der Anwendung feststellen können, der oder die eine Verbindung mit der analytischen Datenquelle herstellt.
Herstellen einer Verbindung
Signierte Verbindung
Eine signierte Verbindung authentifiziert den Benutzer, der die Verbindung anfordert, und stellt anschließend sicher, dass die Übertragungen nicht verändert werden. Diese Art von Verbindung ist nützlich, wenn die Echtheit der übertragenen Daten überprüft werden muss. Eine signierte Verbindung verhindert jedoch nur, dass der Inhalt des Datenpakets geändert wird. Der Inhalt kann unterwegs noch immer angezeigt werden.



Beachten Sie, dass eine signierte Verbindung nur vom anbieterseitigen XML for Analysis MicrosoftSQL ServerAnalysis Services unterstützt wird.
Pkt-Integrität oder PktIntegrity
Verschlüsselte Verbindungen
Eine verschlüsselte Verbindung ist der von ADOMD.NET verwendete Standardverbindungstyp. Diese Verbindungsart authentifiziert den Benutzer, der die Verbindung anfordert, und verschlüsselt außerdem die übertragenen Daten. Eine verschlüsselte Verbindung ist die sicherste Verbindungsart, die von ADOMD.NET erstellt werden kann. Der Inhalt des Datenpakets kann nicht angezeigt oder geändert werden, sodass die Daten während der Übertragung geschützt sind.



Eine verschlüsselte Verbindung wird nur von dem von XML for Analysis ServerAnalysis Services bereitgestellten SQL unterstützt.
Pkt Privacy oder PktPrivacy

Es sind jedoch nicht alle Sicherheitsebenen für alle Arten von Verbindungen verfügbar:

  • Eine TCP-Verbindung kann alle der vier Sicherheitsebenen verwenden. Tatsächlich stellt eine zusammen mit der integrierten Sicherheit von Windows verwendete TCP-Verbindung die sicherste Methode der Verbindung mit einer analytischen Datenquelle dar.

  • Eine HTTP-Verbindung kann nur eine authentifizierte Verbindung sein. Daher muss die ProtectionLevel-Eigenschaft auf Verbinden.

  • Eine HTTPS-Verbindung kann nur eine verschlüsselte Verbindung sein. Daher muss die ProtectionLevel-Eigenschaft auf Pkt Privacy oder PktPrivacy festgelegt werden.

Sichern von TCP-Verbindungen

Für eine TCP-Verbindung unterstützt die ProtectionLevel-Eigenschaft alle vier Sicherheitsebenen, wie in der folgenden Tabelle gezeigt.

ProtectionLevel-Wert Verwendung mit TCP-Verbindung? Ergebnisse
None Ja Gibt eine nicht authentifizierte Verbindung an.

Vom Anbieter wird ein TCP-Datenstrom angefordert, es wird jedoch für den Benutzer, der den Datenstrom anfordert, keinerlei Authentifizierung ausgeführt.
Herstellen einer Verbindung Ja Gibt eine authentifizierte Verbindung an.

Vom Anbieter wird ein TCP-Stream angefordert, und dann wird der Sicherheitskontext des Benutzers, der den Stream anfragt, gegenüber dem Server authentifiziert: Wenn die Authentifizierung erfolgreich ist, wird keine andere Aktion ausgeführt. Wenn bei der Authentifizierung ein Fehler auftritt AdomdConnection , trennt das Objekt die Verbindung mit der mehrdimensionalen Datenquelle, und es wird eine Ausnahme ausgelöst.

Nachdem die Authentifizierung erfolgreich gewesen ist oder fehlschlägt, wird der Sicherheitskontext, der verwendet wird, um die Verbindung zu authentifizieren, freigegeben.
Pkt-Integrität oder PktIntegrity Ja Gibt eine signierte Verbindung an.

Vom Anbieter wird ein TCP-Stream angefordert, und dann wird der Sicherheitskontext des Benutzers, der den Stream anfragt, für den Server authentifiziert:



Wenn die Authentifizierung erfolgreich ist, schließt AdomdConnection das -Objekt den vorhandenen TCP-Stream und öffnet einen signierten TCP-Stream, um alle Anforderungen zu verarbeiten. Alle Anforderungen von Daten und Metadaten werden mithilfe des Sicherheitskontexts authentifiziert, der zum Öffnen der Verbindung verwendet wurde. Zudem wird jedes Paket digital signiert, um sicherzustellen, dass die Nutzlast des TCP-Pakets nicht auf irgendeine Weise geändert wurde.



Wenn bei der Authentifizierung ein Fehler auftritt AdomdConnection , trennt das Objekt die Verbindung mit der mehrdimensionalen Datenquelle, und es wird eine Ausnahme ausgelöst.
Pkt Privacy oder PktPrivacy Ja Gibt eine verschlüsselte Verbindung an.



Beachten Sie, dass Sie auch eine verschlüsselte Verbindung angeben können, indem Sie die ProtectionLevel-Eigenschaft nicht in der Verbindungszeichenfolge festlegen.



Vom Anbieter wird ein TCP-Datenstrom angefordert, und der Sicherheitskontext des Benutzers, der den Datenstrom anfordert, wird bei dem Server authentifiziert.



Wenn die Authentifizierung erfolgreich ist, schließt AdomdConnection das -Objekt den vorhandenen TCP-Stream und öffnet einen verschlüsselten TCP-Stream, um alle Anforderungen zu verarbeiten. Alle Anforderungen von Daten und Metadaten werden mithilfe des Sicherheitskontexts authentifiziert, der zum Öffnen der Verbindung verwendet wurde. Außerdem wird die Nutzlast eines jeden TCP-Pakets mit der höchsten Verschlüsselungsmethode verschlüsselt, die sowohl von dem Anbieter als auch von der multidimensionalen Datenquelle unterstützt wird.



Wenn bei der Authentifizierung ein Fehler auftritt AdomdConnection , trennt das Objekt die Verbindung mit der mehrdimensionalen Datenquelle, und es wird eine Ausnahme ausgelöst.

Verwenden der integrierten Sicherheit von Windows für die Verbindung

Windows integrierte Sicherheit ist die sicherste Möglichkeit zum Herstellen und Sichern einer Verbindung mit einer Instanz von Analysis Services. Die integrierte Sicherheit von Windows zeigt während des Authentifizierungsprozesses keine Sicherheitsanmeldeinformationen wie Benutzername oder Kennwort an, stattdessen wird die Sicherheits-ID des zurzeit ausgeführten Prozesses verwendet, um die Identität zu ermitteln. Für die meisten Clientanwendungen stellt diese Sicherheits-ID die Identität des gerade angemeldeten Benutzers dar.

Um die integrierte Sicherheit von Windows zu verwenden, sind für die Verbindungszeichenfolge die folgenden Einstellungen erforderlich:

  • Legen Sie diese Eigenschaft für die Eigenschaft Integrierte Sicherheit entweder nicht fest, oder legen Sie diese Eigenschaft auf SSPI fest.

    Hinweis

    Windows integrierte Sicherheit ist nur für TCP-Verbindungen verfügbar, da HTTP-Verbindungen die Einstellung Basic für die Eigenschaft Integrierte Sicherheit verwenden müssen.

  • Legen Sie für die ProtectionLevel-Eigenschaft diese Eigenschaft auf Verbinden, Pkt-Integrität oder Pkt-Datenschutz fest.

Sichern von HTTP-Verbindungen

HTTPS und Secure Sockets Layer (SSL) kann verwendet werden, um die HTTP-Kommunikation mit einer analytischen Datenquelle extern zu sichern.

Da ein XMLA-Anbieter nur sicheres HTTP verwendet, muss eine HTTP-Verbindung in ADOMD.NET eine signierte Verbindung sein, wie in der folgenden Tabelle dargestellt.

ProtectionLevel-Wert Verwendung mit HTTP oder HTTPS
None No
Herstellen einer Verbindung HTTP
Pkt-Integrität oder PktIntegrity No
Pkt Privacy oder PktPrivacy HTTPS

Öffnen einer sicheren HTTP-Verbindung

Im folgenden Beispiel wird veranschaulicht, wie Sie ADOMD.NET verwenden, um eine HTTP-Verbindung für die AdventureWorksAS-Beispieldatenbank Analysis Services öffnen:

Public Function GetAWEncryptedConnection( _  
    Optional ByVal serverName As String = "https:\\localhost\isapy\msmdpump.dll") _  
    As AdomdConnection  
  
    Dim strConnectionString As String = ""  
    Dim objConnection As New AdomdConnection  
  
    Try  
        ' To establish an encrypted connection, set the   
        ' ProtectionLevel setting to PktPrivacy.  
        strConnectionString = "DataSource=" & serverName & ";" & _  
            "Catalog=AdventureWorksAS;" & _  
            "ProtectionLevel=PktPrivacy;"  
  
        ' Note that username and password are not supplied here.  
        ' The current security context is used for authentication  
        ' purposes.  
  
        objConnection.ConnectionString = strConnectionString  
        objConnection.Open()  
    Catch ex As Exception  
        objConnection = Nothing  
        Throw ex  
    Finally  
        ' Return the encrypted connection.  
        GetAWEncryptedConnection = objConnection  
    End Try  
End Function