Verbindungen in ADOMD.NET – Herstellen sicherer Verbindungen

Wenn Sie eine Verbindung in ADOMD.NET verwenden, hängt die von der Verbindung verwendete Sicherheitsmethode vom Wert der ProtectionLevel-Eigenschaft im Verbindungszeichenfolge ab. Sie legen diese Eigenschaft fest, wenn Sie die Methode Open des AdomdConnection aufrufen.

Die Eigenschaft ProtectionLevel bietet vier Sicherheitsstufen: nicht authentifiziert, authentifiziert, signiert und verschlüsselt. In der folgenden Tabelle werden die einzelnen Ebenen beschrieben.

Hinweis

Die Datenbankverbindungspooling erfordert identische Verbindungszeichenfolgen, sodass die Datenbank die Sicherheit für poolierte Verbindungen nicht verwalten kann. Verwalten Sie die Sicherheit an anderer Stelle.

Sicherheitsstufe ProtectionLevel-Wert
Nicht authentifizierte Verbindung
Eine nicht authentifizierte Verbindung verwendet keine Authentifizierungsform. Diese Art von Verbindung ist die am häufigsten unterstützte, aber am wenigsten sichere Form der Verbindung.
None
Authentifizierte Verbindung
Eine authentifizierte Verbindung authentifiziert den Benutzer, der die Verbindung durchführt, sichert aber keine zusätzliche Kommunikation. Diese Art von Verbindung ist nützlich, da Sie die Identität des Benutzers oder der Anwendung einrichten können, der eine Verbindung mit einer analytischen Datenquelle herstellt.
Herstellen einer Verbindung
Signierte Verbindung
Eine signierte Verbindung authentifiziert den Benutzer, der die Verbindung anfordert, und stellt dann sicher, dass Übertragungen nicht geändert werden. Diese Art von Verbindung ist nützlich, wenn die Authentizität der übertragenen Daten überprüft werden muss. Eine signierte Verbindung verhindert jedoch nur, dass der Inhalt des Datenpakets geändert wird. Der Inhalt kann weiterhin während des Transports angezeigt werden.



Beachten Sie, dass eine signierte Verbindung nur von dem von SQL Server Analysis Services bereitgestellten XML für Analyseanbieter unterstützt wird.
Pkt Integrity oder PktIntegrity
Verschlüsselte Verbindung
Eine verschlüsselte Verbindung ist der Standardverbindungstyp, der von ADOMD.NET verwendet wird. Diese Art von Verbindung authentifiziert den Benutzer, der die Verbindung anfordert, und verschlüsselt dann auch die übertragenen Daten. Eine verschlüsselte Verbindung ist die sicherste Form der Verbindung, die ADOMD.NET erstellen kann. Der Inhalt des Datenpakets kann nicht angezeigt oder geändert werden, wodurch Daten während der Übertragung geschützt werden.



Eine verschlüsselte Verbindung wird nur vom xml for Analysis-Anbieter unterstützt, der von SQL Server Analysis Services bereitgestellt wird.
Pkt Privacy oder PktPrivacy

Verfügbare Sicherheitsstufen hängen vom Verbindungstyp ab:

  • TCP-Verbindungen unterstützen alle vier Sicherheitsstufen. Eine TCP-Verbindung mit Windows Integrated Security bietet die sicherste Verbindung zu einer analytischen Datenquelle.

  • Eine HTTP-Verbindung kann nur eine authentifizierte Verbindung sein. Legen Sie daher die ProtectionLevel-Eigenschaft auf "Connect" fest.

  • Eine HTTPS-Verbindung kann nur eine verschlüsselte Verbindung sein. Legen Sie daher die ProtectionLevel-Eigenschaft auf Pkt Privacy oder PktPrivacy fest.

Schützen von TCP-Verbindungen

Für TCP-Verbindungen unterstützt die ProtectionLevel-Eigenschaft alle vier Sicherheitsstufen:

ProtectionLevel-Wert Mit TCP-Verbindung verwenden? Ergebnisse
None Yes Gibt eine nicht authentifizierte Verbindung an.

Ein TCP-Stream wird vom Anbieter angefordert, der Anbieter authentifiziert jedoch nicht den Benutzer, der den Datenstrom anfordert.
Herstellen einer Verbindung Yes Gibt eine authentifizierte Verbindung an.

Ein TCP-Stream wird vom Anbieter angefordert, und dann authentifiziert der Anbieter den Sicherheitskontext des Benutzers, der den Datenstrom anfordert:

Wenn die Authentifizierung erfolgreich ist, wird keine andere Aktion ausgeführt. Wenn die Authentifizierung fehlschlägt, trennt das AdomdConnection Objekt die Verbindung mit der multidimensionalen Datenquelle und löst eine Ausnahme aus.

