Kerberos を使用して SQL Server に Azure Data Studio を接続する

Azure Data Studio では、Kerberos を使用した SQL Server への接続がサポートされています。

macOS または Linux で統合認証 (Windows 認証) を使用するには、現在のユーザーを Windows ドメイン アカウントにリンクする "Kerberos チケット" を設定する必要があります。

前提条件

開始するには、以下が必要です。

  • Kerberos ドメイン コントローラーのクエリを実行するための、Windows ドメインに参加しているマシンへのアクセス権。

  • SQL Server は、Kerberos 認証を許可するように構成する必要があります。 UNIX で実行されているクライアント ドライバーでは、統合認証は Kerberos を使用する場合にのみサポートされます。 詳細については、「Kerberos 統合認証による SQL Server への接続」を参照してください。 接続しようとしている SQL Server のインスタンスごとに、サービスプリンシパル名 (SPN) が登録されている必要があります。 詳細については、「 Kerberos 接続用のサービス プリンシパル名の登録」を参照してください。

SQL Server に Kerberos のセットアップがあるかどうかを確認する

SQL Server のホスト マシンにサインインします。 Windows のコマンド プロンプトから、setspn -L %COMPUTERNAME% を使用してホストのすべての SPN を一覧表示します。 MSSQLSvc/HostName.contoso.com で始まるエントリが存在することを確認します。 これらのエントリは、SQL Server に SPN が登録され、Kerberos 認証を受け入れる準備ができていることを意味します。

SQL Server インスタンスのホストにアクセスできない場合は、同じ Active Directory に参加している他の Windows OS から、コマンド setspn -L <SQLSERVER_NETBIOS> を使用できます。ここで "<SQLSERVER_NETBIOS>" は、SQL Server インスタンスのホストのコンピューター名です。

Kerberos キー配布センターを取得する

Kerberos キー配布センター (KDC) の構成値を見つけます。 Active Directory ドメインに参加している Windows コンピューターで、次のコマンドを実行します。

コマンド ラインから nltest を実行し、"DOMAIN.CONTOSO.COM" をドメインの名前に置き換えます。

nltest /dsgetdc:DOMAIN.CONTOSO.COM

出力は次の例のようになります。

DC: \\dc-33.domain.contoso.com
Address: \\2111:4444:2111:33:1111:ecff:ffff:3333
...
The command completed successfully

必要な KDC 構成値である DC 名をコピーします。 この例では、dc-33.domain.contoso.com です。

ご利用の OS を Active Directory ドメイン コントローラーに参加させる

sudo apt-get install realmd krb5-user software-properties-common python-software-properties packagekit

Active Directory ドメイン コントローラーの IP アドレスが dns-nameserver として記載されるように、/etc/network/interfaces ファイルを編集します。 次に例を示します。

<...>
# The primary network interface
auto eth0
iface eth0 inet dhcp
dns-nameservers **<AD domain controller IP address>**
dns-search **<AD domain name>**

注意

ネットワーク インターフェイス (eth0) は、コンピューターによって異なる場合があります。 使用しているものを確認するには、ifconfig を実行し、IP アドレスと送受信されたバイトが含まれるインターフェイスをコピーします。

このファイルを編集した後、ネットワーク サービスを再起動します。

sudo ifdown eth0 && sudo ifup eth0

次のような行が /etc/resolv.conf ファイルに含まれていることを確認します。

nameserver **<AD domain controller IP address>**

Active Directory ドメインに参加します。

sudo realm join contoso.com -U 'user@CONTOSO.COM' -v

予想される出力を次に示します。

<...>
* Success

チケット保証チケットの取得をテストする

KDC からチケット保証チケット (TGT) を取得します。

kinit username@DOMAIN.CONTOSO.COM

klist を使って使用可能なチケットを表示します。 kinit が正常に実行された場合は、チケットが表示されます。

klist

予想される出力を次に示します。

krbtgt/DOMAIN.CONTOSO.COM@ DOMAIN.CONTOSO.COM.

Azure Data Studio を使用して接続する

  1. 新しい接続プロファイルを作成します。

  2. 認証の種類に [Windows 認証] を選択します。

  3. [サーバー] には、完全修飾ホスト名を hostname.DOMAIN.CONTOSO.COM という形式で入力します。

  4. 接続プロファイルを完了し、 [接続] をクリックします。

接続が正常に行われると、ご利用のサーバーが [サーバー] サイドバーに表示されます。