質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Active Directory

Active Directoryは、 Windows Serverの機能の一つで、 マイクロソフトによって作られたディレクトリサービスです。 ネットワーク上に存在する様々なハードや利用者情報のアクセス権限などを一元管理が出来ます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

受付中

VB.NET VSでActive Directory Interactive認証を使いたい

MaoT
MaoT

総合スコア5

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Active Directory

Active Directoryは、 Windows Serverの機能の一つで、 マイクロソフトによって作られたディレクトリサービスです。 ネットワーク上に存在する様々なハードや利用者情報のアクセス権限などを一元管理が出来ます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0回答

0評価

0クリップ

479閲覧

投稿2021/08/30 10:20

Visual Studio2019
Windows10
VB.NET
.NetFramework4.8
System.Data.SqlClient 3.0.0

Visual StudioでWindowsフォームアプリケーションを作成しています。
SQL Serverへの接続文字にAD対話型認証の「Active Directory Interactive」を使いたいのですが、「認証プロバイダーが見つかりません」というエラーになってしまいます。

VB.NET

Dim constr As String = "Server=xxxxxx.database.windows.net; Authentication=Active Directory Interactive;Database=xxxx" Using connection As SqlConnection = New SqlConnection(constr) Try connection.Open() Dim command As SqlCommand = connection.CreateCommand command.CommandText = "delete from testtable" command.ExecuteNonQuery() connection.Close() Catch ex As Exception WriteLine(ex.ToString) End Try End Using

何か設定が足りないのでしょうか。

また上記が接続できなかった為Azureサービスプリンシパルを作成し、ログインウィンドウを出しアクセストークンを取得して接続文字に足してみましたが、Error Number: 18456が出てしまいます。

VB.NET

Dim constr As String = "Server=xxxxxx.database.windows.net; Interactive;Database=xxxx" Using connection As SqlConnection = New SqlConnection(constr) Try connection.AccessToken = ar.AccessToken '取得したアクセストークン connection.Open() '接続がOPENできずにError18456 Dim command As SqlCommand = connection.CreateCommand command.CommandText = "delete from testtable" command.ExecuteNonQuery() connection.Close() Catch ex As Exception WriteLine(ex.ToString) End Try End Using

何とか対話型認証ができる方法はありますでしょうか?

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

SurferOnWww

2021/09/05 22:07 編集

クライアント(WebForms アプリ)から直接 DB サーバーに接続することを考えておられるようですが、セキュリティの問題があることは認識されてますか? 答えが Yes でそこは対応済みなら以下はスルーしてください。No なら以下のようにするなどシステム構成を見直すことも検討されてはいかがですか。 クライアント ⇔ Web API ⇔ DB Server そのようにすれば、クライアントの認証はクッキーやベアラトークンなどを用いて Web API で行い、Web API ⇔ DB Server 間は普通に固定的に Windows 認証とか SQL Server 認証で可能と思います。 余計なお世話でしたら失礼しました。
MaoT

2021/09/13 23:16

SurferOnWww様 遅くなって申し訳ありません、ご返答ありがとうございます。 WebForms アプリではなくWindowsFormアプリなので、WindowsFormアプリ上で出来るか確認してみます。 ありがとうございました。
SurferOnWww

2021/09/13 23:34 編集

すみません、間違いがありました。 ×: クライアント(WebForms アプリ)から直接 DB サーバーに接続することを考えておられるようですが、セキュリティの問題があることは認識されてますか? ○: クライアント(Windows Forms アプリ)から直接 DB サーバーに接続することを考えておられるようですが、セキュリティの問題があることは認識されてますか? セキュリティの問題があるのは Windows Forms アプリ以外にも WPF, コンソールアプリなどユーザーの PC から直接 DB に接続するアプリは同じです。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Active Directory

Active Directoryは、 Windows Serverの機能の一つで、 マイクロソフトによって作られたディレクトリサービスです。 ネットワーク上に存在する様々なハードや利用者情報のアクセス権限などを一元管理が出来ます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。