Nachdem die Authentifizierung erfolgreich war oder fehlschlägt, wird der Sicherheitskontext, der zum Authentifizieren der Verbindung verwendet wird, gelöscht.
Pkt Integrity oder PktIntegrity Yes Gibt eine signierte Verbindung an.

Ein TCP-Stream wird vom Anbieter angefordert, und dann authentifiziert der Anbieter den Sicherheitskontext des Benutzers, der den Datenstrom anfordert:



Wenn die Authentifizierung erfolgreich ist, schließt das AdomdConnection Objekt den vorhandenen TCP-Datenstrom und öffnet einen signierten TCP-Datenstrom, um alle Anforderungen zu verarbeiten. Der Anbieter verwendet den Sicherheitskontext der Verbindung, um jede Daten- oder Metadatenanforderung zu authentifizieren. Außerdem signiert es jedes Paket digital, um zu bestätigen, dass sich die Nutzlast nicht geändert hat.



Wenn die Authentifizierung fehlschlägt, trennt das AdomdConnection Objekt die Verbindung mit der multidimensionalen Datenquelle und löst eine Ausnahme aus.
Pkt Privacy oder PktPrivacy Yes Gibt eine verschlüsselte Verbindung an.



Durch Weglassen der ProtectionLevel-Eigenschaft aus dem Verbindungszeichenfolge wird auch eine verschlüsselte Verbindung angegeben.



Ein TCP-Stream wird vom Anbieter angefordert, und dann authentifiziert der Anbieter den Sicherheitskontext des Benutzers, der den Datenstrom anfordert:



Wenn die Authentifizierung erfolgreich verläuft, schließt das AdomdConnection Objekt den vorhandenen TCP-Datenstrom und öffnet einen verschlüsselten TCP-Datenstrom, um alle Anforderungen zu verarbeiten. Jede Anforderung für Daten oder Metadaten wird mithilfe des Sicherheitskontexts authentifiziert, der zum Öffnen der Verbindung verwendet wurde. Darüber hinaus wird die Nutzlast jedes TCP-Pakets mit der höchsten Verschlüsselungsmethode verschlüsselt, die sowohl vom Anbieter als auch von der multidimensionalen Datenquelle unterstützt wird.



Wenn die Authentifizierung fehlschlägt, trennt das AdomdConnection Objekt die Verbindung mit der multidimensionalen Datenquelle und löst eine Ausnahme aus.

Verwenden Sie für die Verbindung die integrierte Windows-Sicherheit.

Windows Integrierte Sicherheit ist die sicherste Möglichkeit, eine Verbindung mit einer Azure Analysis Services Instanz herzustellen und zu schützen. Während der Authentifizierung werden keine Anmeldeinformationen angezeigt, z. B. ein Benutzername oder ein Kennwort. Stattdessen wird der Sicherheitsbezeichner des aktuellen Prozesses verwendet, um die Identität festzustellen. Bei den meisten Clientanwendungen stellt dieser Sicherheitsbezeichner die Identität des aktuell angemeldeten Benutzers dar.

Für die Verwendung der integrierten Windows-Sicherheit erfordert die Verbindungszeichenfolge die folgenden Einstellungen:

  • Legen Sie für die Integrated Security-Eigenschaft diese Eigenschaft nicht fest, oder legen Sie diese Eigenschaft auf SSPI fest.

    Hinweis

    Windows Integrierte Sicherheit unterstützt nur TCP-Verbindungen. Legen Sie für HTTP-Verbindungen "Integrated Security " auf "Basic" fest.

  • Legen Sie die ProtectionLevel-Eigenschaft auf "Connect", "Pkt Integrity" oder "Pkt Privacy" fest.

Schützen von HTTP-Verbindungen

Verwenden Sie HTTPS und Secure Sockets Layer (SSL), um die HTTP-Kommunikation mit einer analytischen Datenquelle zu sichern.

Da ein XMLA-Anbieter nur sicheres HTTP verwendet, signieren Sie jede ADOMD.NET HTTP-Verbindung wie in der folgenden Tabelle dargestellt.

ProtectionLevel-Wert Mit HTTP oder HTTPS verwenden
None Nein
Herstellen einer Verbindung HTTP
Pkt Integrity oder PktIntegrity Nein
Pkt Privacy oder PktPrivacy HTTPS

Öffnen einer sicheren HTTP-Verbindung

In diesem Beispiel wird ADOMD.NET verwendet, um eine HTTP-Verbindung mit der AdventureWorksAS Analysis Services-Beispieldatenbank zu ö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;"  
  
        ' The connection string doesn't include a username or password.  
        ' ADOMD.NET uses the current security context 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