Connexions dans ADOMD.NET - Établissement de connexions sécurisées

Lorsque vous utilisez une connexion dans ADOMD.NET, la méthode de sécurité utilisée pour la connexion dépend de la valeur de la propriété ProtectionLevel de la chaîne de connexion utilisée lorsque vous appelez la Open méthode de AdomdConnection .

La propriété ProtectionLevel offre quatre niveaux de sécurité : non authentifié, authentifié, signé et chiffré. Le tableau suivant décrit ces différents niveaux de sécurité.

Notes

Si vous choisissez d'utiliser le regroupement de connexions de base de données, la base de données ne sera pas en mesure de gérer la sécurité. La raison en est que le regroupement de connexions de base de données exige que la chaîne de connexion soit identique aux connexions du pool. Par conséquent, vous devez gérer la sécurité ailleurs.

Niveau de sécurité Valeur de ProtectionLevel
connexion non authentifiée
Une connexion non authentifiée n'assure aucune forme d'authentification. Ce type de connexion est le plus largement pris en charge, mais également le moins sûr.
Aucun
connexion authentifiée
Une connexion authentifiée authentifie l'utilisateur qui établit la connexion, mais elle ne sécurise pas les autres communications. Ce type de connexion s'avère utile dans la mesure où vous pouvez établir l'identité de l'utilisateur ou de l'application qui se connecte à une source de données analytiques.
Connexion
connexion signée
Une connexion signée authentifie l'utilisateur qui demande la connexion et vérifie que les transmissions ne sont pas modifiées. Ce type de connexion est utile lorsque l'authenticité des données transférées doit être vérifiée. Toutefois, une connexion signée ne fait qu'empêcher la modification du contenu du paquet de données. Le contenu peut toujours être consulté en transit.



Notez qu’une connexion signée est uniquement prise en charge par le fournisseur de XML for Analysis fourni par les services en affectant Analysis.
Intégrité PKT ou PktIntegrity
connexion chiffrée
Une connexion chiffrée est le type de connexion utilisé par défaut par ADOMD.NET. Ce type de connexion authentifie l'utilisateur qui demande la connexion et chiffre également les données transmises. La connexion chiffrée est le type de connexion le plus sûr qui puisse être créé par ADOMD.NET. Le contenu du paquet de données ne pouvant ni être consulté ni modifié, les données sont protégées pendant le transit.



une connexion chiffrée est uniquement prise en charge par le fournisseur de XML for Analysis fourni par SQL Services analysis.
PKT confidentialité ou PktPrivacy

Toutefois, les niveaux de sécurité disponibles varient en fonction du type de connexion :

  • Une connexion TCP peut utiliser n'importe lequel des quatre niveaux de sécurité. En fait, quand elle est utilisée conjointement avec la sécurité intégrée Windows, la connexion TCP constitue la méthode la plus sûre de connexion à une source de données analytiques.

  • Une connexion HTTP ne peut être qu'une connexion authentifiée. Par conséquent, la propriété ProtectionLevel doit avoir la valeur connecter.

  • Une connexion HTTPS ne peut être qu'une connexion chiffrée. Par conséquent, la propriété ProtectionLevel doit avoir la valeur Pkt Privacy ou PktPrivacy.

Sécurisation des connexions TCP

Pour une connexion TCP, la propriété ProtectionLevel prend en charge les quatre niveaux de sécurité, comme indiqué dans le tableau suivant.

Valeur de ProtectionLevel À utiliser avec une connexion TCP ? Résultats
Aucun Oui Indique une connexion non authentifiée.

Bien qu'un flux TCP soit demandé par le fournisseur, aucune forme d'authentification n'est effectuée au niveau de l'utilisateur qui demande le flux.
Connexion Oui Indique une connexion authentifiée.

Un flux TCP est demandé par le fournisseur, puis le contexte de sécurité de l’utilisateur qui demande le flux est authentifié sur le serveur : si l’authentification a échoué, aucune autre action n’est effectuée. Si l’authentification échoue, l' AdomdConnection objet se déconnecte de la source de données multidimensionnelles et une exception est levée.

