Partager via


É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é.

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.

None

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.

Connect

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.

RemarqueRemarque
Une connexion signée n'est prise en charge que par le fournisseur XML for Analysis fourni par Microsoft SQL Server Analysis Services.

Pkt Integrity 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.

RemarqueRemarque
Une connexion chiffrée n'est prise en charge que par le fournisseur XML for Analysis fourni par SQL Server Analysis Services.

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 :

  • Si l'authentification réussit, aucune autre action n'est effectuée.

  • Si l'authentification échoue, l'objet AdomdConnection 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é.

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 :

  • Si l'authentification réussit, l'objet AdomdConnection 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'objet AdomdConnection se déconnecte de la source de données multidimensionnelles et une exception est levée.

Pkt Privacy ou PktPrivacy

Oui

Indique une connexion chiffrée.

RemarqueRemarque
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 réussit, l'objet AdomdConnection 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'objet AdomdConnection 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

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.

    Notes

    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 ou PktIntegrity

Non

Pkt Privacy ou PktPrivacy

HTTPS

Pour plus d'informations, consultez le document Configuring HTTP Access to SQL Server Analysis Services on Microsoft Windows XP (en anglais) sur le site Web Microsoft.

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