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 を使用して接続する
新しい接続プロファイルを作成します。
認証の種類に [Windows 認証] を選択します。
[サーバー] には、完全修飾ホスト名を
hostname.DOMAIN.CONTOSO.COM
という形式で入力します。接続プロファイルを完了し、 [接続] をクリックします。
接続が正常に行われると、ご利用のサーバーが [サーバー] サイドバーに表示されます。