ADOMD.NET でのセキュリティ保護された接続の確立
ADOMD.NET で接続を使用する場合、その接続に適用されるセキュリティ手段は、AdomdConnection の Open メソッドを呼び出すときに使用する接続文字列の ProtectionLevel プロパティの値によって異なります。
ProtectionLevel プロパティには、"認証なし"、"認証済み"、"署名済み"、"暗号化" の 4 つのセキュリティ レベルがあります。 これらの各セキュリティ レベルについて、次の表で説明します。
注 |
---|
データベース接続のプール機能を使用する場合、データベースでセキュリティを管理することはできません。 これは、データベース接続のプールでは、接続文字列をプール接続と同じにする必要があるからです。 したがって、どこか他の場所でセキュリティを管理する必要があります。 |
セキュリティ レベル |
ProtectionLevel の値 |
||
---|---|---|---|
|
None |
||
|
Connect |
||
|
Pkt Integrity またはPktIntegrity |
||
|
Pkt Privacy またはPktPrivacy |
ただし、接続の種類によっては、使用できないセキュリティ レベルもあります。
TCP 接続では、これら 4 つのうち、どのセキュリティ レベルでも使用できます。 実際、TCP 接続を Windows 統合セキュリティと共に使用すると、最も安全な方法で分析データ ソースに接続できます。
HTTP 接続で、認証された接続のみ使用できます。 したがって、ProtectionLevel プロパティは Connect に設定する必要があります。
HTTPS 接続では、暗号化された接続のみ使用できます。 したがって、ProtectionLevel プロパティは Pkt Privacy または PktPrivacy に設定する必要があります。
TCP 接続のセキュリティ保護
TCP 接続の場合、ProtectionLevel プロパティは、次の表に示すように、4 つのすべてのセキュリティ レベルをサポートします。
ProtectionLevel の値 |
TCP 接続で使用するか |
結果 |
||
---|---|---|---|---|
None |
する |
未認証の接続が適用されます。 プロバイダーに対して TCP ストリームが要求されます。ただし、ストリームを要求しているユーザーに対しては、どのような形態の認証も実行されません。 |
||
Connect |
する |
認証された接続が適用されます。 プロバイダーに対して TCP ストリームが要求されます。さらに、ストリームを要求しているユーザーのセキュリティ コンテキストがサーバーに対して認証されます。
認証が成功または失敗した後に、接続の認証に使用されたセキュリティ コンテキストは破棄されます。 |
||
Pkt Integrity またはPktIntegrity |
する |
署名された接続が適用されます。 プロバイダーに対して TCP ストリームが要求されます。さらに、ストリームを要求しているユーザーのセキュリティ コンテキストがサーバーに対して認証されます。
|
||
Pkt Privacy またはPktPrivacy |
する |
暗号化された接続が適用されます。
プロバイダーに対して TCP ストリームが要求されます。さらに、ストリームを要求しているユーザーのセキュリティ コンテキストがサーバーに対して認証されます。
|
接続での Windows 統合セキュリティの使用
Windows 統合セキュリティは、Analysis Services のインスタンスへの接続の確立およびセキュリティ保護を行うための最も安全な方法です。 Windows 統合セキュリティでは、認証プロセス中にユーザー名やパスワードなどのセキュリティ資格情報が公開されません。代わりに、現在実行しているプロセスのセキュリティ ID を使用して本人性を検証します。 多くのクライアント アプリケーションの場合、このセキュリティ ID は現在ログオンしているユーザーの ID を表します。
Windows 統合セキュリティを使用するには、接続文字列を次のように設定する必要があります。
Integrated Security プロパティの場合、このプロパティを設定しないか、あるいは SSPI に設定します。
注 Windows 統合セキュリティは TCP 接続でのみ使用できます。HTTP 接続は、Integrated Security プロパティの Basic 設定を使用する必要があります。
ProtectionLevel プロパティの場合、このプロパティを、Connect、Pkt Integrity または Pkt Privacy に設定します。
HTTP 接続のセキュリティ保護
HTTPS および SSL (Secure Sockets Layer) を使用して、分析データ ソースで HTTP 通信の外部的なセキュリティ保護を行うことができます。
XMLA プロバイダーはセキュリティ保護された HTTP のみ使用するため、ADOMD.NET での HTTP 接続は、次の表に示すように署名された接続にする必要があります。
ProtectionLevel の値 |
HTTP または HTTPS で使用するか |
---|---|
None |
不可 |
Connect |
HTTP |
Pkt Integrity またはPktIntegrity |
不可 |
Pkt Privacy またはPktPrivacy |
HTTPS |
セキュリティ保護された HTTP 接続を開く
ADOMD.NET を使用して AdventureWorksAS のサンプル Analysis Services データベースへの HTTP 接続を開く例を次に示します。
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