Établissement de connexions sécurisées dans ADOMD.NET
Lorsque vous utilisez une connexion dans ADOMD.NET, la méthode de sécurité employé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 méthode Open de l'objet 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é.
[!REMARQUE]
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 |
---|---|
|
None |
|
Connect |
|
Pkt Integrity ou PktIntegrity |
|
Pkt Privacy 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 être définie à Connect.
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 l'illustre le tableau suivant.
Valeur de ProtectionLevel |
À utiliser avec une connexion TCP ? |
Résultats |
---|---|---|
None |
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. |
Connect |
Oui |
Indique une connexion authentifié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 :
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é. |
Pkt Integrity 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 :
|
Pkt Privacy ou PktPrivacy |
Oui |
Indique une connexion chiffrée.
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 :
|
Utilisation de la sécurité intégrée Windows pour la connexion
La sécurité intégrée Windows 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 :
S'agissant de la propriété Integrated Security, ne la définissez pas ou attribuez-lui la valeur SSPI.
[!REMARQUE]
La sécurité intégrée Windows n'est disponible que pour les connexions TCP, car les connexions HTTP doivent utiliser le paramètre Basic pour la propriété Integrated Security
S'agissant de la propriété ProtectionLevel, attribuez-lui la valeur Connect, Pkt Integrity ou Pkt Privacy.
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 |
---|---|
None |
Non |
Connect |
HTTP |
Pkt Integrity or PktIntegrity |
Non |
Pkt Privacy or 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 de base de données Analysis Services intitulé AdventureWorksAS :
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