Le contexte de sécurité utilisé pour authentifier la connexion est supprimé de suite après l'authentification, qu'elle ait réussi ou échoué.
Intégrité PKT ou PktIntegrity Oui Indique une connexion signée.

Un flux TCP est demandé par le fournisseur et le contexte de sécurité de l'utilisateur qui demande le flux est authentifié sur le serveur :



Si l’authentification a échoué, l' AdomdConnection objet ferme le flux TCP existant et ouvre un flux TCP signé pour gérer toutes les demandes. Chaque demande de données ou de métadonnées est authentifiée en utilisant le contexte de sécurité qui a servi à ouvrir la connexion. En outre, chaque paquet est signé numériquement pour s'assurer que la charge utile du paquet TCP n'a pas été modifiée de quelque manière que ce soit.



Si l’authentification échoue, l' AdomdConnection objet se déconnecte de la source de données multidimensionnelles et une exception est levée.
PKT confidentialité ou PktPrivacy Oui Indique une connexion chiffrée.



Notez que vous pouvez également spécifier une connexion chiffrée en ne définissant pas la propriété ProtectionLevel dans la chaîne de connexion.



Un flux TCP est demandé par le fournisseur et le contexte de sécurité de l'utilisateur demandant le flux est authentifié sur le serveur :



Si l’authentification a échoué, l' AdomdConnection objet ferme le flux TCP existant et ouvre un flux TCP chiffré pour gérer toutes les demandes. Chaque demande de données ou de métadonnées est authentifiée en utilisant le contexte de sécurité qui a servi à ouvrir la connexion. En outre, la charge utile de chaque paquet TCP est chiffrée selon la méthode de chiffrement la plus élevée prise en charge à la fois par le fournisseur et par la source de données multidimensionnelles.



Si l’authentification échoue, l' AdomdConnection objet se déconnecte de la source de données multidimensionnelles et une exception est levée.

Utilisation de la sécurité intégrée Windows pour la connexion

Windows la sécurité intégrée est le moyen le plus sûr d’établir et de sécuriser une connexion à une instance de Analysis Services. La sécurité intégrée Windows ne révèle pas les informations d'identification de sécurité (p.ex., le nom ou le mot de passe d'un utilisateur) au cours du processus d'authentification. À la place, elle utilise l'identificateur de sécurité du processus en cours d'exécution pour établir l'identité. Pour la plupart des applications clientes, cet identificateur de sécurité représente l'identité de l'utilisateur connecté.

Pour utiliser la sécurité intégrée Windows, les paramètres suivants sont nécessaires dans la chaîne de connexion :

  • Pour la propriété sécurité intégrée , vous ne devez pas définir cette propriété ou définir cette propriété sur SSPI.

    Notes

    Windows la sécurité intégrée n’est disponible que pour les connexions TCP, car les connexions HTTP doivent utiliser le paramètre de base pour la propriété sécurité intégrée .

  • pour la propriété ProtectionLevel , définissez cette propriété sur Connecter, l’intégrité pktou la confidentialité pkt.

Sécurisation des connexions HTTP

HTTPS et SSL (Secure Sockets Layer) peuvent être utilisés pour sécuriser de façon externe les communications HTTP avec une source de données analytiques.

Parce qu'un fournisseur XMLA utilise uniquement le protocole HTTP sécurisé, une connexion HTTP dans ADOMD.NET doit être une connexion signée, comme l'illustre le tableau suivant.

Valeur de ProtectionLevel Utilisation avec HTTP ou HTTPS
Aucun No
Connexion HTTP
Intégrité PKT ou PktIntegrity No
PKT confidentialité ou PktPrivacy HTTPS

Ouverture d'une connexion HTTP sécurisée

L’exemple suivant montre comment utiliser ADOMD.NET pour ouvrir une connexion HTTP pour l’exemple AdventureWorksAS Analysis Services base de données :

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